Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс_лекций_ОС_П+И_2012.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
413.07 Кб
Скачать

Запрос – ожидание – запрос – ожидание - …..

То есть процесс находиться в состоянии ожидания и не выполняет никакой работы

Если в системе один процесс, то конфликтов при распределении ресурсов не возникает. Если в системе несколько процессов, то может возникнуть конфликт – тупиковая ситуация.

Рассмотрим возможные случаи распределения ресурсов между процессами.

Пусть в системе выполняется два процесса – процесс А и процесс В, каждый процесс запрашивает ресурс 1 и 2.

Вариант 1

Процесс А

Ресурс1

Ресурс 2

Процесс В

Ресурс 2

Ресурс 1

Независимое использование ресурсов двумя процессами, конфликтов не возникает

Вариант 2

Процесс А

Ресурс1

Ресурс 2

Процесс В

Ресурс 1

Ресурс 2

Ожидание ресурса 1 пр. В

Ожидание ресурса 2 пр. В

К ресурсам 1 и 2 образовалась очередь, конфликтов нет

Вариант 3

Процесс А

Ресурс1

Ожидание ресурса 2

Процесс В

Ресурс 2

Ожидание ресурса 1

Ресурс 1 занят процессом А и требуется процессу В, ресурс 2 занят процессом В и требуется ресурсу А. Возникла тупиковая ситуация (взаимоблокировка) – тупик

Группа процессов находиться в тупике, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы.

Условия тупика

  1. Условие взаимного исключения – каждый ресурс в данный момент времени или отдан одному процессу или свободен;

  2. Условие удержания и ожидания – процессы, имеющие в своем распоряжении ресурсы, могут запрашивать еще ресурсы;

  3. Условие отсутствия принудительной выгрузки ресурса – процесс, который владеет ресурсом должен освободить его сам, принудительно отобрать ресурс нельзя;

  4. Условие циклического ожидания – должна существовать круговая последовательность из двух или более процессов, каждый из которых ждет освобождения ресурса, принадлежащего другому процессу из этой последовательности.

R1 … R6 - ресурсы

процесс 1

R1 R4

процесс 2 процесс 3

R5

R2 R3 R6

Процесс 4

п роцесс владеет ресурсом ,

запрашивает ресурс, или ждет освобождения

Данная проблема известна с 60 – ых годов, были разработаны различные способы решения этой проблемы. Для обнаружения тупиков разработаны алгоритмы, которые основаны на методах математического моделирования и теории графов.

Рассмотрим математическую модель распределения ресурсов компьютера.

Рассмотрим систему, в которой есть n – ресурсов, причем каждый ресурс имеет номер и m – процессов. В любой момент времени в системе согласно модели определены:

Вектор существующих ресурсов

A = { a1; a2 ; ….. ai ….. an }, где

ai - количество экземпляров одного ресурса

Вектор доступных ресурсов

B = { 0, 1, 0, ………0, 1 }, где 0 – ресурс свободен, 1 – ресурс занят

Матрица текущего распределения ресурсов ( n, m ) - n – количество ресурсов

m - количество процессов

С1,1 ………. С1,m

C = Сi,j где Сi,j =1, если i – ресурс

выделен j - процессу

Сn,1 ……… Сn,m

Матрица запросов процессов на ресурсы

R1,1 ………. R1,m

R = Ri,j где Ri,j =1, если i – ресурс

запрашивает j - процесс

Rn,1 ……… Rn,m

На основе этих данных можно найти вариант распределения ресурсов без возникновения тупиков – то есть такую последовательность предоставления ресурсов, когда все процессы получат необходимые ресурсы - так называемое, безопасное состояние системы.

Но данные алгоритмы сложны математически и их программная реализация требует ресурсов и достаточно много, что также может привести к тупику, на практике такие методы не применяются.

Были разработаны методы, которые позволяют избежать тупиков, при распределения ресурсов и не использовать большое количество ресурсов при практической реализации метода.

  1. Рассмотрим условие взаимного исключения. Если в системе нет ресурса, который будет отдан в единоличное пользование одному процессу, то тупика не возникнет. Для таких устройств, как принтер, плоттер, компакт – диск организуется специальная структура – очередь к устройству. При запросе на печать данные записываются в специальную область памяти - буфер и специальный процесс «Очередь печати» управляет печатью. Процесс «Очередь печати» работает, как и все остальные процессы, в соответствии с квантом времени. Для ускорения работы внешних, как правило, более медленных устройств используется собственная память устройства, а работа устройства проходит в фоновом режиме. В системах пакетной обработки данных, пакет заданий (процессов) формируется таким образом, что ресурсы запрашиваются, только когда в этом есть необходимость, и на данный ресурс претендует минимальное число процессов.

  2. Условие удержания и ожидания не будет выполняться в том случае, если процесс запрашивает все необходимые ресурсы до начала работы. Если все ресурсы свободны, то процесс запускается. На практике может быть реализовано, только в системах реального времени, где все процессы заранее известны. В универсальных системах практически неосуществимо, так заранее не известно какие ресурсы потребуются процессу.

  3. Чтобы в системе не возникало циклических ожиданий ресурсов, установлено правило, каждый процесс может владеть только одним ресурсом, если ему требуется новый ресурс, то он обязан освободить предыдущий. Освобождение ресурса выполняется ОС принудительно.

Итог. Тупиковая ситуация – потенциальная проблема любой операционной системы.

В универсальных ОС для избежания тупиков на практике применяют:

  1. Очередь к устройству;

  2. Принудительное освобождение ресурса ОС через некоторое время;

  3. Процесс может владеть только одним ресурсов в любой момент времени