- •1 Понятие операционной системы 4
- •2 Эволюция и режимы функционирования 10
- •3 Общая архитектура 15
- •4 Управление процессами 23
- •5 Управление памятью 44
- •6 Ввод-вывод и файловая система 65
- •1Понятие операционной системы
- •1.1Назначение и состав системы обработки информации. Понятие виртуальной машины
- •1.2Назначение и функции системных программ
- •1.3Задачи, решаемые операционной системой
- •1.4Операционная система как виртуальная машина
- •1.5Операционная система как система управления ресурсами
- •1.6Оценка деятельности операционной системы
- •1.7Классификация операционных систем
- •Контрольные вопросы
- •2Эволюция и режимы функционирования
- •2.1Непосредственный доступ
- •2.2Пакетный режим
- •2.2.1Однопрограммный (последовательный) режим выполнения пакета
- •2.2.2Многопрограммный режим. Классическое мультипрограммирование
- •2.3Системы информационного обслуживания
- •2.4Режим разделения времени
- •2.5Режим реального времени
- •Контрольные вопросы
- •3Общая архитектура
- •3.1Ядро и вспомогательные модули
- •3.2Ядро в привилегированном режиме
- •3.3Многослойная структура операционной системы
- •3.4Функциональные компоненты операционной системы
- •Контрольные вопросы
- •4Управление процессами
- •4.1Понятия «процесс» и «поток»
- •4.2Создание процессов и потоков
- •4.3Защита ресурсов
- •4.4Планирование и диспетчеризация потоков
- •4.5Состояния потока
- •4.6Мультипрограммирование на основе прерываний
- •4.6.1Назначение, типы и обработка прерываний
- •4.6.2Программные прерывания
- •4.6.3Обработка системных вызовов
- •4.7Синхронизация процессов и потоков
- •4.7.1Цели и средства синхронизации
- •4.7.2Необходимость синхронизации и гонки
- •4.7.3Критическая секция
- •4.7.4Блокирующие переменные
- •4.7.5Семафоры
- •4.7.6Тупики
- •Контрольные вопросы
- •5Управление памятью
- •5.1Функции ос по управлению памятью
- •5.2Типы адресов
- •5.3Свопинг и виртуальная память
- •5.4Страничное распределение
- •5.5Сегментное распределение
- •5.6Сегментно-страничное распределение
- •5.7Разделяемые сегменты памяти
- •Контрольные вопросы
- •6Ввод-вывод и файловая система
- •6.1Управление файлами и внешними устройствами
- •6.2Задачи ос по управлению файлами и устройствами
- •6.3Многослойная модель подсистемы ввода - вывода. Общая схема
- •6.4Логическая организация файловой системы
- •6.4.1Цели и задачи файловой системы
- •6.4.2Типы файлов
- •6.4.3Иерархическая структура файловой системы
- •6.4.4Имена файлов
- •6.4.5Атрибуты файлов
- •6.4.6Логическая организация файла
- •6.5Физическая организация файловой системы
- •6.5.1Диски, разделы, секторы, кластеры
- •6.5.2Физическая организация и адресация файла
- •6.5.3Физическая организация fат
- •6.6Файловые операции
- •6.6.1Два способа организации файловых операций
- •6.6.2Открытие файла
- •Контрольные вопросы
- •Приложение 1. Кэширование данных Назначение кэш-памяти
- •Иерархия запоминающих устройств
- •Принцип действия кэш-памяти
- •Приложение 2. Физическая организация ntfs
- •Структура тома ntfs
- •Структура файлов ntfs
- •Каталоги ntfs
- •Литература
3.2Ядро в привилегированном режиме
Для надежного управления ходом выполнения приложений ОС должна иметь по отношению к приложениям определенные привилегии. Кроме того, ОС должна обладать исключительными полномочиями для того, чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме. Ни одно приложение не должно иметь возможности без ведома ОС получать дополнительную область памяти, занимать процессор дольше разрешенного операционной системой периода времени, непосредственно управлять совместно используемыми внешними устройствами.
Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим и привилегированный режим, который также называют режимом ядра, или режимом супервизора. Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.
Ясно, что поскольку ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме (рис.7).
Иногда это свойство — работа в привилегированном режиме — служит основным определением понятия ядра.
Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных с переключением процессора с задачи на задачу, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Выполнение некоторых инструкций в пользовательском режиме запрещается безусловно (очевидно, что к таким инструкциям относится инструкция перехода в привилегированный режим), тогда как другие запрещается выполнять только при определенных условиях. Например, инструкции ввода-вывода могут быть запрещены приложениям при доступе к контроллеру жесткого диска, который хранит данные, общие для ОС и всех приложений, но разрешены при доступе к последовательному порту, который выделен в монопольное владение для определенного приложения. Важно, что условия разрешения выполнения критичных инструкций
Ядро ОС
Рис.7. Архитектура операционной системы с ядром в привилегированном режиме
находятся под полным контролем ОС и этот контроль обеспечивается за счет набора инструкций, безусловно запрещенных для пользовательского режима.
Аналогичным образом обеспечиваются привилегии ОС при доступе к памяти. Например, выполнение инструкции доступа к памяти для приложения разрешается, если инструкция обращается к области памяти, отведенной данному приложению, и запрещается при обращении к областям памяти, занимаемым ОС или другими приложениями. Полный контроль ОС над доступом к памяти достигается за счет того, что инструкции конфигурирования механизмов защиты памяти разрешается выполнять только в привилегированном режиме.
Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на остальные приложения и операционную систему.
Повышение устойчивости операционной системы, обеспечиваемое переходом ядра в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению — переключение из привилегированного режима в пользовательский (рис.8)
Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала, по существу, классической.