Архитектура операционной системы
Архитектура ОС
Ядро и вспомогательные модули операционной системы
Модули ядра ОС
Вспомогательные модули операционной системы
Вспомогательные модули операционной системы
Ядро и вспомогательные модули операционной системы
Ядро в привилегированном режиме
Привилегированный режим работы
Смена режимов при выполнении системного вызова
Многослойная структура ОС
Достоинства
Концепция многослойного взаимодействия
Детализация структуры ядра
Средства аппаратной поддержки ОС
Машинно-зависимые компоненты ОС
Базовые механизмы ядра
Менеджеры ресурсов
Интерфейс системных вызовов
  Аппаратная зависимость и переносимость ОС
Средства аппаратной поддержки ОС
Средства поддержки привилегированного режима
Средства трансляции адресов
Средства переключения процессов
Система прерываний
Система прерываний
Системный таймер
Средства защиты областей памяти
Переносимость операционной системы
Совместимость операционных систем
Микроядерная архитектура
Микроядерная архитектура
Достоинства микроядерной архитектуры
1.02M
Category: informaticsinformatics

arkhitektura1

1. Архитектура операционной системы

2.

Сложная система должна иметь понятную и рациональную структуру, то
есть разделяться на части — модули, имеющие вполне законченное
функциональное назначение с четко оговоренными правилами
взаимодействия

3. Архитектура ОС

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

4. Ядро и вспомогательные модули операционной системы

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

5. Модули ядра ОС

►Базовые функции модулей ядра ОС:
• управление процессами
• управление памятью
• управление устройствами ввода-вывода
►Ядро обеспечивает решение задачи организации вычислительного
процесса: переключение контекстов, загрузка/выгрузка страниц,
обработка прерываний и т.п.
►Другая задача – поддержка приложений, создание для них прикладной
программной среды. Приложения обращаются к ядру с запросами
(системными вызовами) для выполнения базовых операций (открытие и
чтение файла, вывод информации на дисплей и т.п.)
►Функции выполняемые ядром ОС требуют высокой скорости выполнения
и для этого размещаются постоянно в оперативной памяти (резидентные
модули).

6.

►Ядро является движущей силой всех вычислительных процессов
в компьютерной системе.
►Поэтому разработчики операционной системы уделяют особое
внимание надежности кодов ядра.

7. Вспомогательные модули операционной системы

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

8. Вспомогательные модули операционной системы

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

9.

►Разделение операционной системы на ядро и модули-приложения
обеспечивает легкую расширяемость ОС.
►Чтобы добавить новую высокоуровневую функцию, достаточно
разработать новое приложение, и при этом не требуется
модифицировать ответственные функции, образующие ядро
системы.

10. Ядро и вспомогательные модули операционной системы

11.

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

12. Ядро в привилегированном режиме

►Для надежного управления работой приложений ядро
ОС должно обладать некоторыми привилегиями по
отношению к остальным приложениям.
►Обеспечивается привилегированный режим
специальными средствами аппаратной поддержкой.
Процессор компьютера поддерживает как минимум два
режима работы – пользовательский (user mode) и
привилегированный (kernel mode, режим супервизора).
►Приложения в пользовательском режиме не могут
выполнять некоторые критичные команды
(переключение процессора с задачи на задачу, доступ к
механизму выделения и защиты областей памяти и т.п.).

13.

►Так как ядро выполняет все основные функции ОС, то чаще всего
именно ядро становится той частью ОС, которая работает в
привилегированном режиме. Иногда это свойство – работа в
привилегированном режиме – служит основным определением
понятия «ядро».

14.

►Приложения ставятся в подчиненное положение за счет запрета
выполнения в пользовательском режиме некоторых критичных
команд, связанных с переключением процессора с процесса на
процесс, управлением устройствами ввода-вывода, доступом к
механизмам распределения и защиты памяти.

15.

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

16. Привилегированный режим работы

►Между числом привилегий, поддерживаемых аппаратурой и
операционной системой нет однозначного соответствия:
• процессор Intel поддерживает 4 режима работы процессора –
операционные системы Windows используют два из них.
►Для реализации привилегированного режима достаточно
поддержки двух режимов работы
►Повышение устойчивости ОС, обеспечивающееся использованием
работы в привилегированном режиме, достигается за счет
некоторого замедления, вызванного необходимостью
переключения работы ядра.
►Архитектура ОС, основанная на разделении привилегированного
режима для ядра и пользовательского режима для приложений –
стала классической.

17.

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

18.

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

19. Смена режимов при выполнении системного вызова

20. Многослойная структура ОС

►Вычислительная
система под
управлением ОС можно
рассматривать как
состоящую из
нескольких слоев:
• Нижний слой –
аппаратура;
• Средний – ядро ОС;
• Верхний – утилиты,
приложения и т.п.
Аппаратура
Ядро ОС
Приложения

21.

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

22.

►Каждый слой обслуживает вышележащий слой, выполняя для
него некоторый набор функций, которые образуют межслойный
интерфейс.

23.

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

24.

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

25. Достоинства

►Она существенно упрощает разработку системы, так как
позволяет сначала определить «сверху вниз» функции
слоев и межслойные интерфейсы, а затем при детальной
реализации постепенно наращивать мощность функций
слоев, двигаясь «снизу вверх»
► Кроме того, при модернизации системы можно
изменять модули внутри слоя без необходимости
производить какие-либо изменения в остальных слоях,
если при этих внутренних изменениях межслойные
интерфейсы остаются в силе.

