
- •Основные понятия и концепции ос
- •Классификация ос
- •Управление процессами
- •Операции над процессом
- •13092012 Лекция 2
- •Алгоритмы планирования
- •Средства взаимодействия и синхронизации процессов
- •Синхронизация процессов
- •20092012 Лекция 3 Взаимоблокировки
- •Ликвидация взаимоблокировок
- •Неделимые транзакции
- •04102012 Лекция 4 Архитектура и управление процессами в ос семейства Windows
- •11102012 Лекция 5 Синхронизация потоков
- •Архитектура и процессы unix
- •Управление процессами
- •Создание новых процессов
- •18102012 Лекция 6 Межпроцессное взаимодействие
- •Файловая система
- •Структуризация файлов
- •25102012 Лекция 7 Адресация доступа к файлам
- •Операции над файлами
- •Обобщенная модель файловой системы
- •Отображаемые в память файлы
- •Современная архитектура файловых систем
- •Файловые системы Windows
- •01112012 Лекция 8 Файловая система fat
- •Файловая система ntfs
- •081112 Лекция 9
- •Файловые системы unix Традиционная фс s5
- •Виртуальная фс vfs (Virtual File System)
- •Монтирование файловых систем vfs
- •15112012 Лекция 10 Управление вводом/выводом
- •Драйверы устройств
- •Система ввода/вывода unix
- •29112012 Лекция 11 Подсистема ввода/вывода Windows
- •06122012 Лекция 12 Основные процедуры драйверов устройств
- •Процедуры обслуживания прерывания isr (interrupt Service Routine)
- •Дерево устройств
- •Диспетчер электропитания
- •13122012 Лекция 13 Основные требования ос
- •Множественные прикладные среды
- •Способы построения множественных прикладных сред
- •Реализация множества прикладных средств в Windows системах
20092012 Лекция 3 Взаимоблокировки
Для возникновения взаимоблокировки (тупика) в системе должно выполняться 4 условия:
Условие взаимного исключения – каждый ресурс в каждый момент времени отдан ровно одному процессу или доступен.
Условие удерживания и ожидания – процесс, в данный момент удерживающий полученные ресурсы, может запрашивать новые.
Условие отсутствия принудительной выгрузки ресурсов
Условие циклического ожидания – должна существовать последовательность из двух или более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому другим членом последовательности.
Взаимоблокировки моделируются при помощи направленных графов
Пример 1: Типичная простейшая ситуация
Пример 2:
A, B, C, D, E, F, G – процесс
R, S, T, V, W, N – ресурс
RAS -?
Анализ на наличие циклов
При наличие ресурсов разного типа используется матричный метод обнаружения взаимоблокировок.
P = {P1, P2, …, Pn} n – число процессов
E = {E1, E2, …, Em} m – число классов ресурсов
А – вектор доступных ресурсов = {A1, A2, …, Am}
Aj≤ Ej j=(1,m)
С – матрица текущего распределения ресурсов = {cij i=(1,n) j=(1,m)}
cij - количество ресурсов j-ого класса, которое занимает процесс Pi.
R – матрица требуемых или запрашиваемых ресурсов = {rij i=(1,n) j=(1,m)}
rij - количество ресурсов j-ого класса, которое запрашивает процесс Pi.
Справедливо, m соотношений по ресурсам:
В исходном состоянии все процессы немаркированы (неотмечаны).
Ищется процесс Pi, для которого i-ая строка R меньше вектора А. 2…
Если такой процесс найден, он маркируется и i-ая строка C прибавляется к вектору А. 3…
Переход на шаг 1
Если новых процессов не найдено, то наличие оставшихся немаркированных процессов указывает на наличие взаимоблокировки.
Взаимоблокировки могут проверяться:
Когда запрашивается очередной ресурс (максимально рано обнаружение, но накладки по процессору)
Через определенные промежутки времени или при низкой загрузке процессора
Ликвидация взаимоблокировок
Принудительная выброска ресурсов
Восстановление через откат (процессы периодически создают контрольные точки, позволяющие перезапустить их)
Уничтожение одного или более процессов
Неделимые транзакции
Транзакция – технология синхронизации высокого уровня. Один процесс объявляет, что хочет начать транзакцию с одним или более процессов. В процессе работы могут использоваться объекты или ресурсы, изменения в которых видны только процессам, участвующим в транзакции. Инициатор транзакции объявляет о её фиксации. Если все участники готовы, то результат транзакции фиксируется и становится доступен внешним процессам.
Свойства транзакции:
Упорядочиваемость - если две или более транзакции выполняются одновременно, то конечный результат выглядит, как если бы они выполнялись по очереди.
Неделимость – транзакция находится в процессе выполнения, другие процессы не видят её промежуточных результатов.
Постоянство – после фиксации транзакции никакой сбой не отменяет её результатов.
Транзакции могут быть реализованы:
Процессы-участники работают в индивидуальном рабочем пространстве, в котором происходят все изменения данных.
Модифицируются реальные объекты и ведется журнал, в котором указывается транзакция, изменяемый файловый блок, старые и новые значения.