Модуль клиент-сервер и микроядра

Многоуровневые ОС

Монолитные

Тенденции в структурном проектировании ОС.

Для удовлетворения требований, предъявляемых к ОС, Ос прошли путь развития от монолитных ОС к хорошо структурированным.

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

1) главная программа, которая вызывает требуемые сервисные процедуры.

2) набор сервисных процедур, реализующих системные вызовы

3) набор утилит, обслуживающих сервисные процедуры.

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

Прикладные программы или модули ОС передают запросы вверх и вниз на эти уровни.

Пример: ОС пакетной обработки, год издания 1968, автор Деикстра.

Эта ОС имела 6 уровней:

  1. распределение времени процессора, переключая процессы по прерыванию или по истечению времени.
  2. управление памятью – распределение пространства на магнитном барабане для тех частей процесса, для которых не было места в ОП – управление виртуальной памятью.
  3. управление связью между консолью оператора и процессами. Каждый процесс с помощью этого уровня имел свою свободную консоль оператора.
  4. каждый процесс вместо того, чтобы работать с копирующими устройствами обращался к абстрактным устройствам вв/выв с характеристиками удобными для пользователя.
  5. здесь работают пользовательские программы, которым не надо заботиться о процессах, памяти, управлением устройствами вв/выв и т.д.
  6. процесс системного оператора.

Этот подход заменил вертикальное распределение функций ОС на горизонтальное. См. архитектура микропорядка. Модель клиент-сервер один из подходов к структурированию ОС.

  1. предполагается наличие программного компонента, который является потребителем каких либо услуг (клиент).
  2. программный компонент – поставщик этих услуг (сервер).

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

Модель клиент-сервер применяется не только для построения ОС, но и другиго программного обеспечения.

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

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

- машинозависимые функции

- некоторые функции управления процессами

- обработка прерываний

- поддержка пересылки сообщений

- часть функций управления вв/выв.

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

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

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

Модель клиент-сервер позволяет добавлять новые серверы, не изменяя микроядро.

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

Модель клиент-сервер хорошо подходит для организации распределенных вычислений.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: