Основные принципы построения ОС
Принцип модульности.
- Модуль – функционально законченный элемент, выполняемый в соответствии с принятым межмодульным интерфейсом. Модуль выделяется по функциональному признаку. Модульная организация позволяет легко (из)заменять неправильно работающие модули в ОС. Чаще всего используются реентерабельные и привилегированные модули.
Принцип функциональной избирательности.
- Для организации эффективной работы ОС, необходимо выделить некоторые модули и хранить их в ОЗУ. Эти модули составляют ядро ОС. Ядро:
- Модули по управлению системы прерываний;
- Средство управления выполнения программ (загрузка, приостановка, остановка);
- Модули по управлению процессом (распределение процессорного времени), т.е. диспетчеры программ;
- Модули по управлению выделения памяти. В зависимости от ОС в ядро могут ещё входить другие модули;
- Транзитные модули (загружаются в ОЗУ по мере необходимости, при нехватке ОЗУ могут быть выгружены из памяти).
- Для организации эффективной работы ОС, необходимо выделить некоторые модули и хранить их в ОЗУ. Эти модули составляют ядро ОС. Ядро:
Принцип генерируемости ОС.
Подразумевает собой возможность генерации ОС в зависимости от аппаратного обеспечения. Процесс генерации обычно производится один раз, перед достаточно долгим режимом эксплуатации. Для генерации необходимо наличие нескольких компонентов:
- Исходный код ОС;
- Компилятор с языка программирования на котором система написана;
- Специальная программа и входной язык для неё, который позволяет управлять процессом генерации.
ОС с открытым системным кодом – Linux (UNIX), есть возможность тонкой настройки ядра для конкретного процессора.
Принцип функциональной избыточности.
- В состав ОС должно входит несколько типов ПО для выполнения одинаковых функций (поддержка разных файловых систем).
Принцип виртуализации.
- Позволяет представить ресурсы ОС в виде определённого набора планировщиков и мониторов и использует единую схему распределения ресурсов. Наибольшее проявление – концепция виртуальной машины (воспроизводит архитектуру реальной машины, но может обладать произвольными характеристиками).
Принцип независимости программ от внешних устройств.
- Связь программ с конкретным внешним устройством производится не на этапе трансляции, а на этапе выполнения программы. Получается выгода: не нужна лишняя «перекомпиляция».
Принцип совместимости.
- Способность выполнять программы для другой ОС или даже для другой аппаратной платформы. Выделяют _2 уровня совместимости: _1. по выполняемому коду (бинарная)
По выполняемому коду (бинарная):
- На уровне команд процессора (одна и та же платформа);
- Совместимость на уровне системных вызовов;
- Совместимость на уровне библиотечных вызовов, если являются динамично связываемыми.
По исходному коду:
- Наличие компилятора платформы, на котором написана программа;
- Совместимость на уровне системных вызовов;
- Совместимость на уровне библиотечных вызовов.
Принцип открытой наращиваемой ОС
- (открыт исходный код). Целостность ОС сохраняется (UNIX).
Принцип мобильности
- (переносимости). ОС должна легко переноситься на другую аппаратную платформу. Правила создания переносимых ОС:
- ОС должна быть написана на языке высокого уровня, для которой существует компилятор на аппаратной платформе. В основном, современные ОС пишут на Си.
- (переносимости). ОС должна легко переноситься на другую аппаратную платформу. Правила создания переносимых ОС:
Принцип обеспечения безопасности и защиты
- Защита системы от пользователя;
- Защита от несанкционированного доступа.