- •1. Эволюция ос
- •2. Классификация ос
- •2.1. Особенности алгоритмов управления ресурсами
- •2.2. Особенности методов построения
- •2.3.Особенности аппаратных платформ
- •2.4. Особенности областей использования
- •Лекция 3. Архитектура операционной системы
- •3. 1. Ядро и вспомогательные модули ос
- •3. 2. Ядро и привилегированный режим
- •3. 3. Многослойная структура ос
- •3. 4. Аппаратная зависимость и переносимость ос
- •3. 5. Переносимость операционной системы
- •3. 6. Микроядерная архитектура
- •3 .6. 1. Концепция
- •3. 6. 2. Преимущества и недостатки микроядерной архитектуры
- •3. 7. Совместимость и множественные прикладные среды
- •3. 7. 1. Двоичная совместимость и совместимость исходных текстов
- •3. 7. 2. Трансляция библиотек
- •3. 7. 3. Способы реализации прикладных программных сред
- •Контрольные вопросы
- •Лекция 4. Основные концепции теории ос
- •4.1. Понятие процесса
- •4.2. Понятие ресурса
- •4.3. Концепция виртуализации
- •Одноочередные дисциплины обслуживания.
- •Многоочередная дисциплина обслуживания. Схема данной дисциплины приведена на рис. 5.
- •Дисциплина обслуживания при наличии приоритетов. Такая дисциплина строится на основе рассмотренной выше многоочередной дисциплины. На рис.6. Приводится ее условная схема.
- •4.5. Система прерываний
- •Лекция 5. Процессы и потоки (нити). Взаимодействие процессов.
- •5.1 Процессы
- •5.1.1 Понятие процесса
- •5.1.2 Модель процесса
- •5.1.3 Создание процесса
- •5.1.4 Завершение процесса
- •5.1.5 Иерархия процессов
- •5.1.6 Состояние процессов
- •5.2 Потоки (нити, облегченный процесс)
- •5.2.1 Понятие потока
- •5.2.2 Модель потока
- •5.2.3 Преимущества использования потоков
- •5.2.4 Реализация потоков в пространстве пользователя, ядра и смешанное
- •5.2.5 Особенности реализации Windows
- •5.3. Взаимодействие между процессами
- •5.3.1. Передача информации от одного процесса другому
- •5.3.2 Состояние состязания
- •5.3.3 Критические области
- •5.3.4 Взаимное исключение с активным ожиданием
- •5.3.5 Примитивы взаимодействия процессов
- •5.3.6 Семафоры
- •6.1 Основные понятия планирования процессов
- •6.3.2 Приоритетное планирование
- •6.3.3 Методы разделения процессов на группы
- •6.4 Планирование в системах реального времени
- •6.4.1 Планирование однородных процессов
- •6.4.2 Общее планирование реального времени
- •7.1 Взаимоблокировка процессов
- •7.2 Моделирование взаимоблокировок
- •7.3 Методы борьбы с взаимоблокировками
- •7.3.1 Пренебрежением проблемой в целом (страусовый алгоритм)
- •7.3.2 Обнаружение и устранение взаимоблокировок
- •7.3.3 Динамическое избежание взаимоблокировок
- •7.3.4 Предотвращение четырех условий, необходимых для взаимоблокировок
- •9.1 Принципы аппаратуры ввода-вывода
- •9.1.1 Устройства ввода-вывода
- •9.1.2 Контроллеры устройств
- •9.1.3 Отображаемый на адресное пространство памяти ввод-вывод
- •9.1.4 Прямой доступ к памяти (dma - Direct Memory Access)
- •9.1.5 Прерывания
- •9.2 Принципы программного обеспечения ввода-вывода
- •9.2.1 Задачи программного обеспечения ввода-вывода
- •9.2.2 Программный ввод-вывод
- •9.2.3 Управляемый прерываниями ввод-вывод
- •9.2.4 Ввод-вывод с использованием dma
- •9.3 Программные уровни и функции ввода-вывода
- •9.3.1 Обработчики прерываний
- •9.3.2 Драйвера устройств
- •9.3.3 Независимое от устройств программное обеспечение ввода-вывода
- •9.4. Программное обеспечение ввода-вывода пространства пользователя
- •9.5. Принципы, заложенные в подсистему управления вводом-выводом в ос unix
- •4.1. Понятие об организации и управлении физической памятью в операционных системах
- •4.2. Методы связного распределения основной памяти
- •4.2.1. Связное распределение памяти для одного пользователя
- •4.2.2. Связное распределение памяти при мультипрограммной обработке
- •4.2.3. Стратегии размещения информации в памяти
- •4.3. Организация виртуальной памяти
- •4.3.1. Основные концепции виртуальной памяти
- •4.3.2. Страничная организация виртуальной памяти
- •4.3.3. Сегментная организация виртуальной памяти
- •4.3.4. Странично-сегментная организация виртуальной памяти
- •4.4. Управление виртуальной памятью
- •4.4.1. Стратегии управления виртуальной памятью
- •4.4.2. Стратегии вталкивания (подкачки)
- •4.4.3. Стратегии размещения
- •4.4.4. Стратегии выталкивания
- •10.1.3 Типы файлов
- •Лекции 10-11. Системы управления данными (файловые системы)
- •10.1 Файлы
- •10.1.1 Именование файлов
- •10.1.2 Структура файла
- •Три типа структур файла.
- •Примеры исполняемого и не исполняемого файла
- •10.1.4 Доступ к файлам
- •10.1.5 Атрибуты файла
- •10.1.6 Операции с файлами
- •10.1.7 Файлы, отображаемые на адресное пространство памяти
- •Пример копирования файла через отображение в памяти.
- •10.2 Каталоги
- •10.2.1 Одноуровневые каталоговые системы
- •10.2.2 Двухуровневые каталоговые системы
- •Двухуровневая каталоговая система
- •10.2.3 Иерархические каталоговые системы
- •Иерархическая каталоговая система
- •10.2.4 Имя пути
- •10.2.5 Операции с каталогами
- •10.3 Структура файловой системы
- •Возможная структура файловой системы
- •10.4 Реализация файлов
- •10.4.1 Непрерывные файлы
- •5 Непрерывных файлов на диске и состояние после удаления двух файлов
- •10.4.2 Связные списки
- •Размещение файла в виде связного списка блоков диска
- •10.4.3 Связные списки при помощи таблиц в памяти
- •Примеры I-узла
- •10.5 Реализация каталогов
- •Варианты реализации каталогов
- •10.5.1 Реализация длинных имен файлов
- •Реализация длинных имен файлов
- •10.5.2 Ускорение поиска файлов
- •1 Использование хэш-таблицы для ускорения поиска файла.
- •2 Использование кэширования результатов поиска файлов для ускорения поиска файла.
- •10.6 Совместно используемые файлы
- •10.6.1 Жесткие ссылки
- •Иллюстрация проблемы, которая может возникнуть
- •10.6.2 Символьные ссылки
- •10.7 Организация дискового пространства
- •10.7.1 Размер блока
- •Скорости чтения/записи и эффективность использования диска, в системе с файла одинакового размера 2 Кбайта.
- •10.7.2 Учет свободных блоков
- •Основные два способа учета свободных блоков
- •10.7.3 Дисковые квоты
- •10.8 Надежность файловой системы
- •10.8.1 Резервное копирование
- •10.8.2 Непротиворечивость файловой системы
- •10.11 Производительность файловой системы
- •10.11.1 Кэширование
- •10.11.2 Опережающее чтение блока
- •10.11.3 Снижение времени перемещения блока головок
- •11.1 Файловой системы cd-дисков
- •11.1.1 Файловая система iso 9660
- •Каталоговая запись стандарта iso 9660.
- •11.1.3 Joliet расширения для Windows
- •11.1.4 Romeo расширения для Windows
- •11.1.5 Hfs расширения для Macintosh
- •11.1.6 Файловая система udf (Universal Disk Format)
- •11.2 Файловая система cp/m
- •11.2 Файловая система ms-dos (fat-12,16,32)
- •Каталоговая запись ms-dos, обратите внимание на пустые 10 байт, они будут задействованы в Windows 98
- •11.2.4 Расширение Windows 98 для fat-32
- •Формат каталогов записи с фрагментом длинного имени файла в Windows 98
- •11.3 Файловая система ntfs
- •Главная файловая таблица mft, каждая запись ссылается на файл или каталог.
- •Три записи mft для сильно фрагментированного файла. В первой записи указывается индексы на дополнительные записи.
- •Запись mft для небольшого каталога
- •11.3.1 Поиск файла по имени
- •11.3.2 Сжатие файлов
- •Пример 48-блочного файла, сжатого до 32 блоков
- •Запись mft для предыдущего файла.
- •11.3.3 Шифрование файлов
- •Шифрование файлов в ntfs
- •11.4 Файловая система unix v7
- •Расположение файловой системы unix
- •Каталоговая запись unix v7 в 16 байт Структура I-узела
- •11.4.1 Поиск файла
- •Этапы поиска файла по абсолютному пути /usr/sbin/mc
- •11.4.2 Блокировка данных файла
- •Блокировки данных файла без монополизации
- •11.4.3 Создание и работа с файлом
- •Связь между таблицей дескрипторов файлов, таблицей открытых файлов и таблицей I-узлов.
- •11.5 Файловая система bsd
- •Каталог bsd с тремя каталоговыми записями для трех файлов и тот же каталог после удаления файла zip, увеличивается длина первой записи.
- •11.6 Файловые системы linux
- •11.6.1 Файловая система ext2
- •Размещение файловой системы ext2 на диске
- •11.6.2 Файловая система ext3
- •11.6.3 Файловая система xfs
- •11.6.4 Файловая система rfs
- •11.6.4 Файловая система jfs
- •11.7 Сравнительная таблица некоторых современных файловых систем
- •Примеры монтирования удаленных файловых систем
- •Структура уровней файловой системы nfs
4.5. Система прерываний
Ситуация, которая возникает в результате воздействия какого-то независимого события, приводящего к временному прекращению выполнения последовательности команд одной программы с целью выполнения последовательности команд другой программы, называется прерыванием. Управление процессами в многозадачном режиме работы ЭВМ основано на использовании механизма прерываний. Прерывания необходимы, например, при обслуживании очередей запросов на распределение ресурсов, при проведении синхронизации между параллельными процессами и т.д. Программа может быть прервана из-за отсутствия в оперативной памяти данных, подлежащих обработке, или может быть прервана программой с более высоким приоритетом. Причиной прерывания может быть неисправность в работе аппаратуры, обнаруженная системой диагностики.
В зависимости от системной причины можно выделить прерывания первого и второго рода.
В случае прерывания первого рода процесс сам является «виновником» прерывания, т.е. процесс, находящийся в активном состоянии, вызывает прерывание самого себя. Это происходит в следующих ситуациях:
1) возникает потребность получить некоторый ресурс, отказаться от него либо выполнить над ресурсом какие-либо действия;
2) процесс выполняет какие-либо действия в отношении другого процесса, например, порождает или уничтожает его.
При таких прерываниях процесс в явной форме выражает требование к ОС на прерывание самого себя. Это реализуется в форме команд, представленных в пользовательской программе. При их выполнении происходит переключение ЦП с обслуживания программы на работу ОС, которая подготавливает и обеспечивает выполнение соответствующего прерывания. К прерываниям первого рода относятся также внутренние прерывания, связанные с работой ЦП (арифметическое переполнение, исчезновение порядка в операциях с плавающей точкой, обращение к защищенной области оперативной памяти и т.д.). В этом случае «виновником» прерывания также является сам процесс, хотя явный запрос на прерывание отсутствует.
Системной причиной прерывания второго рода является необходимость синхронизации параллельных процессов. Процессы, подчиненные ОС, в случае их окончания или в других ситуациях вырабатывают сигнал прерывания, что приводит к прекращению обслуживания ЦП других активных процессов «без их ведома».
При обработке прерывания нужно выполнить следующую последовательность действий:
1) восприятие запроса на прерывание;
2) запоминание состояния прерванного процесса (значение счетчика команд, содержимое регистров общего назначения, режим работы ЦП и т.д.);
3) передача управления программе обработки прерываний, для чего в счетчик команд заносится адрес, уникальный для каждого типа прерывания;
4) обработка прерывания;
5) восстановление нормальной работы.
В большинстве ЭВМ этапы 1-3 реализуется аппаратно, а этапы 4-5 - операционной системой.
Рассмотрим изменения состояний центрального процессора, связанные с возникновением и обработкой прерываний (рис.7). ЦП может функционировать в одном из четырех независимых состояний: P1 – выполнение прикладных программ, P2 – обработка прерываний, P3 – анализ прерываний, P4 – обработка прерываний от схем контроля машины. В состоянии P1 выполняются программы пользователя, выполнение любого прерывания допустимо. В состоянии P2 выполняется программа соответствующего обработчика прерываний, так же как и в предыдущем состоянии допустимо любое прерывание. В состоянии P3 система определяет тип прерывания и соответствующую программу его обработки. Переключение в состояние P3 из состояний P1 и P2 происходит всегда автоматически при возникновении любого прерывания, кроме прерываний от схем контроля машины. Переключение ЦП из состояния P3 в состояние P1 или P2 происходит по командам управления. В состоянии P3 все прерывания, кроме прерываний от схем контроля, запрещены. Процессор автоматически переключается в состояние P4 из любого состояния (P1, P2, P3) при появлении прерывания от схем контроля машины. Из состояния P4 нельзя вернуться ни в какое другое состояние без принятия мер по устранению сбойной ситуации.
Рис. 7. Характер переходов процессора между допустимыми состояниями, обусловленных возникновением и обработкой прерываний
В зависимости от характера прерываний можно выделить пять уровней:
прерывания от систем контроля и диагностики, связанные с неисправностями в аппаратуре;
прерывание при обращении к ОС с целью получения каких-либо услуг;
программные или внутренние прерывания, связанные с ошибками в ЦП при выполнении программы;
внешние прерывания, обусловленные прерыванием программы оператором, по сигналу из линии связи и т.д.;
прерывания от устройств ввода-вывода, инициированные внешними процессами.
Для каждого уровня прерываний в ОС имеются системные программы обработки прерываний. Нередко поступает сразу несколько запросов на прерывания, при этом они выстраиваются в очередь в соответствии со своими приоритетами. Порядок поступления запросов строго определен:
1) прерывания от схем контроля;
2) программные прерывания или прерывания при обращении к ОС (не могут появляться одновременно);
3) внешние прерывания;
4) прерывания от устройств ввода-вывода.
Обработка прерываний происходит в порядке, обратном его поступлению и соответствует их важности: ввод-вывод, внешние, программные и обращения к ОС. Прерывания от схем контроля идут вне очереди и блокируют обработку всех других прерываний.
Прерывания производятся всегда после того, как выполнение текущей команды закончилось, а выполнение следующей не началось. При машинных сбоях этот порядок может быть нарушен.
Прерывания поступают на обработку, если процессор не замаскирован по отношению к данному типу прерываний. Маскирование – это запрет на прерывания. Если прерывания замаскировано и поступил запрос на него, то он либо ждет, пока сможет быть воспринят, либо теряется. Замаскированными могут быть прерывания от устройств ввода-вывода, внешние прерывания, часть программных прерываний и прерывания от схем контроля.
Замаскированные прерывания от устройств ввода-вывода и внешних прерываний хранятся до тех пор, пока ЦП не сможет их воспринять, а замаскированные программные прерывания от схем контроля теряются.
Информация, необходимая для обработки прерываний, запоминается в специальной области памяти в виде регистра и слова-состояния программы (ССП). Регистр прерываний представляет собой слово, каждый бит которого соответствует единственной причине прерывания.
Слово состояния программы хранит информацию о состоянии процессора для последующего анализа, восстановления нормального продолжения прерванной программы.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Перечислите принципы построения ОС и дайте их краткую характеристику.
2. Что такое процесс и чем он отличается от программы? Каковы допустимые состояния процесса?
3. Как осуществляется классификация процессов? Приведите примеры.
4. Поясните понятие ресурса. Дайте классификацию ресурсов и приведите примеры.
5. В чем состоит концепция виртуализации? Приведите примеры виртуальных ресурсов.
6. Какие основные бесприоритетные дисциплины используются при обслуживании очередей процессов?
7. Как устроена дисциплина приоритетного обслуживания очереди процессов?
8. Что такое прерывания, и каковы их причины? Какова последовательность действий по обработке прерываний?
9. Приведите классификацию прерываний по уровням. Каким образом порядок обслуживания прерываний зависит от их уровня?
