Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по конспектам 2011.docx
Скачиваний:
13
Добавлен:
21.04.2019
Размер:
967.53 Кб
Скачать

8. Архитектура ос

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

Типы модулей:

  • Модули, работающие в привилегированном режиме – ядро ОС (их работа не может быть прервана);

  • Вспомогательные модули – непривилегированные модули программ

Вспомогательные модули взаимодействуют с ядром.

Все ОС структурно делят на ОС на основе ядра и микроядра.

Работа в привилегированном режиме позволяет:

  • Защитить модули ядра и вообще код и данные ОС от приложений прикладного режима. Ни одно из приложений пользователя не может разрушить систему.

  • Ведется арбитраж ресурсов между приложениями, работающими в прикладном режиме.

Работа ОС в двух режимах:

  • Режим ядра (Kernel mode);

  • Пользовательский режим (User mode).

Основные функции ядра (те, которые связаны с критичными командами по переключению процессора с прикладных задач на задачи управления УВВ, периферией; управление памятью, кэширование) выполняются в привилегированном режиме и имеют доступ ко всем адресным пространствам приложений. Любое приложение имеет доступ только к своему адресному пространству.

Если аппаратура позволяет использовать 2 уровня привилегий, то ОС программными средствами может обеспечить любое количество привилегий (в процессорах Intel 4 уровня привилегий).

9. Монолитные и многоярусные ядра

Монолитное ядро – разбиение на модули внутри ядра и каждый модуль соединяется (по связям) с каждым. Одно адресное пространство, полносвязные модули.

«+» - быстродействие

«-» - не масштабируемая система, т.к. изъятие одного модуля изменяет и другие; ограниченность ресурсов. Пример: MS-DOS.

Многоярусное ядро – каждый модуль работает только с модулями своего слоя или с модулями ниже него.

Функции каждого из слоев являются примитивами для более высоких слоев.

«+» - масштабируемость;

«-» - требуется больше ресурсов (всех).

Появляются слои, которые функционально ничего не делают (речь идет о статических ресурсах), запрос не может миновать ни один из уровней, но бывают исключения. Примеры: большинство ОС общего назначения – UNIX подобные, OS/2, NetWare, исполнительная система Windows.

10. Функциональные компоненты Linux

11. Структура ядра

Аппаратный слой ядра

12. Функции слоёв ядра

  • Аппаратный слой + программно-аппаратные средства: машинно-зависимые компоненты ОС.

Задача - ликвидация зависимости верхних слоев от программно-аппаратных средств.

Состав программно-аппаратных средств.

    • переход в привилегированный режим

    • аппаратное управление привилегиями

    • переключение с задачи на задачу, смена контекста

    • защита областей памяти, смена страниц памяти, кэширование

    • аппаратные схемы организации прерываний (внутренние – генерируемые процессом, внешние / аппаратные – генерируемые периферией и даже шиной) (с контроллером и без него)

  • Базовый механизм ядра: слой программных модулей, которые выполнят основные примитивы, необходимые для реализации более сложных функций (программное переключение контекстов, перемещение страниц памяти (диск<->ОЗУ), управление виртуальной памятью, межпроцессных взаимодействий, диспетчеризация прерываний, регистровое управление ПУ).

  • Менеджеры, диспетчеры (многослойные): уровень решения стратегических задач управления основными ресурсами системы (и процессами). Задачи планирования ресурсов:

    • учет свободных/занятых ресурсов

    • задача предоставления ресурсов

Межпроцессные взаимодействия (IPC) – обмен данными, синхронизация.

Каждый процесс работает в строго изолированном адресном пространстве, за рамками работать не может. Посредниками и механизмами передачи являются IPC.

ФС Windows входит в систему ВВ (реализована как драйвер). В Unix – отдельно.

  • Интерфейс системных вызовов: взаимодействие с утилитами и приложениями. Это верхний слой ядра. Открытый стандарт – интерфейс прикладного программирования API. Функции API предоставляют доступ к системным ресурсам из приложений в компактной форме, как правило, без учета детальной реализации и размещения этих ресурсов.

Для реализации системных вызовов используются программные прерывания. Эти инструкции позволяют вызвать модуль первичной обработки.

Увеличение количества уровней приведет к увеличению затрат, уменьшение количества уровней – примитивные программы.

  • Внутрисистемные задачи – переключение контекстов, загрузка/выгрузка/переключение страниц памяти, обработка прерываний, работа с памятью и др. функции, которые недоступны из приложений.

  • Создание прикладной программной среды и поддержка приложений (запросы, системные вызовы).

Функции ядра, которые могут вызываться приложениями, образуют интерфейс системных вызовов. Эти функции должны быть оптимизированы по доступу и по ресурсам. Решение: модули ОС – резидентны (всегда большая их часть в ОЗУ).