26. Концепция многослойного взаимодействия

27. Детализация структуры ядра

Аппаратура
Средства аппаратной
поддержки ОС
Машинно-зависимые
модули
Базовые механизмы
ядра
Менеджеры ресурсов

28. Средства аппаратной поддержки ОС

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

29. Машинно-зависимые компоненты ОС

► Этот слой образуют программные модули, в которых
отражается специфика аппаратной платформы
компьютера.
► В идеале этот слой полностью экранирует
вышележащие слои ядра от особенностей аппаратуры.

30. Базовые механизмы ядра

►Этот слой выполняет наиболее примитивные операции
ядра, такие как программное переключение контекстов
процессов, диспетчеризацию прерываний, перемещение
страниц из памяти на диск и обратно.
►Модули данного слоя не принимают решений о
распределении ресурсов — они только отрабатывают
принятые «наверху» решения, что и дает повод называть
их исполнительными механизмами для модулей верхних
слоев.

31. Менеджеры ресурсов

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

32. Интерфейс системных вызовов

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

33.

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

34.   Аппаратная зависимость и переносимость ОС

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

35.

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

36. Средства аппаратной поддержки ОС

►Операционная система в процессе работы
взаимодействует с аппаратными средствами
компьютера:
• Средства поддержки привилегированного режима
• Средства трансляции адресов
• Средства переключения процессов
• Защита областей памяти
• Система прерываний
• Системный таймер
►Это делает ОС привязанной к определенной
аппаратной платформе

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

►Основаны на системном регистре процессора. Этот регистр
содержит некоторые признаки, определяющие режимы
работы процессора, в том числе и признак текущего режима
привилегий.
► Смена режима привилегий выполняется за счет изменения
слова состояния машины в результате прерывания или
выполнения привилегированной команды.
► Число градаций привилегированности может быть разным у
разных типов процессоров, наиболее часто используются два
уровня (ядро-пользователь) или четыре (например, ядросупервизор-выполнение-пользователь).

38. Средства трансляции адресов

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

39. Средства переключения процессов

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

40. Система прерываний

►Позволяет компьютеру реагировать на внешние события,
быстро переходить с одной программы на другую.
►Механизм прерываний нужен для того, чтобы оповестить
процессор о возникновении в вычислительной системе
некоторого непредсказуемого события.
► Примерами таких событий могут служить завершение
операции ввода-вывода внешним устройством, некорректное
завершение арифметической операции.

41. Система прерываний

►При возникновении условий прерывания его источник
выставляет определенный электрический сигнал. Этот сигнал
прерывает выполнение процессором последовательности
команд, задаваемой исполняемым кодом, и вызывает
автоматический переход на заранее определенную
процедуру, называемую процедурой обработки прерываний.
►В большинстве моделей процессоров отрабатываемый
аппаратурой переход на процедуру обработки прерываний
сопровождается заменой слова состояния машины, что
позволяет одновременно с переходом по нужному адресу
выполнить переход в привилегированный режим.

42. Системный таймер

►Реализуется в виде быстродействующего регистра-счетчика.
►В регистр таймера программно загружается значение требуемого
интервала в условных единицах, из которого затем автоматически с
определенной частотой начинает вычитаться по единице.
► Частота «тиков» таймера, как правило, тесно связана с частотой
тактового генератора процессора. (Не следует путать таймер с
системными часами — работающей на батареях электронной
схеме, — которые ведут независимый отсчет времени и
календарной даты.)
► При достижении нулевого значения счетчика таймер инициирует
прерывание, которое обрабатывается процедур операционной
системы. Прерывания от системного таймера используются ОС в
первую очередь для слежения за тем, как отдельные процессы
расходуют время процессора.

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

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

44. Переносимость операционной системы

►Для уменьшения числа машинно-зависимых модулей
разработчики ОС ограничивают универсальность машиннонезависимых модулей. Например, Windows разработана для
нескольких типов процессоров и для многопроцессорных
систем используются собственные модули.
►Для обеспечения переносимости следуют следующим
правилам:
• Большая часть кода написана на языке, трансляторы которого
существуют для всех планируемых платформ;
• Объем машино-зависимых частей кода должен быть минимизирован;
• Аппаратно-зависимый код должен быть изолирован в нескольких
модулях
►В идеале машино-зависимые модули ядра полностью
экранируют остальную часть ОС от конкретных деталей
аппаратной платформы (кэши, контроллеры прерываний и
т.п.).

45. Совместимость операционных систем

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

46. Микроядерная архитектура

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

47. Микроядерная архитектура

Приложения пользователей
Пользовательский
режим
Привилегированный
режим
Сервер
процессов
Сервер
безопасности
Микроядро
Файловый
сервер

48. Достоинства микроядерной архитектуры

►Операционные системы, основанные на микроядерной
архитектуре обладают рядом преимуществ,
предъявляемых к современным ОС:
• Переносимость (обусловлена малым числом модулей в
аппаратно-зависимом микроядре)
• Расширяемость (добавление новых функций связано с
включением новых серверов ОС)
• Надежность (обусловлена изолированностью процессов)
• Поддержка распределенных вычислений (используется
механизм взаимодействия приложений аналогичный
взаимодействию в распределенных системах)
►Недостаток
• Производительность (обладают меньшей производительностью)
English     Русский Rules