
- •Содержание
- •Лекция №7. Планирование процессов. Алгоритмы планирования процессов. 35
- •Лекция №8. Вытесняющие и невытесняющие алгоритмы планирования. Взаимодействие процессов. 40
- •Лекция №13. Файлы. Типы файлов. 83
- •Предисловие
- •Лекция №1. Этапы развития операционных систем.
- •Лекция №2. Общие сведения об ос.
- •По способу организации вычислений:
- •По назначению (областям использования):
- •По режиму обработки (Поддержка многозадачности):
- •По количеству одновременно работающих пользователей:
- •По концепции организации:
- •По особенностям аппаратных платформ:
- •Лекция №3. Интерфейс. Операционное окружение.
- •Вспомогательные модули ос (модули-приложения)
- •2. Микроядерная архитектура ос
- •3. Монолитное ядро.
- •Лекция №5. Обработка прерываний.
- •Лекция №6. Процессы.
- •Лекция №7. Планирование процессов. Алгоритмы синхронизации процессов.
- •Лекция №8. Вытесняющие и невытесняющие алгоритмы планирования. Взаимодействие процессов.
- •Взаимодействие процессов
- •Лекция №9. Ввод-вывод. Управление вводом-выводом.
- •Организация программного обеспечения ввода-вывода
- •3. Независимое от устройств программное обеспечение ввода-вывода
- •4. Пользовательский слой программного обеспечения.
- •Лекция №10. Память. Управление реальной памятью.
- •Лекция №11. Методы распределения без использования внешней памяти.
- •1. Распределение памяти фиксированными разделами (схема с фиксированными разделами).
- •2. Распределение памяти разделами переменной величины
- •3. Перемещаемые разделы
- •Лекция №12. Виртуальная память. Методы виртуализации памяти. Понятие виртуальной памяти
- •Рассмотрим подробнее каждый из методов виртуальной памяти. Страничное распределение
- •Свопинг.
- •Лекция №13. Файлы. Типы файлов.
- •Лекция №14. Логическая и физическая организация файлов. Логическая организация файла.
- •Физическая организация файла.
- •4. Перечень номеров блоков.
- •Лекция № 15. Доступ к файлам.
- •Лекция № 16. Файловая система. Надежность файловой системы.
- •1. Резервное копирование
- •2. Непротиворечивость файловой системы
- •1. Кэширование.
- •2. Опережающее чтение блока.
- •3. Снижение времени перемещения блока головок.
- •Лекция № 17. Общая модель файловой системы
- •Современные архитектуры файловых систем.
- •Лекция № 18. Обзор файловых систем.
2. Микроядерная архитектура ос
Микроядерная архитектура является альтернативой классическому способу построения операционной системы. Под классической архитектурой в данном случае понимается рассмотренная выше структурная организация ОС, в соответствии с которой все основные функции операционной системы, составляющие многослойное ядро, выполняются в привилегированном режиме. При этом некоторые вспомогательные функции ОС оформляются в виде приложений и выполняются в пользовательском режиме наряду с обычными пользовательскими программами (становясь системными утилитами или обрабатывающими программами).
Суть микроядерной архитектуры состоит в следующем. В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром (рис 6). Все остальные функции ядра оформляются в виде приложений, работающих в пользовательском режиме.
Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие базовые (но не все!) функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, пересылке сообщений и управлению устройствами ввода-вывода, связанные с загрузкой или чтением регистров устройств. Набор функций микроядра обычно соответствует функциям слоя базовых механизмов обычного ядра. Такие функции операционной системы трудно, если не невозможно, выполнить в пространстве пользователя.
Рис 6. Перенос основного объема функций ядра в пользовательское пространство
Микроядерные ОС обладают переносимостью, расширяемостью, надежностью, поддерживают распределенные приложения. За эти достоинства приходится платить снижением производительности, что является основным недостатком микроядерной архитектуры.
Наиболее ярким представителем микроядерных ОС является ОС реального времени QNX. Микроядро QNX поддерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня. Микроядро обеспечивает всего лишь пару десятков системных вызовов, но благодаря этому оно может быть целиком размещено во внутреннем кэше даже таких процессоров, как Intel 486. Разные версии этой ОС имеют различные объемы ядер — от 8 до 46 Кбайт.
Чтобы построить минимальную систему QNX, требуется добавить к микроядру менеджер процессов, который создает процессы, управляет процессами и памятью процессов. Чтобы ОС QNX была применима не только во встроенных и бездисковых системах, нужно добавить файловую систему и менеджер устройств. Эти менеджеры исполняются вне пространства ядра.
3. Монолитное ядро.
По сути дела, операционная система это обычная программа, поэтому было бы логичным и организовать его так же, как устроено большинство программ, то есть составить из процедур и функций. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel). Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме. Таким образом, монолитное ядро это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.
Черты монолитного ядра:
1) Все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных.
2) Разделение между режимом ядра и режимом пользователя.
Все рассмотренные подходы к построению операционных систем имеют свои преимущества и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов.
Примером смешанного подхода: возможность запуска операционной системы с монолитным ядром под управлением микроядра.
1) 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, осуществляется монолитным ядром. Данный подход возник в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.
2) Windows NT. Хотя Windows NT часто называют микроядерной операционной системой, это не совсем так. Микроядро NT слишком сложно и велико (более 1 Мб), чтобы носить приставку микро. Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных операционных системах. В тоже время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. Кроме того, в Windows NT существует разделение между режимом ядра и режимом пользователя еще одна черта монолитного ядра. Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.