ОС / 4. ОС - Управление процессами - 1
.pdf
71
Принудительное освобождение ресурса
Система приостанавливает процесс, временно освобождает занятые им ресурсы и дает остальным процессам спокойно завершиться. После этого остановленному процессу возвращаются его ресурсы и выполнение возобновляется.
Проблема в том, что далеко не во всех случаях можно безболезненно отобрать ресурс, а потом его вернуть. Это зависит от типа ресурса.
Например, если отбираемый ресурс – это открытый файл, то после возвращения ресурса может оказаться, что другие процессы успели изменить файл, а это может привести к ошибке.
Наоборот, нет большой проблемы в том, чтобы временно отобрать у процесса принтер, а потом продолжить печатание дальше.
Операционные системы. Управление процессами - 1
72
Возвращение к контрольной точке
Система может время от времени записывать на диск контрольные точки, содержащие информацию о текущем состоянии, включая список ресурсов, занятых каждым процессом.
При обнаружении тупика система откатывает выполнение всех процессов к такой контрольной точке, где процессы еще не вошли в тупик. Система временно приостанавливает один или несколько процессов, чтобы остальные могли получить требуемые ресурсы. Затем работа всех процессов возобновляется.
Идея интересная, но ее реализация весьма затратна по времени и памяти.
Операционные системы. Управление процессами - 1
73
Практические выводы
В современных ОС для персональных компьютеров проблема тупиков, как правило, игнорируется. Причины этого следующие:
большие объемы памяти, дисков и других ресурсов делают проблематичным возникновение тупика из-за нехватки ресурсов;
отказ от выделения устройств (например, принтера) в исключительное владение одному процессу (вместо этого задания принтеру ставятся в общую очередь) делает невозможными тупики, связанные с таким устройством;
причины «зависания» ОС могут быть различными, и тупики не являются главной причиной. Радикальным способом борьбы здесь является перезагрузка системы.
Проблема недопущения тупиков остается актуальной для встроенных ОС реального времени, где вмешательство человека зачастую исключено. В этих случаях проблема, как правило, должна решаться на этапе проектирования ОС и прикладных программ.
Операционные системы. Управление процессами - 1
