Функции и механизмы программ-диспетчеров, предшественников операционных систем.

Функции и механизмы программ-диспетчеров, предшественников операционных систем.

a. Решает задачу повторного использования кода, его загрузки и линковки.

b. SPOOL – simultaneous periphery operation online – операции ввода, вывода.

c. Появление прерываний. В первичном смысле – прерывания вычислительного блока для сообщения о выводе/вводе данных.

d. Однопрограммная пакетная обработка. (Пакет программ – набор взаимосвязанных программ загружаемых с первичными данными для последовательной и единовременной обработки взаимосвязанных данных.)

Доп. Инфо.: Появление вопроса об обеспечении планирования выполнения различных пакетов.

Функции и механизмы мультипрограммных операционных систем.

a. Появление механизмов смены регистров вычисления (смена контекста).

b. Появление виртуальной памяти (виртуализация памяти) – каждая программа считается свой кусок памяти основным, начинающимся с нуля.

c. Появление механизмов защиты адресного пространства. Появление привилегированного режима ОС. Термин ОС был впервые применен к система MCP (1963).

d. Прерывания стали использоваться для таймера планировщика, прерывания при доступе к защищенной памяти – появляются обработчики прерывания.

e. Появляется механизм System call – обращение программы к ОС с требованием выдать ресурсы/права/etc.

f. Появление структурированного хранения данных.

Функции и механизмы сетевых и мобильных операционных систем.

Сетевые ОС:

a. Средства управления локальными ресурсами компьютера.

b. Средства предоставления собственных ресурсов и услуг в общее пользование.

c. Средства запроса доступа к удаленным ресурсам и услугам и их использования.

d. Коммуникационные средства ОС, с помощью которых происходит обмен сообщениями в сети. Эта часть обеспечивает адресацию и буферизацию сообщений, выбор маршрута передачи сообщения по сети, надежность передачи и т.п., то есть является средством транспортировки сообщений.

e. Защита от несанкционированного доступа.

Мобильные ОС:

Они должны работать на разных аппаратных платформах.

Задачи и механизмы организации интерфейса между пользовательскими приложениями и аппаратным обеспечением вычислительной системы.

Задачи:

a. Поддержать исполнение программ

b. Поддержать разработку программ через API

c. поддержка доступа программ к устройствам ввода/вывода

d. Обеспечить доступ к файловым структурам

e. Поддержать обнаружение и обработку ошибок

Методы организации эффективного использования ресурсов компьютера. Критерии эффективности. Управление ресурсами.

Эффективное использование ресурсов:

Возникает задача минимизации критериев. При наборе критериев Kk, удобно использовать один общий метакритерий.

Способы:

· Суперкритерий (свертка): ~K = a1K1 + a2K2 + … + akKk. Недостатки: критерии кореллируют между собой – возникает общая потеря производительности при сильной максимизации некоторых параметров.

· Максимизация одного из параметров со строгим ограничением других ~K = max(Ki) при условии K1 < z1, K2 < z2 … Kk <zk.

· Комбинированный критерий: max(a1K1 + a2K2 + … + anKn) при условии Kp1 < zp1 … Kpt < zpt.

Принцип PDCA (plan-do-check-add):

1. При текущих критериях находим экстремум функции критериев (plan),

2. выполняем работу в течение некоторого небольшого кванта времени (do),

3. проверяем статистику работы на эффективность (check), выполняем,

4. обработку полученных результатов, вносим корректировки (add).

Поддержка аппаратных средств эксплуатации, диагностики и восстановления сбоев (пример: SMART для HDD).

6. Принципы управления процессами, памятью, файлами.

1) Управление процессами:

a. Любой процесс представляется в виде структуры данных (PCB process control block) – предоставление снапшота программы.

b. Наличие взаимосвязанных планировщиков

2) Управление памятью:

a. Виртуализация памяти

b. Файлы подкачки

c. Защита от стороннего доступа

3) Управление файлами и каталогами:

a. Механизм преобразования символьных имен в адреса на HDD/SDD.

b. Механизм управления каталогами

c. Механизм работы с внешними устройствами

Монолитная архитектура ядра операционной системы.

1. Монолитная.

Soft1 Soft2

\ /

0 //

/ / | \ \ // ядро

