- •НИУ ВШЭ – Пермь
- •Понятие тупика
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Заблокированные процессы и процессы, находящиеся в тупике
- •Задачи, связанные с решением проблемы тупика
- •Задачи, связанные с решением проблемы тупика
- •Задачи, связанные с решением проблемы тупика
- •Задачи, связанные с решением проблемы тупика
- •Задачи, связанные с решением проблемы тупика
- •Задачи, связанные с решением проблемы тупика
- •Задачи, связанные с решением проблемы тупика
- •Необходимые условия возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Предотвращение возникновения тупика
- •Задачи, связанные с решением проблемы тупика
- •Использованные источники:
НИУ ВШЭ – Пермь
Факультет бизнес-информатики
Кафедра информационных технологий в бизнесе
Проблема тупика
Материалы курса «Теоретические основы информатики»
Лекция 19
Лядова Л.Н.
Пермь 2013
Понятие тупика
Говорят, что процесс находится в состоянии тупика (дедлока или клинча), если он ожидает некоторого события, которое не может
произойти без вмешательства извне, то есть если не будут приняты
“чрезвычайные меры” (пользователем, оператором…). Процесс, находящийся в тупике, заблокирован и не имеет шанса выполняться
без постороннего вмешательства.
Пример: процесс оказывается заблокированным в результате таких запросов на ресурсы, которые не могут быть удовлетворены, если не перераспределить принудительно ресурсы, «отобрав» их у других процессов, или не снять с выполнения эти процессы до нормального их завершения, процесс может быть также заблокирован в результате ожидания сигнала, который не может быть ему передан другим процессом.
Тупик может быть результатом ошибки при разработке программ для выполнения их в многопрограммной среде с динамическим
2распределением ресурсов.
Заблокированные процессы и процессы, находящиеся в тупике
Всякий ли заблокированный процесс находится в тупике?
3
Заблокированные процессы и процессы, находящиеся в тупике
При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:
Заблокированы ли процессы, находящиеся в состоянии ожидания?
Порождение |
Готовность |
Активность |
Ожидание |
Завершение |
Запрос ресурса (файла, |
памяти и т.п.) или услуги |
|
|
(системной функции: ввод- |
4 |
вывод, передача данных по |
линии связи и т.п.) |
Заблокированные процессы и процессы, находящиеся в тупике
При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:
Порождение |
Готовность |
Активность |
Ожидание |
|
Процесс заблокирован, если сделанный им |
|
запрос не может быть удовлетворён в |
|
текущем состоянии – нет достаточного |
|
количества ресурса, не введены данные… |
|
Процесс ожидает события, которое произойдёт, |
5 |
как только освободится ресурс, будут введены |
данные, будет передано сообщение… |
Заблокированные процессы и процессы, находящиеся в тупике
При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:
Порождение |
Готовность |
Активность |
Ожидание |
|
Если же ожидаемое событие, до наступления |
|
которого процесс остаётся заблокированным, не |
|
может произойти никогда (если только «внешняя |
|
сила» на вмешается в работу системы), то |
|
процесс – в тупике, он не может перейти в |
6 |
состояние готовности и продолжить |
выполнение |
Заблокированные процессы и процессы, находящиеся в тупике
При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:
Порождение |
Готовность |
Активность |
Ожидание |
|
Если же ожидаемое событие, до наступления |
|
которого процесс остаётся заблокированным, не |
|
может произойти никогда (если только «внешняя |
|
сила» на вмешается в работу системы), то |
|
процесс – в тупике, он не может перейти в |
7 |
состояние готовности и продолжить |
выполнение |
Заблокированные процессы и процессы, находящиеся в тупике
При выполнении процесса в ВС он проходит ряд дискретных состояний, связь которых можно представить с помощью графа:
Порождение |
Готовность |
Активность |
|
|
|
||||
|
Если же ожидаемое событие, до наступления |
|||
|
которого процесс остаётся заблокированным, не |
|||
|
может произойти никогда (если только «внешняя |
|||
|
сила» на вмешается в работу системы), то |
|||
|
процесс – в тупике, он не может перейти в |
|||
|
состояние готовности и продолжить |
|||
8 |
|
выполнение |
||
Заблокированные процессы и процессы, находящиеся в тупике
Процесс находится в тупике, если он заблокирован в текущем состоянии и в любом другом состоянии, в которое может перейти система, в которой он запущен.
Тупик может стать результатом выполнения процессом запроса.
9
Задачи, связанные с решением проблемы тупика
Таким образом, проблема тупика – глобальная системная проблема, в рамках которой решаются следующие задачи:
•предотвращение тупиков;
•обход тупиков;
•распознавание тупиков;
•вывод системы из тупика и восстановление её работоспособности.
10
