Операционная система - комплекс программ, обеспечивающих контроль за существованием, редактированием и использованием ресурсов ВС.
Процесс - совокупность машинных команд и данных, исполняющаяся (обрабатываемая) в рамках ВС и обладающая правами на использование некоторого набора ресурсов.
(процесс вовсе не обязан исполняться. он ожидает, пока ему предоставят ресурс. поэтому обрабатываемая)
Требования к ОС
- Надёжность (минимальное количество ошибок)
- Самостоятельно перезагрузить зависший процесс и подобные операции
- Защита (защита информации и ресурсов от несанкционированного доступа)
- Конфиденциальная информация может очень дорого стоить.
- Защита - одна из ключевых задач.
- Эффективность
- Удовлетворение выставленным критериям эффективности (скорость, безотказность, удобство работы, т.п.)
- Предсказуемость (известны заранее проблемы и последствия различных действий, устойчивость к форс-мажору)
- Свойство операционной системы, позволяющее достоверно спрогнозировать ущерб при возникновении форс-мажора (отключение питания, ошибка)
Структура ОС
Ядро (Kernel) - резидентная часть ОС, работающая в режиме супервизора (обычно работает в режиме физической адресации)
| Структура: |
|---|
| Интерфейсы программных вызовов (API - Application Programming Interface) |
| Динамически подгружаемые драйверы физических и виртуальных устройств |
| Ядро ОС |
| Аппаратура |
- Ядро подгружает процессы
- Динамически подгружаемые драйверы устройств:
- резидентные/нерезидентные (резидентные находятся в оперативной памяти с момента запуска и находятся там всё время работы)
- работают в пользовательском/привилегированном режиме
Системный вызов - обращение к ОС за выполнением той или иной функции (возможности, услуги, сервиса. Уровень API)
- При системном вызове не происходит подгрузки программы в оперативную память, в отличие от библиотечных функций.
- Программные прерывания (например, fread/fride из библиотеки ввода/вывода. они могут использовать инфраструктуру библиотеки -> система работает также с кэшем библиотеки)
Пример структурной организации классической системы
Монолитные системы
Бывают монолитные системы. Они строятся без жёсткой структуры и с наиболее быстрыми и оптимальными путями решения.
Пример монолитной системы:
Такая система построена оптимальным образом, но сложно модифицируется. В ней трудно искать ошибки.
- Подобно замене видеокарты в одноплатном компьютере, замена какого-либо компонента системы - трудный процесс.
Многослойные ядра
Многослойные ядра представляются как совокупность уровней, связанных посредством программных интерфейсов. Каждый уровень выполняет свою задачу. (Например, уровень файловой системы)
- Замена одного из модулей такой системы заметно проще. Новый модуль должен соответствовать API.
- Такие системы менее эффективны.
Микроядерная архитектура

- Изначально была исследовательской моделью
- По сей день используется компанией Apple в iPhone, используется в BSD.
- Ядро с минимальной функциональностью. (очень “маленькое” ядро. Реализованы, например, первичная обработка прерываний и работа с оперативной памятью)
- К такому ядру могут быть подключены, например, несколько разных драйверов файловых систем.
- Плюсы:
- Высокая гибкость. Главное требование к новым модулям - поддержка подключения.
- Минусы:
- Неэффективность. На примере
read(), для выполнения операции нужно совершить обращение к микроядру, которое осуществит запрос к драйверу устройства, который… Это долго.
- Неэффективность. На примере
Логические функции ОС
- Управление процессами
- Выделение ресурсов.
- Управление ОП
- Организация оперативной памяти на конкретной платформе.
- Планирование
- Разрешение конкуренции процессов за ресурсы.
- Планирование распределения ресурсов.
- Управление устройствами и ФС
- Управление внешними запоминающими устройствами и файловой системой.
- Сетевое взаимодействие
- Одиночный компьютер - почти немыслимое образование.
- Безопасность
- Статическая - средства аутентификации, которые определяют набор прав и возможностей пользователя.
- Динамическая - отслеживание процессов, которые могут привести к нарушению безопасности.
Типы операционных систем
Пакетная ОС
В нашем случае мультипроцессная.
- Определяется стратегией переключения с одного процесса на другой. Переключения происходят при возникновении следующих событий:
- Выполнение процесса завершено.
- Возникло прерывание.
- Зацикливание процесса (прерывание по таймеру).
Такая система наиболее эффективно загружает процессор. Минимизация переключения между процессами.
- Эффективны в больших вычислениях.
Системы разделения времени
Квант времени ЦП - некоторый фиксированный ОС промежуток времени работы ЦП.
- Переключение выполнения процессов происходит:
- Исчерпался выделенный квант времени.
- Выполнение процесса завершено
- Возникло прерывание.
- Зацикливания процесса.
- Если квант малый, возможен процесс выполнения в интерактивном режиме (быстрый отклик).
- Например, ввод буквы с клавиатуры. не требует больших вычислений и выполняется за квант времени
- Критерий эффективности - скорость отклика на запрос.
- Кванты времени могут быть разными для интерактивных/не интерактивных задач.
Модель организации планирования процесса
Множество пользователей одновременно запускают различные типы процессов.
- Если в системе появляется готовый к исполнению процесс с приоритетом выше исполняемого, ему выделяется квант времени соответствующего размера. Исполняемый процесс будт прерван и получит статус ожидания.
- -> работа зависит от того, каким образом будут определены приоритеты процессов.
- Само планирование процессов может занимать много времени.
- По картинке:
- Днём, когда люди работают, лучше сделать приоритетными интерактивные задачи.
- На втором месте - счёт-отладка.
- Когда все ушли на обед, можно и основной счёт провести.
- Рабочий день завершился. Теперь приоритетные процессы - отладочные.
- Вторые - счёт.
- Интерактивные труднодоступны.
- Ночью - в первую очередь счёт.
- Можно администраторские процессы сделать приоритетными.
ОС реального времени
Системы реального времени являются специализированными системами, в которых все функции планирования ориентированы на обработку фиксированного набора событий за время, не превосходящее некоторого предельного значения.
- Например, при работе автопилота самолёта.
- Система получает показания с различных датчиков и в оперативном режиме принимает решение, какие действия нужно выполнить.
- Время принятия решения ограничено.
- Система, гарантирующая обработку событий из некоторого набора определённых событий за время, не превышающее установленный предел времени для данного события.
- Часто для жёстких временных рамок (по последствиям) используются системы семейства UNIX.
Сетевые, распределённые ОС
Сетевая ОС - ОС, которая обеспечивает функции распределения приложений в сети.

- Например, система, управляющая высокопроизводительным кластером.
Распределённая ОС - ОС, функционирующая на многопроцессорном/многомашинном комплексе, в котором на каждом из узлов функционирует своё ядро, а также, система, обе печивающая распределение возможностей (ресурсов) ОС.

