2014-01-30 3 views
0

У меня есть окончательная проверка в курсе OS, утром завтра, и у меня возникла проблема.Решение алгоритма Banker для данного состояния системы

Скажем, у нас есть 4 процесса в нашей системе: P1, P2, P3, P4 и 4 различных ресурса: R1, R2, R3, R4. Текущее состояние системы, показанное на рисунке.

enter image description here

Возникает вопрос - "Является ли система в тупике или нет?" Я решил несколько подобных проблем, поэтому, я думаю, система IS находится в тупике, потому что недостаточно доступных ресурсов (например, P4 запрашивает 2 экземпляра R3, но в доступном списке существует только 1 ресурс R3).

Я немного смущен, потому что ответ моего практикующего: система не находится в тупике, и процессы, выполняющиеся в таком порядке: P4-> P3-> P1-> P2

Какое решение является правильным?

Спасибо.

ответ

1

Ваш инструктор верен. В частности, P4 уже имеет (1 0 1 1) и, следовательно, нуждается только (0 0 1 0), что может быть легко достигнуто доступными ресурсами. После того, как P4 обслуживается ресурсами, он завершает и освобождает все, что он использовал (включая его текущее распределение). Затем ОС может отправить эти ресурсы на оставшиеся процессы (в правильной последовательности), таким образом, без взаимоблокировки.

+0

TNX. Теперь, по вашей логике, может быть и порядок P3-> P4-> P1-> P2? Я имею в виду, 2222-1211 = 1011, и я могу взять его из доступных ...? –

+0

Да, это правильный порядок! –

0

В соответствии с пояснением здесь P4-> P3-> P2-> P1 не работает, поскольку P2 сделает R1 0, и это может привести к тупиковой ситуации P2, идущей в цикле или недоступной в течение длительного времени P1 ждет все это время, когда R1 равно нулю. ?

Поскольку после того, как P3 и P4 выполнены, свободная матрица становится 3334, что достаточно для удовлетворения потребностей P2.

0

сейф последовательность p3, p4, p1, p2
p1 ложные
p2 ложные
p3 правда общая 5555 - выполнить первый
p4 правда общая 6566 - выполнение второго
петля продолжение
p1 истинная общая 7678 - выполнение третьего
p2 истинная общая 9788 - выполнить 4-й

безопасную последовательность (p3, p4, p1, p2)

Смежные вопросы