- •11.Понятие многозадачности
- •12.Процессы и потоки. Понятия, связанные с процессами и потоками.
- •13.Алгоритмы планирования. Планирование в Windows.
- •14. Моменты перепланировки. Пример перепланировки в Windows.
- •15.Механизм прерываний в Windows, обработка прерываний, приоритеты прерываний
- •16.Синхронизация потоков. Способы синхронизации потоков.
- •17.Взаимоблокировки. Условия возникновения блокировок.
- •18.Взаимоблокировки. Варианты решения проблемы блокировок в ос
- •20.Адресация памяти. Виртуальное адресное пространство в Windows
- •19.Функции ос по управлению памятью. Типы систем управления памятью.
- •21.Реализация страничной виртуальной памяти
- •22. Управление памятью в Windows
- •Vad диапазон отображаемых адресов // файл подкачки// смещение в файле// режим доступа// каталог таблиц страниц//
- •23.Порядок доступа к памяти. Типы страничных прерываний
- •24.Рабочий набор процесса. Алгоритм замещения станиц в Windows
- •25.Управление физической памятью в Windows
17.Взаимоблокировки. Условия возникновения блокировок.
Взаимоблокировки (тупики):
Взаимоблокировки могут возникать при использовании процессами ресурсов.
П
ример
взаимоблокировки
Поток A
пытается получитьресурс S,
но он занят Переходит в состояние
ожидания
Поток В пытается получить ресурс Р, но он занят Переходит в состояние ожидания
Типы ресурсов:
Ресурс – аппаратное средство или данные, которые в один момент времени может использоваться только одним процессом
Невыгружаемый ресурс - ресурс, который невозможно отобрать у владельца не уничтожив данные (принтер, CD-RW, файл данных и т.п.)
Выгружаемый ресурс – ресурс, который можно забрать у владельца без последствий (память)
Пример отсутствия взаимоблокировки:
П
оток
A
загружается в память,получает ресурс
Р, и начинает рассчитыватьПрерывается
по таймеру
Поток В загружается в память,Но не может получить ресурс Р, так как он занятБлокируется
Поток В выгружается из памяти,А загружается в память, завершает расчет, печатаети освобождает принтер
Поток В, ожидающий этого события, выходит из блокировки, загружается в память и получает доступ к Р
Когда возникают взаимоблокировки:
Взаимоблокировки случаются с невыгружаемыми ресурсами
Порядок использования ресурса:
запрос ресурса
использование ресурса
освобождение ресурса
Если при запросе ресурс занят, то поток переводится в состояние ожидания.
Группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы.
Условия возникновения взаимоблокировки:
-Условие взаимного исключения: каждый ресурс или отдан одному процессу или свободен
-Условие удержания и ожидания: процессы, удерживающие полученные ресурсы, могут запрашивать новые
-Условие отсутствия принудительной выгрузки ресурса: у процесса нельзя принудительно отобрать ресурс, он должен освободить его сам
-Условие циклического ожидания: существует замкнутая последовательность двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности
Граф ресурсов:
18.Взаимоблокировки. Варианты решения проблемы блокировок в ос
Варианты решения проблемы:
Игнорирование проблемы
Обнаружение и устранение взаимоблокировок
Избежание взаимоблокировок
Предотвращение взаимоблокировок
Обнаружение и устранение взаимоблокировок:
обнаружение взаимоблокировок – с использованием графа ресурсов
методы выхода из взаимоблокировки:
- восстановление через откат
- уничтожение одного из процессов, участвующих в блокировке
Избежание взаимоблокировок:
Безопасное состояние – система не в тупике и существует порядок планирования при котором все процессы завершаются успешно, даже если все они потребуют максимальных ресурсов
Небезопасное состояние – при запросах ресурсов возможна тупиковая ситуация
Алгоритм банкира:
Каждый запрос на ресурс проверяется: приводит ли его удовлетворение к безопасному состоянию?
если ДА, то запрос удовлетворяется
если НЕТ, то запрос откладывается
Предотвращение взаимоблокировок:
Для предотвращения возможности взаимоблокировок необходимо нарушить хотя бы одно из условий их возникновения.
(Условия возникновения взаимоблокировки:
-Условие взаимного исключения: каждый ресурс или отдан одному процессу или свободен
-Условие удержания и ожидания: процессы, удерживающие полученные ресурсы, могут запрашивать новые
-Условие отсутствия принудительной выгрузки ресурса: у процесса нельзя принудительно отобрать ресурс, он должен освободить его сам
-Условие циклического ожидания: существует замкнутая последовательность двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности)
-Все ресурсы последовательно нумеруются
- При запросе нескольких ресурсов они запрашиваются в соответствии с их номером
Предотвращение взаимоблокировки:
З
апрос
ресурсов в порядке их нумерации. Процесс
А
получил ресурс P
и прервался
Процесс B получает ресурсы P и S и выполняется
Процесс A получает ресурс S,выполняется и освобождает ресурсы S и P
Процесс В пытается получить ресурс Р, но он занят Переходит в состояние ожидания
