Архитектура современных операционных систем
презентация к уроку
Современный компьютер – сложнейшая аппаратно-программная система. Написание программ для компьютера, их отладка и последующее выполнение представляет собой сложную трудоемкую задачу. Основная причина этого – огромная разница между тем, что удобно для людей, и тем, что удобно для компьютеров. В данной работе представлена информация о архитектуре современных операционных систем, их составе.
Скачать:
Вложение | Размер |
---|---|
arhitektura_sovremennyh_operatsionnyh_sistem.pptx | 107.14 КБ |
Предварительный просмотр:
Подписи к слайдам:
Архитектурой операционной системы Под архитектурой операционной системы понимают структурную и функциональную организацию ОС на основе некоторой совокупности программных модулей. В состав ОС входят исполняемые и объектные модули стандартных для данной ОС форматов, программные модули специального формата (например, загрузчик ОС , драйверы ввода-вывода), конфигурационные файлы, файлы документации, модули справочной системы и т.д.
Состав операционной системы Операционная система состоит из четырех основных частей: Первая часть — ядро, низкоуровневая основа любой ОС, выполняемая аппаратурой в особом привилегированном режиме. Ядро загружается в память один раз и находится в памяти резидентно – постоянно, по одним и тем же адресам. Ядро — командный интерпретатор, «переводчик» с программного языка на «железный», язык машинных кодов. Вторая часть — Подсистема управления ресурсами ( resource allocator ) — управляет вычислительными ресурсами компьютера — оперативной и внешней памятью, процессором Третья часть — Управляющая программа ( control program , supervisor ) – управляет исполнением других программ и функционированием устройств ввода-вывода.(используются специализированные программы для управления различными устройствами, входящими в состав компьютера. Драйвера «системные библиотеки») Четвертая часть — удобная оболочка, с которой общается пользователь — интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро.
ЯДРО Ядро – самый ключевой, основной компонент операционной системы, именно в нем реализуется большая часть функциональности ОС. Появились различные подходы к проектированию и реализации ядра ОС, а именно Монолитное ядро Поуровневый подход Микроядро Модули ядра
Монолитное ядро (все вместе ) Появилось исторически первым в ходе эволюции операционных систем. ОС используют большое монолитное ядро Монолит – все вместе, все библиотеки, сервисные функции в одном ядре. Монолитное ядро содержит следующие базовые элементы: Планирование процессов Управление файловой системой Сетевое взаимодействие Драйверы устройств Управление памятью
Преимущества: Производительность — в виду того, что количество переключений из контекста режима пользователя в режим ядра сведено к минимуму; Недостатки: Неустойчивость к сбоям – так как все базовые элементы и их работа выполняются в режиме ядра, и если хотя бы в одном модуле или блоке ядра произойдет какой-либо сбой, то ему будет подвержена вся ОС(все ядро), вариантов других нет, закончится все – перезапуском ОС. Монолитный подход — простейший; Первые ОС были монолитными, в них: Нет определенной структуры Нет уровней Нет разделения на модули
MS-DOS Определенной структуры данные операционной системы не имеют. Это большой набор сервисных функций. Нет деления на слои и модули. ОС были простыми и большими, так как все время дописывались, за счет этого сильно росли. Пример – классический MS-DOS Больше функциональности, меньше места (в то время было очень маленькое адресное пространство) Разделение на уровни не было, программы могли работать с оборудованием напрямую, могли сами вызывать нужные драйверы Возможно улучшение – операционная система разбивается на ряд уровней (слоев) – каждый следующий уровень базируется на предыдущем(вводится понятие иерархии уровней) Самый нижний – аппаратное обеспечение Самый верхний – интерфейс пользователя Каждый уровень использует только функции (сервисы), предоставляемые нижестоящим уровнем. Все (или почти все уровни) работают в режиме ядра Примеры таких ОС – MULTICS, VAX\VMCИ Прикладное ПО Резидентные программы Драйверы устройств MS-DOS BIOS (драйверы устройств в BIOS )
Простой поуровневый подход Разбиение на уровни помогает разбить программирование операционной системы, становится легче программировать. Поуровневый подход используется оригинальным ядром Unix : Небольшое число монолитных слоев Нет инкапсуляции, функции и сервисы, предоставляемые на разных уровнях доступны всей системе По сути ядро – набор процедур, которые могут вызывать любые другие процедуры Огромное количество функциональности в ядре (все что можно и нужно) Современные ОС более четко разделены на уровни. Пользователи Символьный вв /выв, блочный вв /выв, драйверы терминалов, файловая система, дисковые драйвера, планировщик, виртуальная память Ядро OC UNIX Интерфейс системных вызовов Интерфейс с аппаратурой Терминалы Контроллеры дисков Физическая память
Поуровневый подход позволяет независимо работать, менять и отлаживать ОС. Если уровни строго разделены : можно над ними независимо работать можно независимо заменять Например, сетевой стек TCP/IP является примером строгого разделения на уровни (уровни все четко выверены и подробно описаны) Сложности: как определить эти слои (непростая задача) разделение на уровни возможно только при наличии иерархии вызовов и отсутствии циклических зависимостей.
Циклические зависимости Пример Возьмем драйвер диска: Драйверу устройства можно ожидать завершения выполнения операции вв /выв, это означает обращение к уровню планировщика времени ЦП. Это вызов с верхнего слоя, а драйвер диска находится в самом низу на аппаратном уровне, это циклическая зависимость. ЦП может вызвать драйвер устройства для выгрузки и подгрузки процессов. Поэтому в этом случае данная архитектурная модель не работает Чем больше таких уровней, тем больше возникает проблемных ситуаций. Выход – отход от строгой поуровневой модели и возврат к небольшому числу слоев с большой функциональностью. Дальнейшим этапом развития придумали МИКРОЯДРО.
МИКРОЯДРО Микроядро – ядро, содержащее только самые необходимые функции. Идея: минимизировать само ядро, вынести как можно функциональности в режим пользователя (т.е. исполнять эту функциональность в виде обычных процессов). Многие сервисы становятся пользовательскими процессами: Драйверы устройств, Файловые системы, Менеджер виртуальной памяти, Оконные системы графического интерфейса пользователя, Службы безопасности Данный подход популяризован ядром MACH («МАК») На основе MACH сделаны, среди прочих, Mac OSX ( комп.Apple ), GNUHurd .
Структура микроядра Компоненты ОС, являющиеся внешними к микроядру реализуются в виде серверных процессов. Взаимодействие с ними осуществляется через обмен сообщениями, а не путем системных вызовов. Микроядро основывается на механизме обмена сообщениями : проверяет корректность сообщений передает их между компонентами проверяет, разрешен ли обмен сообщениями Предоставляет доступ к оборудованию Фактически реализует клиент-серверную архитектуру на одном компьютере.
Преимущества микроядра Унифицированные интерфейсы – процессы могут обмениваться сообщениями, нет разницы между режимом пользователя и режимом ядра, все сервисы предоставляются через обмен сообщениями в клиент-серверной архитектуре. Например, запросы могут обрабатываться на удаленные машины. Расширяемость – легче расширить, новые сервисы добавляются как расширяется функциональность программы Портируемость (переносимость) – на новое оборудование нужно перенести микроядро. Надежность, безопасность – меньше кода выполняется в режиме ядра, ошибки программ в режиме пользователя не влияют на остальную часть системы. Недостатки микроядра Больше расходов на взаимодействие между системными сервисами. Каждое взаимодействие требует переключения режимов. Переходы из режима пользователя в режим ядра и обратно. Механизм передачи сообщений требует очень частого переключения контекста. Режим ядра – режим пользователя, они “съедают” значительную часть мощности ЦП. Системные сервисы, работающие в режиме пользователя – это процессы, ОС нужно их планировать( Диспетчеризация).
Модули ядра Технология «модули ядра» развивались параллельно вместе с микроядром. Модуль – нечто среднее между поуровневой архитектурой и микроядром. Удобно для разработки (каждый может разрабатывать свой модуль без необходимости трогать основную систему). Модули находятся в режиме ядра (уменьшаются затраты на взаимодействие модулей между собой) Компромисс ради производительности. Под разные задачи необходимо выбирать ОС Если ОС должна быть высоко устойчива к сбоям, тогда выбираем соответствующую ОС этим задачам. Если для нормальных задач, то подойдет и Linux . Многие ОС реализуют поддержку модульности Пример – ОС Linux . Классифицируют как монолитное ядро. Каждый ключевой компонент – отдельный модуль Взаимодействие происходит через определенные интерфейсы Загружаются модули по требованию Можно самому компилировать ядро Linux , выбирать нужные модули, решать какие модули войдут в ядро, а какие нет — т.е. компоновать ядро согласно своих требований, что позволяет получать преимущество – гибкость операционной системы.
Критерии выбора операционной системы Монолит – если есть разбиение на уровни, модули, но большей частью все компоненты выполняются в режиме ядра, этот монолит обычно расструктурированный . Микроядро – если есть механизм обмена сообщениями и он является ключевым для организации взаимодействия компонентов ядра, сделано по клиент-серверной архитектуре. Его части выполняются в режиме пользователя. Такая ОС устойчива к сбоям .
По теме: методические разработки, презентации и конспекты
Презентация "Установка операционных систем"
Презентация "Установка операционных систем"...
Тест по теме "Виды операционных систем"
Тест предназначен для проверки знаний студентов по теме "Виды операционных систем" по дисциплине "Операционные системы и среды" для ипециальности 09.02.01 и для дисциплины "Операционные системы" для с...
Методическая разработка урока по дисциплине «Операционные системы и среды» на тему «Сравнительные характеристики операционных систем»
Разработка учебного занятия по дисциплине «Операционные системы и среды» содержит план-конспект, технологическую карту занятия. В приложении приведены раздаточный материал для студентов, эталоны...
Типы архитектур ядер операционных систем
Типы архитектур ядер операционных систем...
Обзор Unix-операционных систем различных производителей
Презентация по дисциплине «операционные системы» Тема: Обзор Unix-операционных систем различных производителей В данной работе представлена краткая информация про определенную операционную...
Обзор операционных систем
Операционная система или ОС — это программное обеспечение которое позволяет загружается при включении компьютера и позволяет пользователю работать с программным обеспечением. В до...
Установка сетевых операционных систем на основе LINUX
Основы UNIX.. 31Виртуальные консоли. 31Множественные консоли. 31Файл /etc/ttys. 31Консоль в однопользовательском режиме. 31Изменение видеорежимов консоли. 31Структура каталогов. 32Организация дисков. ...