
- •Архитектура операционной системы
- •1. Монолитные системы
- •2. Многоуровневые системы
- •3. Виртуальные машины
- •Архитектура, основанная на ядре
- •Режим ядра и пользовательский режим
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура
- •Процессы и потоки
- •Реализация процессов
- •Назначение потоков
- •Реализация потоков
- •Планирование Процессов
- •Пример 1. Планирование в Windows 2000
- •Пример 2. Планирование в unix
- •Цели планирования
- •Схемы планирования
- •Взаимодействие процессов и потоков
- •Состояние состязания
- •Критические области
- •Взаимоисключение с активным ожиданием
- •Семафоры
- •Мьютексы
- •Мониторы
- •Взаимные блокировки
- •Основные направления решения проблемы тупиков
- •Предотвращение тупиков
- •Обнаружение тупика
- •Восстановление после тупика
- •Организация мультизадачности ос
- •Опрос (проверка флагов)
- •Исключения
- •Прерывания
- •Классификация прерываний
- •3 Класса прерываний:
- •Механизм прерываний
- •Приоритеты прерываний
- •Организация памяти
- •Функции ос по управлению памятью
- •Стратегии управления памятью
- •Фрагментация памяти
- •Способы борьбы с фрагментацией:
- •Типы адресов памяти
- •Учет свободных и занятых областей памяти
- •Учет памяти с помощью битовых карт
- •Учет памяти с помощью связных списков
- •Виртуальная память
- •Файлы подкачки
- •Вопросы по модулю №1
Режим ядра и пользовательский режим
Чтобы ОС была надежной, ее ядро должно быть защищено от сбоев в пользовательских программах. Ядро ОС должно работать в привилегированном режиме по сравнению с приложениями.
Различные режимы выполнения программ обеспечиваются на аппаратном уровне. Аппаратура современных компьютеров поддерживает как минимум два режима работы программ:
привилегированный режим работы, называемый режимом ядра (kernel mode) или режимом супервизора (supervisor mode);
пользовательский режим (user mode).
При работе операционной системы ее ядро работает в режиме ядра, а остальные части ОС и приложения – в режиме пользователя.
Режим ядра – это режим работы компьютера, в котором доступны все его возможности, разрешен доступ ко всем устройствам и разрешены все команды компьютера.
В пользовательском режиме разрешены только некоторые команды.
Например, могут быть доступны следующие команды доступа к аппаратуре компьютера:
команды инициации прерываний процессора;
команды доступа к механизмам распределения и защиты памяти;
команды управления устройствами ввода-вывода.
Количество различных уровней привилегий, поддерживаемых аппаратно, на различных процессорах различно. Например, на процессорах фирмы Intel таких уровней четыре. При этом различные ОС организуют различное количество уровней привилегий на одних и тех же процессорах. Таким образом, нет прямого соответствия количества уровней привилегий, которые реализуются аппаратно, и которые организует ОС. В самых распространенных ОС (Windows NT, UNIX) два уровня привилегий. Это режим ядра и режим пользователя.
Если аппаратура поддерживает хотя бы два уровня привилегий, ОС программно может создать любое их количество.
Механизм выполнения системного вызова в прикладной программе всегда один и тот же: при выполнении системного вызова программа переходит в режим ядра, а при возврате в программу – обратное переключение процессора в режим пользователя. Т.е. при обработке системного вызова происходит два переключения процессора с одного режима на другой. Это замедляет выполнение программ, что является платой за повышенную надежность и защищенность ядра. Из этого делаем вывод:
Наличие уровней привилегий повышает устойчивость ОС. Но, увеличение числа уровней снижает производительность ОС вследствие потерь на переключение процессора между режимами пользователя ядра.
Аппаратная зависимость и переносимость ОС
Любая ОС для реализации некоторых своих функций использует аппаратную поддержку, т.е. особенности архитектуры конкретного компьютера. Однако к современным ОС предъявляются требования переносимости, т.е. работы на различных аппаратных платформах. Поэтому разработчики ОС стараются сделать так, чтобы машинно-зависимый слой ОС был как можно компактнее, а всё остальное работало бы на любой аппаратной платформе.
Типовые средства аппаратной поддержки ос
Сейчас мы будем говорить о средствах поддержки ОС со стороны аппаратуры.
Решение о том, какие функции ОС будут выполняться программно, а какие аппаратно, принимается разработчиками компьютеров и операционных систем.
Однако практически все современные аппаратные платформы имеют некоторый типичный набор средств аппаратной поддержки ОС.
Аппаратные средства поддержки ОС:
средства поддержки привилегированного режима (параметры слова состояния процессора, содержащие указания на текущий режим привилегий);
средства преобразования адресов (для преобразования виртуальных адресов программ в адреса физической памяти и обратно);
средства переключения процессов (предназначены для быстрого сохранения состояния приостанавливаемого процесса);
система прерываний;
системный таймер;
средства защиты областей памяти (проверка на аппаратном уровне возможности данной программы работать с определенной областью памяти и выполнять заданные операции).