0 0 0 0 0 // сервисные процедуры; единое адресное пространство

| \ / | /\ |\ /|\ // при добавлении драйвера надо перекомпилировать ядро

H1 H2 H3 H4

Методы создания процессов.

(Linux) Процесс порождается с помощью системного вызова fork(). При этом вызове происходит проверка на наличие свободной памяти, доступной для размещения нового процесса. Если требуемая память доступна, то создается процесс-потомок текущего процесса, представляющий собой точную копию вызывающего процесса. Этому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом (PCB).

Создание Win32 процесса осуществляется вызовом одной из таких функций, как CreateProcess, CreateProcessAsUser (для Win NT/2000) и CreateProcessWithLogonW (начиная с Win2000) и происходит в несколько этапов:

- Открывается файл образа (EXE), который будет выполняться в процессе. Если исполняемый файл не является Win32 приложением, то ищется образ поддержки (support image) для запуска этой программы. Например, если исполняется файл с расширением .bat, запускается cmd.exe и т.п.

- Создается объект Win32 "процесс".

- Создается первичный поток (стек, контекст и объект "поток").

- Подсистема Win32 уведомляется о создании нового процесса и потока.

- Начинается выполнение первичного потока.

- В контексте нового процесса и потока инициализируется адресное пространство (например, загружаются требуемые DLL) и начинается выполнение программы.

ПАМЯТЬ КОМПЬЮТЕРА

0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

-------------------------------------

0 - 1 - 2 - 3 - 4

ПАМЯТЬ КАКОЙ-ТО ПРОГРАММЫ

Виртуализация памяти- это явление когда часть физической памяти выделяется для определенного процесса и ее адреса для данного процесса преобразуются в новые, начинающиеся с нуля.

Принципы управления памятью вычислительной системы

Функции ОС по управлению оперативной памятью:

– Отслеживание наличия свободной и занятой памяти;

– Контроль доступа к адресным пространствам процессов;

– Вытеснение кодов и данных из оперативной памяти на диск, когда размеров памяти недостаточно для размещения всех процессов, и возвращение их обратно;

– Настройка адресов программы на конкретную область физической памяти;

– Защита выделенных областей памяти процессов от взаимного вмешательства.

Связный список.

Решает основную проблему непрерывного выделения, то есть устраняет внешнюю фрагментацию. Каждый файл - связный список блоков диска. Запись в директории содержит указатель на первый и последний блоки файла. Каждый блок содержит указатель на следующий блок.

+ Плюсы: Внешняя фрагментация для данного метода отсутствует. Любой свободный блок может быть использован для удовлетворения запроса. Заметим, что нет необходимости декларировать размер файла в момент создания. Файл может неограниченно расти.

- Минусы: при прямом доступе к файлу для поиска i-го блока нужно осуществить несколько обращений к диску, последовательно считывая блоки от 1 до i-1 (много времени). Наличие дефектного блока в списке приводит к потере информации в остаточной части файла и, потенциально, к потере дискового пространства отведенного под этот файл (низкая надежность). Для указателя на следующий блок внутри блока нужно выделить место (для каждого указателя - несколько доп. байтов).

Связный список с использованием индекса (Таблица размещения файлов).

Изъятие указателя из каждого дискового блока и помещение его в индексную таблицу в памяти, которая называется FAT (file allocation table). Этой схемы придерживаются многие ОС (MS-DOS, OS/2, MS Windows и др.)

+ Плюсы: запись в директории содержит только ссылку на первый блок и т.о. можно локализовать файл независимо от его размера.

- Минусы: необходимость поддержки в памяти этой довольно большой таблицы.

Функции и механизмы программ-диспетчеров, предшественников операционных систем.

a. Решает задачу повторного использования кода, его загрузки и линковки.

b. SPOOL – simultaneous periphery operation online – операции ввода, вывода.

c. Появление прерываний. В первичном смысле – прерывания вычислительного блока для сообщения о выводе/вводе данных.

d. Однопрограммная пакетная обработка. (Пакет программ – набор взаимосвязанных программ загружаемых с первичными данными для последовательной и единовременной обработки взаимосвязанных данных.)

Доп. Инфо.: Появление вопроса об обеспечении планирования выполнения различных пакетов.

Наши рекомендации