1. Главная программа, которая вызывает требуемые сервисные процедуры.
2. Набор сервисных процедур, реализующих системные вызовы
3. Набор утилит, обслуживающих сервисные процедуры
Модель монолитной системы:
В этой модели для каждого системного вызова имеется одна сервисная процедура (напр. Читать из файлов)
Утилиты выполняют функции, которые нужны нескольким сервисным процедурам (для чтения и записи файла необходима утилита для работы с диском)
1. Принимается вызов
2. Выполняется переход из режима пользователя в режим ядра
3. ОС проверяет параметры вызова, для того, чтобы определить, какой системный вызов должен быть выполнен.
4. ОС обращается к таблице, содержащей ссылки на процедуры и вызывает соответственную процедуру.
Данная структура представлена, как иерархия уровней.
Уровни образуются группами функций операционной системы - файловая система, управление процессами и устройствами и т.п. Каждый уровень может взаимодействовать только со своим непосредственным соседом - выше- или нижележащим уровнем.
Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням.
Пример структуры многоуровневой структуры:
7. Обработчик системных вызовов
6. Файловая система
5. Виртуальная память
4. Драйвер устройств(каждый работает как самостоятельный поток)
Эта модель является средним между двумя предыдущими моделями.
В развитии современных операционных систем наблюдается тенденция в сторону дальнейшего переноса задач из ядра в уровень пользовательских процессов, оставляя минимальное микроядро.
В этой модели вводятся два понятия:
• Серверный процесс (который обрабатывает запросы)
• Клиентский процесс (который посылает запросы)
В задачу ядра входит только управление связью между клиентами и серверами.
Преимущества:
• Малый код ядра и отдельных подсистем, и как следствие меньшее содержание ошибок.
• Ядро лучше защищено от вспомогательных процессов.
• Легко адаптируется к использованию в распределенной системе.