Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / 1.docx
Скачиваний:
185
Добавлен:
03.06.2014
Размер:
5.4 Mб
Скачать

Модель системы

Пусть в системе имеется m видов ресурсов (например, процессор, память, устройства ввода-вывода). Будем обозначать типы ресурсов в системе R1, R2, … Rm. Пусть каждый тип ресурса Ri имеет Wi экземпляров.

Каждый процесс может использовать ресурс одним из следующих способов:

запрос (request)

использование (use)

освобождение (release).

Тупик может возникнуть, если одновременно выполняются следующие четыре условия:

взаимное исключение: только один процесс в каждый момент времени может получить доступ к ресурсу;

удержание и ожидание: процесс, удерживающий один ресурс, ожидает приобретения других ресурсов, которыми обладают другие процессы;

отсутствие прерываний: процесс может освободить ресурс только добровольно, когда завершит свою работу;

циклическое ожидание: существует множество {P0, P1, … P0}, такое, что P0 ожидает ресурса, которым обладает P1; P1 ожидает ресурса, которым обладает P2 … Pn ожидает ресурса, которым обладает P0.

Граф распределения ресурсов

Введем в рассмотрение граф распределения ресурсов, состоящий из множества вершин V и множества дуг E. V подразделяется на два типа вершин: вершина-процесс и вершина-ресурс. Иначе говоря, V подразделяется на вершины типа P = {P1, P2, … ,Pn} множество всех процессов в системе, и вершины типа R = {R1, R2, … ,Rm}

Введем два типа дуг:

дуга типа "запрос" (request edge) – направленная дуга типа Pi -> Rj

дуга типа "присваивание" (assignment edge) – направленная дуга типа Ri -> Pj.

Смысл различных направленностей дуг в следующем. Если процесс претендует на какой-либо ресурс, то дуга проводится из вершины-процесса в вершину-ресурс. Когда же конкретная единица ресурса уже выделена какому-либо конкретному процессу, то дуга, в знак этой принадлежности, и проводится из вершины-ресурса в вершину процесс.

Уточним особенности вводимого графа и его вершин. В современной терминологии, граф данного вида называется reserved graph. Его вершина-процесс имеет обычный вид, а вершина-ресурс, соответствующая ресурсу Rj, состоит из Wj подвершин, каждая из которых обозначает конкретную единицу ресурса. В теории reserved graphs такие вершины иногда называют супервершинами (super-vertices). Таким образом, дуга запроса ведет из вершины-процесса в вершину-ресурс в целом, а дуга присваивания ведет из соответствующей подвершины вершины-ресурса в вершину-процесс.

Пример вершины-процесса приведен на рис. 13.1.Рис. 13.1. Пример вершины-процесса в графе распределения ресурсов.

Пример (супер)вершины-ресурса с четырьмя экземплярами приведен на рис. 13.2: каждому экземпляру ресурса соответствует своя подвершина.

Рис. 13.2. Пример вершины-ресурса с четырьмя экземплярами.

Пример графа распределения ресурсов приведен на рис. 13.3.

Рис. 13.3. Пример графа распределения ресурсов.

Данный граф изображает систему с тремя процессами и четырьмя видами ресурсов: ресурсы видов 1 и 3 имеют по одному экземпляру, ресурс вида 2 – два экземпляра, ресурс вида 4 – три экземпляра. Процесс 1 претендует на ресурс 1, который занят процессом 2. Процесс 2 претендует на ресурс 3, который занят процессом 3. Две единицы ресурса 2 отданы процессам 1 и 2. Ресурс 4 не распределялся (все три единицы свободны).

Соседние файлы в папке ОС