Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOS_otvety_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.29 Mб
Скачать

По архитектуре ядра системы можно разделить на:

- 1) Монолитная архитектура ядра

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

Плюсы:

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

- высокая скорость (все внутри одной программы)

Минусы:

- объемное ядро -> экспоненциальная зависимость – снижается надежность.

Эта архитектура (или ее элементы) используется во всех современных ОС.

-2) Слоистая архитектура ядра

Наиболее распространена. Предложена Дейкстра.

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

Плюсы:

- инкапсуляция, сокрытые реализации (слои можно независимо модифицировать, главное – не затрагивать АПИ)

- разработка такой системы удобна и управляема

- выше ее надежность (объемность снижается)

- выше гибкость

Минусы

- снижается производительность (обращение прикладной программы идет последовательно по слоям)

Слои (снизу вверх)

- Машинно-зависимые компоненты (то, что выполняется непосредственно железом);

- Базовые механизмы ядра (самые примитивные операции: переключение контекстов, диспетчеризация прерываний, подкачка страниц);

- Менеджеры ресурсов (управляют основными ресурсами компа: файловой системой, процессами, вводом-выводом)

- Интерфейс системных вызовов – АПИ, обслуживает системные вызовы.

-3) Микроядерная архитектура:

Принцип – минимизировать ядро. Построена по принципу клиент-серверной организации.

  • То, что отвечает за работу аппаратуры + базовые операции = ЯДРО

  • Менеджеры ресурсов и все прочее вынесены за его пределы в виде приложений, работающих в пользовательском режиме. Они обслуживают прикладные программы и устроены так, что могут принимать запросы и отвечать на них, посылая сообщения.

Плюсы:

- ядро превратилось в микроядро, это повышает надежность.

- гибкая структура, легко расширяется. Очень удобна для распределенных систем.

- надежная система (все серверы работают в своем адресном пространстве + крах одного сервера не затрагивает работу других)

- поддерживает распределенные вычисления

- хорошая переносимость (весь машинно зависимый код изолирован в микроядре)

Минусы:

- Вместо одного переключения – 2 – снижается производительность.

  1. Аппаратная зависимость и переносимость операционных систем.

Не существует 100% переносимости ОС.

Переносимость – это не бинарное состоянии (переносима или нет), а понятие степени.

Понятие «степень переносимости» - усилия, которые необходимы, чтобы перенести ОС с одной платформы на другую

С точки зрения переносимости ОС состоит из 2 частей –

- аппаратно-независимая часть, пишется на ЯВУ, и переводится на язык конкретной машины с помощью транслятора С для этой машины

- аппаратно-зависимая часть, пишется на Ассемблере специально для этой машины.

Для увеличения степени переносимости ОС нужно

  • уменьшить объем аппаратно-зависимой части

  • писать большую часть системы на ЯВУ и пользоваться транслятором.

  • Локализовать аппаратно-зависимую часть в нескольких модулях (чтобы она не была разбросана по всей системе)

Например, в Виндовс НТ:

  • Существует специальный слой HAL (Hardware Abstraction Level), в котором локализованы все машинно зависимые функции ОС. Этот слой аппаратно зависимый, и включает в себя поддержку разного железа (х86, Итаниум, МИПС и тд). Он абстрагирован от архитектуры ОС.

Эти части системы, которые являются аппаратно-зависимыми, пишутся на ассемблере:

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

- переключение контекста

- средства поддержки привилегированного режима

- системный таймер

- средства защиты областей памяти

- средства трансляции адреса.

Все остальное ПО в системе контактирует с ней через этот слой.

  • Все остальные компоненты ядра пишутся на С

- Исполнительная система, утилиты, драйверы

- UI и подсистема GDI

Эти функции переводятся на язык разных процессоров с помощью трансляторов.

В системе реализована многослойная архитектура, и специфичные для этой архитектуры функции локализуются в ядре.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]