- •1. Управление процессами
- •1.1 Операции над процессами
- •1.2 Обработка прерываний
- •2. Иерархическая структура ос.
- •2.1 Понятие параллельных и асинхронных процессов
- •2.2 Алгоритм Деккера.
- •3.1 Четыре необходимых условия возникновения тупика
- •2.3 Аппаратная реализация взаимоисключения
- •2.4 Реализация взаимоисключения с помощью семафоров
- •3. Тупиковые ситуации
- •3.2 Основные направления исследований по проблеме тупиков
- •3.3 Предотвращение тупиков, 3 стратегических принципа.
- •3.5 Обнаружение тупиков
- •3.6 Восстановление после тупиков
- •4. Управление памятью
- •4.1 Организация памяти
- •4.2 Стратегии управления памятью
- •4.3 Связное и несвязное распределение памяти
- •4.4 Мультипрограммирование с фиксированными разделами
- •4.5 Мультипрограммирование с переменными разделами
- •4.6 Стратегии размещения информации в памяти
- •5. Организация виртуальной памяти
- •5.1 Страничная организация памяти
- •5.2 Сегментная организация памяти
- •5.3 Странично-сегментная организация памяти
- •5.4 Стратегии управления виртуальной памятью
- •5.5 Принцип локальности
- •5.6 Стратегии вталкивания страниц
- •6. Управление процессорами
- •6.1 Уровни планирования загрузки процессоров
- •6.2 Цели планирования
- •6.3 Принципы планирования
- •7 Управление внешней памятью
- •8. Производительность
- •8.1 Методы оценки производительности
- •9. Операционная система ms-dos – структура и механизмы
- •9.1 Этапы загрузки ms-dos
- •9.2 Параметры загрузки ms-dos
- •9.3 Структура диска в ms-dos
- •9.4 Использование памяти системой ms-dos
- •9.5 Средства использования памяти
- •10. Операционная система windows 9.X
- •10.1 Сравнение dos и Windows 9.X
- •10.2 Windows 9.X Функции операционной системы
- •10.3 Виртуальная адресация памяти Windows 9.X
- •10.4 Виртуальные машины ос Windows 9.X
- •10.5 Процессы и сообщения в ос Windows 9.X
- •10.6 Планирование приоритетов
- •10.7 Файловая система Windows 9.X
- •11. Операционная система unix
- •11.1 Структура ос unix
- •11.2 Файловая система ос unix
- •11.3 Типы файлов.
- •11.4 Структура файловой системы unix.
- •11.4.1 Базовая файловая система. System V (s5fs).
- •11.4.2 Файловая система ffs.
- •11.5 Архитектура виртуальной файловой системы.
- •11.6 Подсистема управления процессами
- •11.6.1 Типы процессов
- •11.6.2 Атрибуты процесса.
- •11.6.3 Состояния процесса.
- •11.7 Принципы управления памятью
- •11.8 Планирование выполнения процессов
- •11.9 Взаимодействия между процессами
- •12. Загрузка ос windows 2000
- •12.3 Загрузка и инициализация драйверов устройств
- •12.6.1 Раздел [boot loader]
- •12.6.2 Раздел [operating systems]
- •13 Файловая система windows nt (ntfs)
- •13 Новые возможности ntfs 5.0
- •14 Структура ntfs
- •14.1 Главная файловая таблица
- •14.2 Атрибуты файла ntfs
- •14.3 Системные файлы ntfs
- •14.4 Сравнение ntfs с hpfs и fat
- •15 Конфигурирование системы
1.2 Обработка прерываний
Прерывание – событие, при котором процесс прерывается и управление передается системе обработки прерываний.
Если произошло прерывание, то
Управление передается операционной системе;
ОС запоминает состояние прерванного процесса;
ОС анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания
Типы прерываний:
Прерывания по вызову пользователя. SVC прерывания. Механизм SVC помогает защитить ОС от пользователей. Благодаря этому ОС всегда знает обо всех попытках пользователя пересечь ее границы и может отказаться от выполнения определенных запросов.
Прерывания ввода-вывода. Эти прерывания инициируются аппаратурой ввода/вывода.
Внешние прерывания. (истечение кванта времени, заданного на таймере прерываний, сигнал от другого процессора в мультипроцессорной системе).
Прерывания по рестарту. При нажатии кнопки рестарта.
Прерывания по ошибке программы (деление на ноль и т.д.)
Прерывания по ошибке машины. Эти прерывания вызываются аппаратными ошибками.
2. Иерархическая структура ос.
Нижний уровень - аппаратура
ядро ОС
системные программы
уровень пользовательских программ
Ядро ОС – это та часть ОС, под управлением которой выполняются все операции, связанные с процессами. Одна из самых важных функций, реализованных в ядре – обработка прерываний, кроме того основные функции ядра: создание и удаление процессов, их переключение, синхронизация, поддержка операций ввода/вывода, работы файловой системы, поддержка механизма возврата при обращении к процедурам.
2.1 Понятие параллельных и асинхронных процессов
Процессы называются параллельными, если они существуют одновременно. Параллельные процессы могут работать совершенно независимо друг от друга или они могут быть асинхронными – т.е. им необходимо периодически синхронизироваться.
При выполнении параллельных процессов возможна ситуация, когда несколько процессов обращаются к разделяемым (общим) ресурсам. Когда процесс производит обращение к разделяемым данным, то говорят, что он находится в своем критическом участке. Тогда возникает ситуация, называемая взаимоисключением. Она предполагает следующие положения:
Процесс, который обращается к разделяемым данным находится в своем критическом участке.
Для всех остальных процессов не существует возможности вхождения в критические участки.
Процесс должен проходить критический участок как можно более быстро. ОС должна обеспечить исключение блокировки процесса, если он находится в своём критическом участке.
Критические участки должны быть запрограммированы и отлажены наиболее тщательно, чтобы не было зацикливания в критическом участке.
Для реализации механизма взаимоисключения существуют как программные, так и аппаратные средства.
К программным средствам относится алгоритм Деккера.
2.2 Алгоритм Деккера.
Для того, чтобы легче понять алгоритм Деккера, рассмотрим сначала два приближения к алгоритму, каждое из которых имеет свои недостатки.
Первая версия.
Program N1;
Procedure процесс1;
Begin
While истина do
Begin
While номерпроцесса=2 do;
Критическийучастокодин;
Номерпроцесса:=2;
Прочиеоператорыодин
End;
End;
Procedure процесс2;
Begin
While истина do
Begin
While номерпроцесса=1 do;
Критическийучастокодва;
Номерпроцесса:=1;
Прочиеоператорыдва
End;
End;
Begin
Номерпроцесса:=1;
Parbegin
Процесс1;
Процесс2;
Parend
End.
Parbegin и parend позволяют организовать параллельную работу процессов.
Недостатки первой версии.
Процессдва должен ждать, т.к. процессодин должен выполняться первым
Процессы должны входить и выходить из своих критических участков строго поочередно.
Вторая версия
Program N2;
Procedure процесс1;
Begin
While истина do
Begin
While П2внутри do;
П1внутри:=истина;
Критическийучастокодин;
П1внутри:=ложь;
Прочиеоператорыодин
End;
End;
Procedure процесс2;
Begin
While истина do
Begin
While П1внутри do;
П2внутри:=истина;
Критическийучастокодва;
П2внутри:=ложь;
Прочиеоператорыдва
End;
End;
Begin
П1внутри:=ложь;
П2внутри:=ложь;
Parbegin
Процесс1;
Процесс2;
Parend
End.
Недостаток второй версии.
Т.к. процесс1 и процесс2 – параллельные процессы, то они могут одновременно войти в критические участки.
Алгоритм Деккера.
Procedure процесс1;
Begin
While истина do
Begin
П1хочетвойти:=истина;
While П2хочетвойти do
If избранныйпроцесс=2 then Begin
П1хочетвойти:=ложь;
While избранныйпроцесс=2 do;
П1хочетвойти:=истина
End;
Критическийучастокодин;
Избранныйпроцесс:=2;
П1хочетвойти:=ложь;
Прочиеоператорыодин
End;
End;
Procedure процесс2;
Begin
While истина do
Begin
П2хочетвойти:=истина;
While П1хочетвойти do
If избранныйпроцесс=1 then Begin
П2хочетвойти:=ложь;
While избранныйпроцесс=1 do;
П2хочетвойти:=истина
End;
Критическийучастокдва;
Избранныйпроцесс:=1;
П2хочетвойти:=ложь;
Прочиеоператорыдва
End;
End;
Begin
П1хочетвойти:=ложь;
П2хочетвойти:=ложь;
Ихбранныйпроцесс:=1;
Parbegin
Процесс1;
Процесс2;
Parend
End.
