Функции и механизмы программ-диспетчеров, предшественников операционных систем.
Функции и механизмы программ-диспетчеров, предшественников операционных систем.
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. Однопрограммная пакетная обработка. (Пакет программ – набор взаимосвязанных программ загружаемых с первичными данными для последовательной и единовременной обработки взаимосвязанных данных.)
Доп. Инфо.: Появление вопроса об обеспечении планирования выполнения различных пакетов.