- •Глава 5 Архитектура
- •Принцип функциональной избирательности
- •Принцип генерируемое™ ос
- •Принцип функциональной избыточности
- •Принцип виртуализации
- •Принцип независимости программ от внешних устройств
- •Принцип совместимости
- •Принцип открытой и наращиваемой ос
- •Принцип мобильности (переносимости)
- •Принцип обеспечения безопасности вычислений
- •Микроядерные операционные системы
- •Ipc (inter-process communication) — межпроцессные коммуникации.
- •Монолитные операционные системы
- •Мультипрограммность и многозадачность
- •Приоритеты задач (потоков)
- •Наследование приоритетов
- •Синхронизация процессов и задач
- •Предсказуемость
- •Принципы построения интерфейсов операционных систем
- •1 Trackball — в переносных компьютерах очень часто используется для управления перемещением курсора специальный шарик, который размещается рядом с клавиатурой и прокручивается пальцами.
- •Интерфейс прикладного программирования
- •0 Прочие api.
- •Реализация функций api на уровне ос
- •Реализация функций api на уровне системы программирования
- •Реализация функций api с помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •1 Ieee (Institute of Electrical and Electronical Engineers) — американский Институт инженеров по электротехнике и радиоэлектронике.
- •Пример программирования в различных api ос
- •Текст программы для Windows (WinApi)
- •Текст программы для Linux (posix api)
Принцип открытой и наращиваемой ос
Открытая ОС доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Наращиваемая (модифицируемая, развиваемая) ОС позволяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие и т. д. Другими словами, необходимо, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не. нарушить целостность системы. Прекрасные возможности для расширения предоставляет подход к структурированию ОС по типу клиент—сервер с использованием микроядерной технологии. В соответствии с этим подходом ОС строится как совокупность привилегированной управляющей программы и набора непривилегированных услуг — «серверов». Основная часть ОС остается неизменной и в то же время могут быть добавлены новые серверы или улучшены старые.
Этот принцип иногда трактуют как расширяемость системы.
К открытым ОС, прежде всего, следует отнести UNIX-системы и, естественно, ОС Linux.
Принцип мобильности (переносимости)
Операционная система относительно легко должна переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера, иначе говоря, архитектуру вычислительной системы) одного типа на аппаратную платформу другого типа. Заметим, что принцип переносимости очень близок принципу совместимости, хотя это и не одно и то же.
Написание переносимой ОС аналогично написанию любого переносимого кода — нужно следовать некоторым правилам. Во-первых, большая часть ОС должна быть написана на языке, который имеется на всех системах, на которые планируется в дальнейшем ее переносить. Это, прежде всего, означает, что ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном, например на языке С. Программа, написанная на ассемблере, не является в общем случае переносимой. Во-вторых, важно минимизировать или, если возможно, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры может иметь много форм. Некоторые очевидные формы зависимости включают прямое манипулирование регистрами и другими аппаратными средствами. Наконец, если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в нескольких хорошо локализуемых модулях.'Аппаратно-зависимый код не должен быть распределен по всей системе. Например, можно спрятать аппаратно-зави-симую структуру в программно задаваемые данные абстрактного типа. Другие модули системы будут работать с этими данными, а не с аппаратурой, используя набор некоторых функций. Когда ОС переносится, то изменяются только эти данные и функции, которые ими манипулируют.
Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.
