Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации лекций по ТОИ / 19-Проблема тупика.pps
Скачиваний:
47
Добавлен:
02.06.2015
Размер:
1.09 Mб
Скачать

НИУ ВШЭ – Пермь

Факультет бизнес-информатики

Кафедра информационных технологий в бизнесе

Проблема тупика

Материалы курса «Теоретические основы информатики»

Лекция 19

Лядова Л.Н.

Пермь 2013

Понятие тупика

Говорят, что процесс находится в состоянии тупика (дедлока или клинча), если он ожидает некоторого события, которое не может

произойти без вмешательства извне, то есть если не будут приняты

“чрезвычайные меры” (пользователем, оператором…). Процесс, находящийся в тупике, заблокирован и не имеет шанса выполняться

без постороннего вмешательства.

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

Тупик может быть результатом ошибки при разработке программ для выполнения их в многопрограммной среде с динамическим

2распределением ресурсов.

Заблокированные процессы и процессы, находящиеся в тупике

Всякий ли заблокированный процесс находится в тупике?

3

Заблокированные процессы и процессы, находящиеся в тупике

При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:

Заблокированы ли процессы, находящиеся в состоянии ожидания?

Порождение

Готовность

Активность

Ожидание

Завершение

Запрос ресурса (файла,

памяти и т.п.) или услуги

 

(системной функции: ввод-

4

вывод, передача данных по

линии связи и т.п.)

Заблокированные процессы и процессы, находящиеся в тупике

При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:

Порождение

Готовность

Активность

Ожидание

 

Процесс заблокирован, если сделанный им

 

запрос не может быть удовлетворён в

 

текущем состоянии – нет достаточного

 

количества ресурса, не введены данные…

 

Процесс ожидает события, которое произойдёт,

5

как только освободится ресурс, будут введены

данные, будет передано сообщение…

Заблокированные процессы и процессы, находящиеся в тупике

При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:

Порождение

Готовность

Активность

Ожидание

 

Если же ожидаемое событие, до наступления

 

которого процесс остаётся заблокированным, не

 

может произойти никогда (если только «внешняя

 

сила» на вмешается в работу системы), то

 

процесс – в тупике, он не может перейти в

6

состояние готовности и продолжить

выполнение

Заблокированные процессы и процессы, находящиеся в тупике

При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:

Порождение

Готовность

Активность

Ожидание

 

Если же ожидаемое событие, до наступления

 

которого процесс остаётся заблокированным, не

 

может произойти никогда (если только «внешняя

 

сила» на вмешается в работу системы), то

 

процесс – в тупике, он не может перейти в

7

состояние готовности и продолжить

выполнение

Заблокированные процессы и процессы, находящиеся в тупике

При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:

Порождение

Готовность

Активность

 

 

 

 

Если же ожидаемое событие, до наступления

 

которого процесс остаётся заблокированным, не

 

может произойти никогда (если только «внешняя

 

сила» на вмешается в работу системы), то

 

процесс – в тупике, он не может перейти в

 

состояние готовности и продолжить

8

 

выполнение

Заблокированные процессы и процессы, находящиеся в тупике

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

Тупик может стать результатом выполнения процессом запроса.

9

Задачи, связанные с решением проблемы тупика

Таким образом, проблема тупика – глобальная системная проблема, в рамках которой решаются следующие задачи:

•предотвращение тупиков;

•обход тупиков;

•распознавание тупиков;

•вывод системы из тупика и восстановление её работоспособности.

10

Соседние файлы в папке Презентации лекций по ТОИ