Лекции по операционным системам, страница 15

Борются с тупиковой ситуацией разные ОС по-разному. Существует 3 основных метода борьбы с тупиками:

  1. Предупреждение тупиков.
  2. Обход тупиков.
  3. Распознавание тупика с последующим восстановлением.

Все методы чрезвычайно сложные, как правило, базируются на анализе событийного графа, изображаемого с помощью сетей ПЕТРИ. Построение анализа сложная и дорогостоящая (с точки зрения большого расхода ресурсов) операция.

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

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

3.   Метод распознавания состоит в том, что система не прогнозирует тупиков, и если он случился, то только тогда система описывает ситуацию и начинает принимать методы по восстановлению (по принципу что удастся спасти). Метод используется чаще и дешевле других методов, система работает быстрее. 

Организация ввода-вывода

Основные понятия

Программный комплекс реализующий ввод/вывод часто называется системой.

Управление вводом- выводом базируется на следующем основном принципе:  команды на ввод/вывод являются привилегированными для ОС и могут исполняться только самой ОС, а не пользовательскими программами, по следующим причинам:

  1. Необходимость устранять конфликты, возникающие при обращении к устройству со стороны пользовательских процессов или программ.
  2. Необходимость повышения эффективности использования ресурсов (обращение 2-х программ к дискам).
  3. Ошибки в самих программах, которые могут приводить к краху системы.