Similar presentations:
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. Достоинства микроядерной архитектуры
►Операционные системы, основанные на микроядернойархитектуре обладают рядом преимуществ,
предъявляемых к современным ОС:
• Переносимость (обусловлена малым числом модулей в
аппаратно-зависимом микроядре)
• Расширяемость (добавление новых функций связано с
включением новых серверов ОС)
• Надежность (обусловлена изолированностью процессов)
• Поддержка распределенных вычислений (используется
механизм взаимодействия приложений аналогичный
взаимодействию в распределенных системах)
►Недостаток
• Производительность (обладают меньшей производительностью)