Планирование «первым пришел - первым обслужен» (FCFS) позволяет избежать тупика? - PullRequest
0 голосов
/ 02 мая 2018

Гарантируется ли, что при использовании планирования FCFS «система» не будет в тупике?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Четыре условия для тупика:

  1. Взаимное исключение: независимо от алгоритма планирования, ресурсы могут быть использованы одним процессом без совместного использования.
  2. Удерживать и ждать. В этом состоянии процессы могут ожидать других ресурсов, удерживая один ресурс. Это возможно с любым алгоритмом планирования.
  3. Без упреждения: FCFS не является упреждающим. То есть процессы, выполняющие критическую часть своего кода, не могут быть принудительно остановлены.
  4. Циклическое ожидание: процессы ожидают, пока другой процесс выпустит ресурс циклическим способом. Это, опять же, независимо от алгоритма планирования

Следовательно, FCFS не гарантирует, что система не будет в тупике. Если четыре условия соблюдены, возникает тупик.

0 голосов
/ 02 мая 2018

Взаимные блокировки вызваны блокировкой ресурса, а не порядком планирования. FCFS не гарантирует, что ваши потоки будут всегда захватывать ресурсы последовательно, поэтому ответ на ваш вопрос - нет.

...