Модель пространства состояний системы
Пусть состояние системы будет сводиться к состоянию различных ресурсов в системе (свободны они или распределены). Состояние системы изменяется процессами, когда они запрашивают, приобретают или освобождают ресурсы; это будут единственно возможные действия, которые принимаются во внимание. Если процесс не блокирован в данном состоянии, он может изменить это состояние на новое. Но, так как в общем случае невозможно знать заранее, какой путь может избрать произвольный процесс в своей программе (это неразрешимая проблема!), то новое состояние может быть любым из конечного числа возможных. Следовательно, процессы нами будем трактовать как недетерминированные объекты. Введенные ограничения на известные понятия приводят к следующим формальным определениям.
Определение 5.5. Система есть пара <σ, π >, где:
1) σ - множество состояний системы {S1, S2, ..., Sn};
2) π - множество процессов {P1, Р2, …, Pk}.
Определение 5.6. Процесс Pj есть частичная функция, отображающая состояние системы в непустые подмножества ее же состояний. Это обозначается так: Pj: σ → {σ}.
Если Pj определен на состоянии S, то область значений Pj обозначается как Pj(S). Если , то говорят, что Pj может изменить состояние Sl в состояние Sk посредством операции, и используют обозначение:
.
Запись соответствует выполнению одного из трех условий:
1) Sl = Sw;
2) для некоторого j;
3) для некоторого j и Sk, и
.
Т.е. система может быть переведена посредством n≥0 операций с помощью m≥0 различных процессов из состояния Slв состояние Sw.
Процесс заблокирован в данном состоянии, если он не может изменить состояние системы. Формально это можно определить следующим образом.
Определение 5.7. Процесс Pj заблокирован в состоянии Sl, если не существует ни одного состояния Sk, такого что (
).
Процесс находится в тупике в данном состоянии Sl, если он заблокирован в состоянии Sl и вне зависимости от того, какие операции произойдут в будущем, процесс остается заблокированным. Формально это можно определить следующим образом.
Определение 5.8. Процесс Pj находится в тупике в состоянии Sl, если для всех состояний Sk, таких что , процесс Pj блокирован в Sk.
Пример 5.2. Определим систему <σ, π > следующим образом:
1) σ = {S1, S2, S3, S4, S5};
2) π = {P1, P2}, где P1(S1) = {S2, S3, S4}; P2(S1) = {S2}; P1(S2)= {S5}; P2(S3) = {S5}; P1(S4) = {S5}; P2(S4) = {S1}; P1(S5) = {S2}.
Примерами возможных последовательностей изменений для этой системы являются . Последовательность
может быть реализована, например, следующим образом:
или же
. Процесс Р2 находится в тупике в состояниях S2 и S5; для случая
процесс Р1 не становится заблокированным в S5.
Диаграмма переходов этой системы изображена на рисунке 5.3.
Рисунок 5.3 - Пример системы <σ, π> на 4 состояния
Определение 5.9. Состояние S называется тупиковым, если существует процесс Pj, находящийся в тупике в состоянии S.
Определение 5.10. Состояние Si безопасное, если для всех состояний Sk, таких что , Sk не является тупиковым состоянием.
Пример 5.3. Граф состояний системы <σ, π> приведен на рисунке 5.4. Здесь состояния S2, S3 и S4 являются безопасными, т.к. из них система никогда не сможет попасть в тупиковое состояние. Состояние S1 может привести как к безопасным состояниям, так и к опасному состоянию S5. Состояния S6 и S7 являются тупиковыми.
Рисунок 5.4 - Система с безопасными, опасными и тупиковым
состояниями
Пример 5.4. Пусть в системе <σ, π> состояния процессов P1 и Р2, которые используют ресурсы R1 и R2, описаны в таблице 5.1.
Таблица 5.1 - Состояния процессов Р1 и Р2
Ресурс/Процесс |
Процесс Р1 |
Процесс Р2 |
||
R1 |
R2 |
R1 |
R2 |
|
Захватывается в состоянии |
S3 |
S5 |
S5 |
S4 |
Освобождается в состоянии |
S5 |
S6 |
S6 |
S6 |
Пусть состояние системы Sij означает, что процесс P1 находится в состоянии Sj, а процесс Р2 - в состоянии Si. Возможные изменения в пространстве состояний этой системы изображены на рисунке 5.5. Вертикальными стрелками показаны возможные переходы из одного состояния в другое для процесса Р2, а горизонтальными - для процесса Р1. Фигурными скобками выделены интервалы удерживания ресурсов процессами. Участки взаимного исключения процессов показаны штриховкой. В данной системе имеется одно опасное состояние S43, попав в него, система неминуемо перейдем в тупиковое состояние S44.