Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Модель системы для исследования проблемы тупика



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

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

Состояние системы представляется графом типа “процесс-ресурс”. Свойства графа, представляющего состояние системы, зависят от типов ресурсов, имеющихся в системе. Для простоты предположим, что множество процессов и множество ресурсов в системе постоянны.

Рассмотрим графовую модель для системы с повторно используемыми ресурсами.

Повторно используемый ресурс (ПИР или ресурс типа SR) - это ресурс, состоящий из конечного множества идентичных единиц со следующими свойствами:

– число единиц ресурса постоянно;

– отсутствует возможность разделения ресурса (параллельного использования одних и тех же единиц ресурса несколькими процессами) - ресурс захватывается процессом, которому он выделен, в монопольное использование;

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

Состояние системы с повторно используемыми ресурсами может изменяться только тремя операциями:

request (Ri, k) - запрос процесса pj, выполняющего данную операцию, на k единиц ресурса Ri;

– приобретение ресурса (выделение ресурса процессу pj в соответствии с выполненным им ранее запросом);

release (Ri, k) - освобождение процессом pj k единиц ранее выделенного ему ресурса Ri.

Операции запроса на ресурс и освобождения ресурса выполняются процессом, а операция выделения ресурса - системой в ответ на запрос, сделанный процессом.

Граф ПИР (SR-граф) - ориентированный двудольный граф

SR = (N, E),

где N есть множество вершин:

N = p È r

(p = { p1, p2,..., pn}- конечное множество вершин, представляющих процессы в ВС, r = { R1, R2,..., Rm} - множество вершин, соответствующих SR-ресурсам ВС; p Ç r = Æ), а E - множество дуг графа:

E Í (p ´ r) È (r ´ p),

причем элементы графа обладают следующими свойствами:

¨ Ri - вершина, представляющая повторно используемый ресурс Ri Î r, имеет пометку - пару (ci, ti), где ci - емкость данного ресурса, а ti - количество единиц ресурса, доступных для распределения (свободных) в данный момент;

¨ pj - вершина, представляющая процесс pj Î p в системе;

¨ pj k Ri - ребро (pj, Ri) с весом | (pj, Ri) | = k, представляющее вы полненный процессом pj Î p, но пока не удовлетворенный запрос на k единиц повторно используемого ресурса Ri Î r;

¨ Ri k pj - ребро (Ri, pj) с весом | (Ri, pj) | = k, представляющее все распределения ресурса Ri Î r процессу pj Î p по его удовлетворенным запросам;

¨ каждый запрос, выполняемый процессом pj Î p на ресурс Ri Î r должен удовлетворять ограничению:

| (Ri, pj) | + | (pj, Ri) | £ ci,

то есть сумма выполненных распределений и запросов конкретного ресурса относительно любого из процессов не может превышать количества единиц ресурса, имеющихся в системе для всех i и j (i = 1, m, j = 1, n); в противном случае запрос считается ошибочным и не может быть выполнен;

¨ в общей сложности в системе для каждого ресурса Ri Î r может быть сделано не более чем ci назначений, то есть

n

å | (Ri, pj) | £ ci

j = 1

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

Пусть система находится в состоянии Sl. Процесс pj может запросить любое число ресурса Ri, удовлетворяющее приведенному выше ограничению, с помощью операции request (Ri, r). Выполнение процессом запроса приведет к появлению в SR-графе дополнительного ребра запроса с соответствующим весом r. Новый граф представляет состояние системы Sk, такое что

pj

Sl ® Sk.

Операция приобретения процессом pj ресурса Ri по запросу, представленному ребром (pj, Ri), может быть выполнена, если

n

| (pj, Ri) | + å | (Ri, ph) | £ ci

h = 1

или

| (pj, Ri) | £ ti

n

(где ti = ci - å | (Ri, ph) |).

h = 1

Выполнение этой операции для процесса, которому еще не был распределен ресурс Ri, приведет к удалению дуги (pj, Ri), представлявшей удовлетворенный запрос, и появлению новой дуги (Ri, pj) с весом, равным весу удаленной дуги запроса (дуга запроса “обращается” - меняется ее направление). В том случае, если данный ресурс уже был выделен процессу, увеличивается вес уже существующей дуги (Ri, pj), представляющей распределение данного ресурса этому процессу. При этом в любом случае уменьшается величина ti (то есть сокращается количество доступных для распределения единиц распределенного ресурса) на величину удовлетворенного запроса.

Операция освобождения release (Ri, r) процессом pj r единиц ресурса Ri может быть выполнена тогда и только тогда, когда процесс не имеет неудовлетворенных запросов (в графе ПИР нет дуг, исходящих из вершины, представляющей данный процесс) и имеет в своем распоряжении ресурс Ri (есть дуга с положительным весом не меньшим чем r: | (Ri, pj) | ³ r).

В результате освобождения ресурса новое состояние системы представляется графом ПИР, в котором изменилась пометка вершины, соответствующей ресурсу Ri (величина ti увеличилась на количество освобожденных процессом единиц ресурса: ti:= ti + r), и либо изменился вес дуги (Ri,pj), показывающей распределение данного ресурса процессу pj (вес уменьшается на количество освобожденных единиц ресурса: |(Ri,pj)|:= |(Ri,pj)| - r), либо (если процесс освободил ресурс полностью (вес |(Ri,pj)| равнялся r)) дуга (Ri, pj) удаляется из графа.

Рассмотрим примеры.

Пример 1. Пусть в системе есть два процесса P1 и P2 и два единичных повторно используемых ресурса R1 и R2. Процессы имеют следующее описание:

Процесс 1 Процесс 2
process P1; begin... request (R1, 1); ... request (R2, 1); ... release (R2, 1); ... release (R1, 1); ... end. process P2; begin... request (R2, 1); ... request (R1, 1); ... release (R2, 1); ... release (R1, 1); ... end.

Предположим, что процессы выполняют свои операции над ресурсами в порядке, который приводит к изменению состояний системы, показанному последовательно изменяемыми графами ПИР, приведенными на рис.2.10. Последний граф ПИР соответствует тупиковому состоянию системы S7 (процессы P1 и P2 взаимно блокируют друг друга). Другая последовательность выполнения операций могла бы позволить процессам успешно завершиться.

Пример 2. В системе выполняются n процессов и существует разделяемый повторно используемый ресурс R емкости m. Описание программы каждого процесса выглядит следующим образом:

process P1;

begin...

request ( R, 1 );

...

request ( R, 1 );

...

release ( R, 1 );

...

release ( R, 1 );

...

End.

(1, 1) (1, 1) (1, 0)

R1 R1 R1

S1: S2: 1 S3: 1





Дата публикования: 2014-11-29; Прочитано: 483 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...