Стоимость стратегии распознавания дедлока зависит от того, насколько часто выполняется алгоритм распознавания

Обход дедлоков неприменим в случае отсутствия информации о требованиях процессов на ресурсы.

Стратегия распознавания дедлоков.

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

Чтобы выполнить эти вычисления, ОС должна:

  • вести список тех ресурсов, которые ждет каждый заблокированный процесс
  • вести список тех процессов, которые держат каждый заблокированный ресурс.

Алгоритм распознавания замкнутых цепей можно выполнять с любой нужной частотой:

  • например часто – всякий раз, когда запрос на ресурс отклоняется
  • через заданные интервалы времени

Методы восстановления:

Как только дедлок выявлен, должно быть выполнено восстановление.

Самый простой метод восстановления – принудительное завершение всех процессов и запуск ОС заново.

Менее радикальный метод – принудительное завершение всех процессов, находящихся в дедлоке.

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

. Основная «цена» восстановления от дедлока – это потеря времени, которые могут быть существенными.

  1. Управление ресурсами в ОС

Для развития любого процесса, как системного, так и прикладного, требуются некоторые ресурсы. Одни из них, в частности память и время центрального процессора, являются главными и нужны всегда. Потребность в других, например в устройствах ввода-вывода или в конкретных данных, зависит от процесса и выполняемых им в конкретный момент действий.

За выделение ресурсов и управление ими отвечает операционная система. Она может выделять ресурсы статически при инициализации процесса или динамически в ходе его развития.

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

Целесообразно понятие ресурсов системы обобщить и разделить их все на два класса:

  1. Воспроизводимые ( повторно используемые (Reusable Resource, RR), последовательно используемые или системные (System Resource, SR), ресурсы)

При использовании допустимо многократное выполнение действий запрос-использование-освобождение.

Ресурс SR – конечное множество идентичных единиц со следующими свойствами:

  • число единиц ресурса постоянно
  • каждая единица ресурса или доступна, или распределена одному и только одному процессу
  • процесс может освободить единицу ресурса (сделать ее доступной), только если он ранее получил эту единицу

Примеры: ОП, ВП, периферийные устройства, процессоры, программное и информационное обеспечение (файлы данных, таблицы)

2. Потребляемые (или расходуемые, ресурсы (Consumable Resource, CR)).

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

Расходуемые ресурсы (CR) отличаются от ресурсов типа SR в нескольких важных отношениях

  • Число доступных единиц некоторого ресурса типа CR изменяется по мере того, как выполняющимися процессами они расходуются (приобретаются) и освобождаются (производятся).
  • В общем случае число единиц расходуемых ресурсов является потенциально неограниченным, поскольку процесс-производитель может достаточно долго увеличивать число единиц ресурса, освобождая одну или более единиц, которые он создал.
  • Процесс-потребитель уменьшает число единиц ресурса, сначала запрашивая и затем приобретая (потребляя) одну или более единиц. Единицы ресурса, которые приобретены, в общем случае не возвращаются ресурсу, а потребляются (расходуются). Эти свойства потребляемых ресурсов присущи многим синхронизирующим сигналам, сообщениям и данным, порождаемым как аппаратурой, так и программным обеспечением, и могут рассматриваться как ресурсы типа CR. В их число входят: прерывания от таймера и устройств ввода-вывода; сигналы синхронизации процессов; сообщения, содержащие запросы на различные виды обслуживания или данные, а также соответствующие ответы.

Дескриптор ресурса

Каждый класс воспроизводимых (повторно используемых) ресурсов требует для описания по крайней мере три компоненты:

Имя ресурса Символическое или числовое имя ресурса
Ёмкость Включает число и идентификацию доступных и занятых единиц ресурса
Очередь ожидания Содержит список блокированных процессов с неудовлетворенными запросами на ресурс
Указатель на распределитель Ответственен за принятие решения, когда и который из запросов на ресурс должен быть удовлетворен

Части воспроизводимых ресурсов могут быть освобождены или возвращены в опись ресурса, только если они были предварительно приобретены.

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

Для каждого класса сообщений в данный момент времени существуют:

Имя ресурса Символическое или числовое имя сообщения
Список сообщений Список сообщений, которые были выданы, но не было получены (потреблены)
Очередь ожидания процессов Содержит список (возможно пустой) процессов с неудовлетворенными запросами на ресурс
Указатель на распределитель Распределяет сообщения получателям

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: