Круглое планирование и тупик - PullRequest
0 голосов
/ 27 февраля 2011

Приводит ли когда-либо циклическое планирование к тупику? Что произойдет, если планирование ЦП основано на циклическом переборе и в один момент в расписании два разных процесса запрашивают один и тот же файл, которым не владеет ни один из процессов? Это приведет к взаимоблокировке или файл будет передан процессу, который должен выполняться на следующем шаге расписания?

Ответы [ 2 ]

1 голос
/ 17 августа 2012

rr планирование может привести к тупиковой ситуации. Например, если процесс A запрашивает и получает принтер, но превысил свой временной интервал, а для processB происходит обычное время пакетной обработки, равное его временному интервалу ... тогда его выполнение будет завершено. Затем он запрашивает у принтера, какой процесс A все еще находится в ожидании .. пока он ожидает в хвосте очереди для входа в память, все еще находящуюся в режиме ожидания B .. Затем возникла тупиковая ситуация

1 голос
/ 10 марта 2011

Случай, который вы описываете, не приведет к тупику. Блокировки являются атомарными, поэтому только один процесс может содержать по одному. Таким образом, какой бы процесс ни контролировал процесс, он получит блокировку, и второй процесс завершится неудачей.

Однако в более общем случае может возникнуть тупик при планировании RR. Рассмотрим два процесса и две блокировки. Процесс A получает блокировку 1, а затем передает процессор в процесс B. Процесс B затем получает блокировку 2 и пытается получить блокировку 1. Поскольку блокировка 1 принадлежит процессу A, процесс B будет находиться в режиме ожидания. Процесс A пробуждается и пытается получить блокировку 2. Блокировка 2 по-прежнему принадлежит процессу B, поэтому ни один из процессов не может двигаться вперед, и у вас есть тупик.

...