- •Часть 1
- •1. Что такое ос? Основная задача и основные функции.
- •2. Базовые понятия ос
- •3. Понятие Виртуальной Машины (вм).
- •9. Образ процесса
- •10. Базовые функции ос и функции ядра
- •11. Что представляет собой ядро ос
- •12. Вспомогательные модули.
- •13. Классификация ос по назначению и по режиму обработки задач
- •14. Классификация ос по способу взаимодействия с системой
- •15. Классификация ос по способу построения ос
- •22. Монолитная ос
- •23. Структура монолитной ос Структура монолитной ос
- •24. Классическая структура ос
- •27. Системный вызов
- •28. Понятие процесса
- •29. Режимы функционирования процессов.
- •30. Системная таблица процессов.
- •31. Создание процесса.
- •32. Состояния процесса
- •33. Иерархия процессов.
- •34. Завершение процесса.
- •Плановый выход по известной ошибке
- •Выход по неисправимой ошибке
- •Уничтожение другим процессом
- •35. Основные характеристики процесса.
- •36. Понятие потока. Модель потока
- •37. Преимущества использования потоков.
- •38. Реализация потоков в пространстве пользователя
- •39. Реализация потоков в пространстве ядра.
- •40. Различия между процессами и потоками.
- •41. Преимущества процессов над потоками
22. Монолитная ос
Монолитная ОС (макро ядерная) - WINDOWS 9X?, LINUX.
Раньше ОС не имели определенной структуры, представляя собой большие программы, которые состояли из множества подпрограмм. Не существовало ограничений на то, какие процессы могут вызываться, и была сделана только попытка ограничить совокупность системных данных. Поддерживать и модифицировать системы сложно, т.к. изменения в одной подпрограмме может повлечь проблемы в других частях ОС.
Структура монолитной ОС
Структура состоит из главной программы, которая вызывает сервисные процедуры, утилиты, в свою очередь, обслуживают сервисные процедуры.
23. Структура монолитной ос Структура монолитной ос
Структура состоит из главной программы, которая вызывает сервисные процедуры, утилиты, в свою очередь, обслуживают сервисные процедуры.
Этапы обращения:
1 – принимается вызов;
2 – переход из режима пользователя в режим ядра, которое распределяет ресурсы между заданиями пользователя и системными процессами;
3 – ОС проверяет параметры вызова, для того, чтобы определить, какой системный вызов должен быть выполнен;
4 – ОС обращается к таблице, которая содержит ссылки на процедуры и вызывает соответствующую процедуру.
24. Классическая структура ос
Одним из определенных свойств ядра является работа в привилегированном режиме, т. е. ни одно приложение или программа не имеет возможности без ведома ОС получать процессор дольше разрешенного времени и также без ведома ОС ни одно приложение не может управлять совместно используемыми внешними устройствами. За обеспечение привилегий ОС отвечают средства аппаратной поддержки. При этом аппаратура компьютера поддерживает 2 режима: - пользовательский и – привилегированный (режим ядра). Понятно, что все основные функции выполняет ядро, и оно работает в привилегированном режиме, а пользовательские программы – в пользовательском режиме.
Архитектура ОС, которая построенная на привилегированном ядре и приложениях пользовательского режима называется КЛАССИЧЕСКОЙ. Такую структуру используют ОС UNIX и некоторые модификации WINDOWS NT.
В такую структуру входит многоуровневая или многослойная структура ОС – способ структурирования ОС состоит в том, чтобы разделить ОС на модули, которые составляют уровни, т. е. организовать ОС как иерархию уровней, образовавшихся группами функций ОС; (файловая система, управляющая процессами и устройствами и т. д.).
Каждый уровень может взаимодействовать только со своим непосредственным соседом на выше или ниже лежащем уровне. Прикладные программы или модули ОС передают запросы вверх и вниз по этим уровням. Каждый уровень обеспечивает множество функций, зависящих только от нижних уровней. Самые нижние уровни – наиболее практичные по надежности и производительности.
Таким образом, ПО вместе с аппаратурой обеспечивает выполнение некоторого множества команд, которые определяют новую ВМ.
На следующем шаге выделяется новое нужное свойство, добавляется новый слой программной оболочки и получается более удобная ВМ.
Итак, слои ПО добавляют последовательно, пока не будет получена требуемая ВМ.
Ядро при таком порядке может состоять из следующих уровней:
среда аппаратной поддержки;
базовые механизмы ядра;
менеджеры ресурсов;
интерфейсы системных вызовов.
Все основные функции ОС, которые составляют многоуровневое ядро находятся в привилегированном режиме.
При этом каждое приложение пользовательского режима работает в собственном адресном пространстве и защищено от вмешательства других приложений. Код ядра в привилегированном режиме имеет доступ ко всем областям памяти всех приложений. Но сам от них защищен. Для выполнения системных функций приложения обращаются к ядру с системными запросами.
Преимущества такой системы: то, что модульный подход уменьшает зависимость между различными компонентами системы, сокращая нежелательное взаимодействие, и модульный подход обеспечивает высокую производительность.
Недостаток: код ядра достаточно большой, поэтому большее количество ошибок, ядро плохо защищено от вспомогательных процессов.
25-26. «Модель «экзоядра», микроядерная структура ОС
Если модель классической структуры ОС берет на себя максимальное количество функций, то принцип экзоядра – максимально отдать функции пользовательским программам, т. е., например, пользовательская программа может иметь свою файловую систему. Такая ОС должна обеспечивать безопасное распределение ресурсов среди соревнующихся за эти ресурсы пользователей. (XOK/EXOS)
Микро ядерная структура ОС (ОС QNX).
Альтернативой классического способа построения ОС является чем-то средним между классической структурой ОС и моделью экзоядра. Суть в том, что небольшая часть ОС, которая называется микро ядром, работает в привилегированном режиме, а остальные функции работают в пользовательском режиме и оформлены как приложения.
В состав микроядра входят:
машинно-зависимые модули;
модули для выполнения части базовых функций, (таких как функции управления процессами, обработки прерываний, управления
Микроядро защищено от остальных частей ОС, которые оформлены в форме приложений, и основным назначением этой части ОС является обслуживание запросов других приложений (выделение памяти, создание процесса).
Прикладные программы или другие компоненты ОС являются клиентами. Они запрашивают выполнение некоторой функции у сервера посредствам посылки сообщений. Функции, которые выполняются пользовательском режиме, называются серверами ОС.
Вследствие того, что адресные пространства приложений изолированы, непосредственная передача сообщений между приложениями невозможна. Микро ядро имеет доступ к адресным пространствам каждого приложения и его привилегированный режим позволяет ему выступать в роли посредника. Таким образом, микро ядро передает сообщения, которые содержат имя и параметры этой процедуры, нужному серверу. Сервер выполняет запрошенную операцию, после этого ядро возвращает результат клиенту посредствам другого сообщения. Описанная модель называется модель «клиент – сервер».
Таким образом, модули взаимодействуют не вызовом процедур из друг друга, а посылкой сообщений через центральный обработчик сообщений. Сообщения идут в обоих направлениях, результаты возвращаются по тому же пути, что и запрос. Модуль, который посылает первоначальное сообщение – клиент, а который получает его – сервер. Отсюда в микроядерной структуре получается два основных понятия:
серверный процесс, который обрабатывает запросы;
клиентский процесс, который посылает запросы.
Задача ядра – управление связью между клиентами и серверами.
Преимущества микро ядерной структуры:
малый код ядра и отдельных подсистем, отсюда меньшее количество ошибок;
ядро лучше защищено от вспомогательных процессов.
Недостаток:
уменьшение производительности.
Сравнение моделей ос.
При классической структуре ос выполнение системных вызовов сопровождается 2-мя переключениями, а при микро ядерной – 4 переключения.
Микро ядерная структура наиболее эффективно работает в многопроцессорных системах.
Современные ос образуют некоторый спектр: с одной стороны, с минимально возможным ядром (модель экзоядра), с другой стороны – ос, в которых ядро выполняет достаточно много функций (монолитные системы).