Организация операционных систем

Основным принципом организации ОС является иерархический подход – разбиение системы на уровни. Каждый уровень использует функции интерфейса более низкого уровня, и предоставляет интерфейс своей абстрактной машины более верхним уровням.

Увеличение числа уровней упрощает отдельные части системы, но замедляет работу.

Нижние уровни иерархической структуры образуют ядро ОС. Ядро ОС – это самый интенсивно работающий комплекс модулей ОС, резидентно располагается в ОП и работает в привилегированном режиме. Ядро работает непосредственно с аппаратурой.

Основные принципы организации ОС:

1. Принцип модульности. Модуль – это функционально законченный элемент, имеющий межмодульные интерфейсы. Модуль может быть заменен на другой при сохранении интерфейса. Особо важное значение имеют привилегированные, повторно-входимые и реентерабельные модули. Является одним из основных принципов в UNIX –системах.

2. Принцип особого режима работы. Ядро ОС и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме процессора. Процессор может работать в двух режимах: привилегированном режиме супервизора и пользовательском (ограничен набор команд и запрещен доступ к специальным системным регистрам). Например, процесс для выполнения операций ввода-вывода обращается с запросом к супервизорной части ОС и процессор переключается в привилегированный режим работы. Множество возможных запросов образуют системный API.

3. Принцип функциональной избирательности. Выделяется часть важных модулей, которая постоянно находится в ОП. Эта часть составляет ядро ОС. Другие системные модули загружаются по мере необходимости и называются транзитными.

4. Принцип генерируемости. Возможность настройки супервизорной системной части на конкретную конфигурацию и конкретные задачи. Конфигурирование обычно выполняется на этапе инсталляции. Потом изменения в конфигурационный файл (в реестр системы) можно вносить: в состав драйверов, в параметры системы. Только ОС Linux поддерживает принцип генерируемости, позволяет использовать не только готовое ядро, но и сгенерировать ядро оптимальное для ваших задач.

5. Принцип функциональной избыточности. ОС содержит несколько типов мониторов, систем управления файлами, что позволяет пользователю адаптировать ОС для получения максимальной производительности при решении конкретных задач.

6. Принцип виртуализации. Позволяет абстрагироваться от конкретных ресурсов. В любой современной ОС используются виртуальные ресурсы. Вводится понятие виртуальной машины. ОС скрывает от пользователя реальные аппаратные ресурсы, заменяет их абстракцией. Абстрактная машина способна понимать программы, написанные на некотором языке. Пользователь работает с машиной в терминах используемого им языка.

7. Принцип независимости программ от внешних устройств. Связь программ с конкретным устройством производится не на уровне трансляции программы, а в период планирования исполнения. Поэтому программу не нужно перекомпилировать для работы с новым устройством.

8. Принцип совместимости. Это способность ОС выполнять программы, написанные для другой ОС и даже для другой аппаратной платформы.

9. Принцип открытости и наращиваемости ОС. Это возможность легко внести изменения и дополнения, не нарушая целостность системы. Открытые системы должны соответствовать этим требованиям. К открытым системам в первую очередь относятся UNIX системы , а также Linux .

10. Принцип мобильности. ОС должна легко переноситься с одного процессора на другой, с одной платформы на другую. Для этого большая часть ОС должна быть написана на языке высокого уровня, стандартизованном, например Си. Программы на ассемблере не являются переносимыми. Аппаратно-зависимый код полностью исключить невозможно, он должен быть хорошо изолирован в локальном модуле. При переносе на другую аппаратную платформу модули, написанные на языке ассемблера, должны быть написаны заново, а остальная большая часть модулей может быть перекомпилирована под целевой процессор. Для обеспечения мобильности создан стандарт POSIX (интерфейс прикладного программирования для переносимых операционных систем). Принцип трудно поддерживать (универсальность приводит к потере производительности), например, ОС класса Windows NT только для процессоров с архитектурой IA32, не поддерживают MIPS, Alpha, PowerPC.

11. Принцип обеспечения безопасности вычислений. Защита ресурсов одного пользователя от другого, предотвращение захвата ресурсов одним пользователем, защита от несанкционированного доступа. Используется механизм учетных записей.