Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОС / 4. ОС - Управление процессами - 1

.pdf
Скачиваний:
64
Добавлен:
01.06.2015
Размер:
1.1 Mб
Скачать

71

Принудительное освобождение ресурса

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

Проблема в том, что далеко не во всех случаях можно безболезненно отобрать ресурс, а потом его вернуть. Это зависит от типа ресурса.

Например, если отбираемый ресурс – это открытый файл, то после возвращения ресурса может оказаться, что другие процессы успели изменить файл, а это может привести к ошибке.

Наоборот, нет большой проблемы в том, чтобы временно отобрать у процесса принтер, а потом продолжить печатание дальше.

Операционные системы. Управление процессами - 1

72

Возвращение к контрольной точке

Система может время от времени записывать на диск контрольные точки, содержащие информацию о текущем состоянии, включая список ресурсов, занятых каждым процессом.

При обнаружении тупика система откатывает выполнение всех процессов к такой контрольной точке, где процессы еще не вошли в тупик. Система временно приостанавливает один или несколько процессов, чтобы остальные могли получить требуемые ресурсы. Затем работа всех процессов возобновляется.

Идея интересная, но ее реализация весьма затратна по времени и памяти.

Операционные системы. Управление процессами - 1

73

Практические выводы

В современных ОС для персональных компьютеров проблема тупиков, как правило, игнорируется. Причины этого следующие:

большие объемы памяти, дисков и других ресурсов делают проблематичным возникновение тупика из-за нехватки ресурсов;

отказ от выделения устройств (например, принтера) в исключительное владение одному процессу (вместо этого задания принтеру ставятся в общую очередь) делает невозможными тупики, связанные с таким устройством;

причины «зависания» ОС могут быть различными, и тупики не являются главной причиной. Радикальным способом борьбы здесь является перезагрузка системы.

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

Операционные системы. Управление процессами - 1