Функции и механизмы мультипрограммных операционных систем.
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. модульная организация (независимее модули организации, возможность раздельной перекомпиляции)
2. функциональная избыточность (модулей больше, чем требуется; потенциально они могут быть востребованы)
3. функциональная избирательность (возможность неактивности избыточных ресурсов – их можно не использовать в данный момент времени, если это не требуется)
4. разделение модулей с точки зрения привилегированного (работа с физическими устройствами, и памятью) и непривилегированного режимов работы
5. модули разделяются по резидентности (хотя бы один модуль всегда находится в оперативной памяти, т.е. резидентен; некоторые модули находятся в подкачке или не запущены).