Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Более точное определение тупика требует использования математической модели ВС.
Определим систему как пару
S = { s, p },
где s = {S1, S2,...} - множество состояний системы, p = { p1, p2,...} - множество процессов, протекающих в системе.
В системе, которая определяется таким образом, процесс pi Î p представляет собой частичную функцию, отображающую состояния системы в непустые подмножества ее же состояний:
pi: s ® { s }.
Процесс pi может быть определен не для всех состояний.
Если pi определен на состоянии Sl, то pi(Sl) - область его значений, то есть процесс pi может изменить состояние системы из Sl в состояние Sk Î pi(Sl). Для перевода системы из состояния Sl в состояние Sk процесс должен выполнить некоторую операцию. Для обозначения перевода процессом pi системы S из состояния Sl в состояние Sk введем обозначение
pi
Sl ® Sk.
Состояние системы может измениться только при выполнении процессом одной из следующих операций:
– запрос на ресурс;
– приобретение ресурса;
– освобождение ресурса.
Введем еще одно обозначение: нотация
*
Sl ® Sn
означает
(a) Sl = Sn или
pi
(b) $ pi: Sl ® Sn или
pi *
(c) $ Sk & $ pi: (Sl ® Sk) & (Sk ® Sn).
То есть система может быть переведена из состояния Sl в состояние Sn посредством h операций (h ³ 0), которые могут быть выполнены m различными процессами (m ³ 0).
Используя введенные обозначения, определим состояние тупика.
Процесс pi заблокирован в состоянии Sl, если не существует ни одного такого состояния Sk, что
pi
Sl ® Sk.
То есть заблокированный процесс не может выполнить никакой операции по изменению состояния системы.
Процесс pi находится в тупике в состоянии Sl, если для любого состояния Sk, такого что
*
Sl ® Sk
процесс pi будет заблокирован в этом состоянии. То есть процесс находится в тупике в состоянии Sl, если он заблокирован в этом состоянии и останется заблокированным в любом другом состоянии Sk, в которое система может перейти из этого состояния Sl при выполнении любых операций любыми другими процессами (процесс останется заблокированным, как бы ни изменялось состояние системы в будущем).
Состояние Sl называется тупиковым, если существует процесс pi, находящийся в тупике в этом состоянии.
Состояние Sl называется безопасным, если любое состояние Sk, такое что
*
Sl ® Sk,
не будет состоянием тупика.
Система может быть представлена в виде графа, вершины которого соответствуют состояниям системы, а дуги показывают возможные переходы системы из одного состояние в другое при выполнении процессами перечисленных выше операций.
Рассмотрим пример системы, в которой есть как тупиковое, так и безопасное состояние. Пусть s = {S1, S2, S3, S4, S5} - множество состояний системы, p = {p1, p2} - множество выполняющихся в ней процессов (рис.2.9).
p1 p2
p2 p1
S1 S2 p1 S3 S4 p1 S5
Рис.3.9. Пример системы с тупиковым и безопасным состоянием
Состояние S1 является состоянием тупика. Состояния S4 и S5 являются безопасными состояниями. Состояния S2 и S3 не являются безопасными состояниями, но не являются и тупиковыми.
Дата публикования: 2014-11-29; Прочитано: 285 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!