
- •1) Определение операционной системы и ее функции. (виртуальная машина, управление ресурсами, задачи управления ресурсами)
- •1. Назначение и функции операционных систем
- •1.1.Основные понятия и определения
- •1.2.Управление ресурсами
- •3) Функциональные требования, предъявляемые к операционным системам и способы их реализации (расширяемость, переносимость, надежность, совместимость, безопасность, производительность).
- •5) Основные архитектуры операционных систем. (монолитные, многоуровневые, микроядерные, объектно-ориентированные, виртуальные машины)
- •Монолитные системы
- •Многоуровневые системы
- •Клиент – сервер (микроядро)
- •Объектно-ориентированный подход в проектировании ос.
- •Виртуальная машина (вм), Экзоядро
- •6) Абстракция процесса, управление процессами в многозадачной операционной системе. (определение процесса, диаграмма состояния, контекст, дескриптор, квантование, приоритетное планирование, нити)
- •7) Функциональные возможности многозадачности в ос Windows. (способы использования многозадачности, решаемые задачи)
- •8) Планировщик ос Windows. (класс и уровень приоритета, переключение контекста, «неготовые» потоки, динамический приоритет)
- •9) Эффект инверсии приоритетов. (пример, способы преодоления)
- •10) Мультипроцессорная обработка в ос Windows. (термины, вызовы api, назначение)
- •11) Эффект гонки. (пример, способ преодоления)
- •12) Средства синхронизации в режиме пользователя в ос Windows. (interlocked-функции, объект «критическая секция»)
- •13) Задача о критической секции. Алгоритм Петерсона для двух процессов. (условия задачи, объяснение принципа алгоритма)
- •14) Эффект отталкивания (голодания). (пример, модификатор volatile)
- •15) Эффект ложного разделения переменных (влияния кэш линий). (пример)
- •16) Управление объектами ядра в ос Windows. (описатель объекта, таблица описателей объектов процесса, создание, наследование, именование, дублирование)
- •17) Средства синхронизации в режиме ядра в ос Windows. (события, семафоры, мьютексы)
- •18) Эффект взаимоблокировки (возникновение тупика). (определение, условия возникновения, моделирование)
- •19) Стратегия «обнаружение-устранение» для борьбы с взаимоблокировками. (с использованием графов Холта, матриц распределения ресурсов)
- •20) Стратегия избегания блокировок. Алгоритм банкира. (диаграмма траекторий ресурсов, алгоритм банкира для одного вида ресурсов)
- •21) Стратегии предотвращения блокировок. (исключение условий в определении блокировок)
- •22) Методы управления памятью без использования внешней памяти. (фиксированные, динамические и перемещаемые разделы)
- •23) Методы управления памятью с использованием внешней памяти. (сегментный, страничный, сегментно-страничный способ)
- •24) Свопинг. Кэширование. (назначение, принцип работы механизма)
- •25) *Реализация сегментного механизма управления памятью в процессорах семейства x86.
- •26) *Реализация страничного механизма управления памятью в процессорах семейства x86. (размер и основные поля структур данных, особенности реализации)
- •27) *Средства ос Windows для управления виртуальной памятью процесса. (VirtualAlloc, структурированная обработка исключений, файлы, отображаемые в память)
5) Основные архитектуры операционных систем. (монолитные, многоуровневые, микроядерные, объектно-ориентированные, виртуальные машины)
Тенденция в структурном построении ОС
Монолитные системы
а)
При использовании этой технологии каждая процедура системы имеет хорошо определённый интерфейс и вольна вызывать любую другую для выполнения нужной функции.
б)
При обращении к системным вызовам главная программа помещает параметры вызова в строго определённое место (регистр, стек) и переключает машину из режима пользователя в режим ядра (например, вызывая специальное программные прерывания).
В режиме ядра по сформированному коду вызывается сервисная процедура, при этом у каждого системного вызова имеется своя сервисная процедура, а утилита выполняет функции, нужные нескольким сервисным процедурам.
Все процедуры ядра системы собраны в один объектный файл.
Примеры: Ранние версии UNIX, MacOS, MSDOS.
Недостатки: систему нельзя загружать по частям, сложно модифицировать (расширить функциональность).
Многоуровневые системы
ОС строится как иерархия уровней. Уровни образуются группами функций, каждый уровень взаимодействует только со своими непосредственными соседями.
OC THE, 1968г., Дейкстра (пакетная ОС)
Уровень:
0 – распределение времени процессора
1 – управление памятью
2 – связь между консолью оператора и процессами
3 – управление устройствами ввода/вывода и буферизация
4 – пользовательские программы
5 – системные операторы
Данная архитектура, в основном, служила средством разработки. Однако, каждый уровень может, в принципе, быть наделён привилегиями и для вызова нижележащего уровня выполнять системный вызов с контролем параметров (как в монолитных системах).
OC MULTICS, уровни – “кольца защиты”.
Проблемой является множественность и размытость интерфейсов между слоями (уровнями), т.к. сложно выполнить однозначную группировку функций по уровням.
Клиент – сервер (микроядро)
Модель предполагает наличие программного компонента потребителя сервиса, который называется клиентом, и программного компонента поставщика сервиса (сервера).
Взаимодействие клиента и сервера стандартизировано. Инициатором обмена является клиент, который посылает запрос серверу, находящемуся в состоянии ожидания запроса.
Применительно к структурированию ОС подход состоит в разделении её на несколько процессов (серверы), каждый из которых выполняет отдельный набор сервисных функций, например, управление памятью, планирование процессов. Каждый серверный процесс работает в пользовательском режиме. Микроядро работает в привилегированном режиме и выполняет функции доставки сообщений нужному серверу и передачи результатов клиенту.
Подход заменяет вертикальное распределение функций на горизонтальное.
Существует проблема: для реализации своих функций, серверы должны иметь доступ к аппаратуре. Существует два подхода к решению этой проблемы.
NT executive, исполнительная система WinNT
Заключается в размещении аппаратно зависимого сервиса в режиме ядра (управление процессами, управление памятью, управление вводом/выводом, управление безопасности). При этом сохраняется ориентированный на сообщения механизм взаимодействия с сервером.
Преимущества: скорость исполнения (не требуется частого переключения из режима ядра в режим пользования при взаимодействии с сервером).
Недостаток: невозможность адаптации механизмов ОС под конкретного пользователя.
Mach/Workplace OS
Оставить в ядре только те функции, которые можно исполнить только в режиме супервизора (привилегированном режиме).
При этом используется парадигма разделения механизма и политики. Ядро отвечает за механизм реализации некоторого решения по управлению ресурсами, а сервер пользовательского режима отвечает за принятие решений (за политику).
Пример 1: Управление нитями.
Очевидно, что запуск нити требует привилегированный режим.
Запуск процесса или нити требует доступа к аппаратуре – функции ядра. Решение о приоритетах нитей, дисциплине постановки в очередь может принимать работающий вне ядра планировщик.
Пользователь может использовать тот планировщик, который подходит для его прикладной задачи.
Пример 2: Микроядро управляет аппаратурой страничной памяти.
У планировщика есть pager, который определяет стратегию замещения страниц и работает вне ядра.
Для драйверов устройств тоже можно выделить общий интерфейс, работающий в режимах ядра. В его функции входит работа с аппаратными прерываниями и доступ к управляющим регистрам устройств ввода/вывода.
Драйвер, работающий в режиме пользователя, например, драйвер СУБД, может включать оптимизацию под конкретный способ доступа к диску.