Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft.doc
Скачиваний:
523
Добавлен:
16.03.2016
Размер:
4.36 Mб
Скачать

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

Приведём еще одну формальную модель (она подробно рассмотрена в работе [92]). Эта модель очень проста, однако она позволяет сформулировать, что нам нужно делать, чтобы не попасть в тупиковое состояние.

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

 Система есть пара <,>, где

 – множество состояний системы {S1,S2,S3, ... ,Sn};

 – множество процессов {P1, Р2, Р3, ... , Рk}.

 Процесс Рi есть частичная функция, отображающая состояние системы в непустые подмножества её же состояний. Это обозначается так:

Pi:{}

Если Piопределён на состоянииS, то область значений Рi , обозначается какPi(S). Если SkPi(Se), то мы говорим, чтоPiможет изменить состояниеSeв состояние Skпосредством операции, и используем обозначение Se Sk .

Наконец, запись SeSwобозначает, что

Se =Swили

Se Swдля некоторогоiили

Se Skдля некоторогоiи Sk, и Sk Sw.

Другими словами, система может быть переведена посредством п0 операций с помощьют 0 различных процессов из состояния Seв состояниеSw.

Мы говорим, что процесс заблокирован в данном состоянии, если он не может изменить состояние, то есть в этом состоянии процесс не может ни затребовать, ни получать, ни освобождать ресурсы. Поэтому справедливо будет записать следующее:

 Процесс Piзаблокирован в состоянии Se, если не существует ни одного состояния Sk, такого что Se Sk(Pi(Se) =).

Далее, мы говорим, что процесс находится в тупике в данном состоянии Se, если он заблокирован в состоянии Seи если вне зависимости от того, какие операции (изменения состояний) произойдут в будущем, процесс остается заблокированным. Поэтому дадим еще одно определение:

 Процесс Piнаходится в тупике в состоянии Se, если для всех состояний Sk, та­ких что Se Sk, процесс Pi блокирован в Sk.

Приведём пример. Определим систему <,>:

={S1,S2,S3,S4};= {P1, Р2};

P1(S1) = {S2, S3}; P2(Sl) = {S3};

Pl(S2) =  ; P2(S2) = {S1, S4};

Pl(S3) = {S4}; P2(S3) = ;

P1(S4) = {S3}; P2(S4) = .

Некоторые возможные последовательности изменений для этой системы таковы:

S1 S3; S2 S4; S1 S4.

Последовательность S1 S4может быть реализована, например, следующим образом: S1 S2; S2 S4 или же S1 S3; S3 S4.

Заметим, что процесс Р2находится в тупике как в состоянииS3, так и в состоя­нииS4; для последнего случая S2 S4или S2 S1и процессP1не ста­новится заблокированным ни вS4, ни вS1.

Диаграмма переходов этой системы изображена на рис. 7.9.

Рис. 7.9.Пример системы <,> на 4 состояния

 Состояние Sназывается тупиковым, если существует процесс Рi, находящий­ся в тупике в состоянии S.

Теперь мы можем сказать, что тупик предотвращается, по определению, при вве­дении такого ограничения на систему, чтобы каждое её возможное состояние не было тупиковым состоянием.

Введем еще одно определение.

 Состояние Siестьбезопасное состояние,если для всехSk, таких что

Si Sk,Skне является тупиковым состоянием.

Рассмотрим ещё один пример системы <,>.Граф её состояний приведен на рис. 7.10. Здесь состоянияS2иS3являются безопасными; из них система нико­гда не сможет попасть в тупиковое состояние. Состояния S1иS4могут привести как к безопасным состояниям, так и к опасному состояниюS5. СостояниеS6иS7является тупиковым.

Рис. 7.10.Пример системы <,> с безопасными, опасными и тупиковым

состояниями

Наконец, в качестве ещё одной простейшей системы вида <,> приведём при­мер тупика с SR-ресурсами, уже рассмотренный нами в этой главе ранее. Определим следующим образом состояния процессовP1и Р2, которые используют ре­сурсы R1и R2.

Таблица 7.1.Состояния процессов Р1и Р2

Состояния для процесса Р1

Состояния для процесса Р2

0

Не содержит никаких ресурсов

0

Не содержит никаких ресурсов

1

Запросил ресурс R2, не держит никаких ресурсов

1

Запросил ресурс R1, не держит никаких ресурсов

2

Держит ресурс R2

2

Держит ресурс R1

3

Запросил ресурс R1, держит ресурс R2

3

Запросил ресурс R2, держит ресурс R1

4

Держит ресурсы R1 и R2

4

Держит ресурсы R1 и R2

5

Держит ресурс R2 после освобождения ресурса R1

5

Держит ресурс R2 после освобождения ресурса R1

Пусть состояние системы Sijозначает, что процессP1находится в состоянииSi, а процесс Р2– в состоянии Sj. Возможные изменения в пространстве состояний этой системы изображены на рис.7.11. «Вертикальными» стрелками показаны возможные переходы из одного состояния в другое для процессаP1, а «горизонтальными» – для процесса Р2. В данной системе имеются три опасных состоя­ния. Попав в любое из них, мы неминуемо перейдем в тупиковое состояние.

Рис. 7.11.Пример системы

Теперь, когда мы знаем понятия надежного, опасного и безопасного состояний, можно рассмотреть и методы борьбы с тупиками.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]