![](/user_photo/2706_HbeT2.jpg)
- •Определите понятие ресурса. Дайте классификацию ресурсов. Какие проблемы связаны с разделением ресурсов процессами?
- •По возможности повторного использования
- •Дайте понятие критической секции.
- •Сформулируйте свойства критической секции.
- •Каковы общие условие решения задачи взаимного исключения?
- •Опишите и сравните различные программные методы решение проблемы взаимного исключения (использование логических переменных, счетчиков, задержек при выполнении процессов).
- •Дайте понятие семафора.
- •Опишите семафорные примитивы для бинарных семафоров и семафоров со счетчиками.
- •Приведите примеры использования семафоров (для решения задачи взаимного исключения, синхронизации процессов, решения задачи поддержания отношения предшествования)
- •Дайте определение тупика.
- •Сформулируйте задачи, связанные с проблемой тупика, кратко охарактеризуйте подходы к решению.
- •Дайте формальное определение системы с использованием математической (графовой) модели.
- •Дайте формальное определение заблокированного процесса, процесса, находящегося в тупике.
Дайте формальное определение системы с использованием математической (графовой) модели.
Более точное определение тупика требует использования математической модели ВС.
Определим систему как пару
где
= {S1 ,
S2 ,
...} – множество состояний системы,
= { p1 ,
p2 ,
...} – множество процессов, протекающих
в системе.
В
системе, которая определяется таким
образом, процесс pi
представляет собой частичную функцию,
отображающую состояния системы в
непустые подмножества ее же состояний:
pi
:
{
}.
Процесс pi может быть определен не для всех состояний.
Если
pi определен
на состоянии Sl,
то pi(Sl)
– область его значений, то есть процесс
pi может
изменить состояние системы из Sl
в состояние
Sk
pi(Sl
). Для перевода
системы из состояния Sl
в состояние
Sk процесс
должен выполнить некоторую операцию.
Для обозначения перевода процессом pi
системы
из
состояния 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
S
l
Sk
.
То есть заблокированный процесс не может выполнить никакой операции по изменению состояния системы.
Процесс pi находится в тупике в состоянии Sl, если для любого состояния Sk, такого что
*
S l Sk
процесс pi будет заблокирован в этом состоянии. То есть процесс находится в тупике в состоянии Sl, если он заблокирован в этом состоянии и останется заблокированным в любом другом состоянии Sk, в которое система может перейти из этого состояния Sl при выполнении любых операций любыми другими процессами (процесс останется заблокированным, как бы ни изменялось состояние системы в будущем).
Состояние Sl называется тупиковым, если существует процесс pi, находящийся в тупике в этом состоянии.
Какое состояние системы является тупиковым?
Какое состояние называется безопасным?
Какое состояние называется выгодным?
Процесс pi заблокирован в состоянии Sl, если не существует ни одного та-кого состояния Sk , что
pi
S l Sk .
То есть заблокированный процесс не может выполнить никакой операции по изменению состояния системы.
Процесс pi находится в тупике в состоянии Sl, если для любого состояния Sk, такого что
*
S l Sk
процесс pi будет заблокирован в этом состоянии. То есть процесс находится в тупике в состоянии Sl, если он заблокирован в этом состоянии и останется заблокированным в любом другом состоянии Sk, в которое система может перейти из этого состояния Sl при выполнении любых операций любыми другими процессами (процесс останется заблокированным, как бы ни изменялось состояние системы в будущем).
Состояние Sl называется тупиковым, если существует процесс pi, находящийся в тупике в этом состоянии.
Р
P1
P2
ассмотрим пример системы, в которой есть как тупиковое. Пусть![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_5277372cc5ef24f1.gif)
![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_f7134e81050316bd.gif)
S1
S2
S3
S4
![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_2de3a6aaa9d28fe9.gif)
![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_dbe3bba56f3cb279.gif)
P2
S5
P1
![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_de05938a56b92e7d.gif)
![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_41d257c237d905b.gif)
P1
![](/html/2706/164/html_sDRwyT49y4.YyLj/htmlconvd-e403ti_html_464cc1fce526fbd5.gif)
P1
Состояние S1 является состоянием тупика. Состояния S4 и S5 являются безопасными состояниями. Состояния S2 и S3 не являются безопасными состояниями, но не являются и тупиковыми