Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО: Ответы к экзамену.doc
Скачиваний:
33
Добавлен:
17.04.2019
Размер:
376.32 Кб
Скачать

12. Понятие критических секций, основные требования к ним.

Места в программах, в которых происходит обращение к критическим ресурсам, называются критическими секциями (Critical Section – CS).

требования к критическим секциям:

  • в любой момент времени только один процесс должен находиться в своей критической секции;

  • ни один процесс не должен находиться в своей критической секции бесконечно долго;

ни один процесс не должен ждать бесконечно долго входа в свой критический интервал. В частности:

– никакой процесс, бесконечно долго находящийся вне своей критической секции (что допустимо), не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции. Другими словами, процесс, работающий вне своей критической секции, не должен блокировать критическую секцию другого процесса;

– если два процесса хотят войти в свои критические интервалы, то принятие решения о том, кто первым войдет в критическую секцию, не должно откладываться бесконечно долго;

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

13. Понятие тупика, условия его возникновения.

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

Для того чтобы возник тупик, необходимо, чтобы одновременно выполнялись четыре условия:

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

  2. ожидания, при котором процесс, запросивший ресурс, ждёт до тех пор, пока запрос не будет удовлетворен, при этом удерживая ранее полученные ресурсы;

  3. отсутствия перераспределения, при котором ресурсы нельзя отобрать у процесса, если они ему уже выделены;

4) кругового ожидания, при котором существует замкнутая цепь процессов, каждый из которых ждёт ресурс, удерживаемый его предшественником в этой цепи

14. Методы борьбы с тупиками. Описание каждого метода.

Борьба с тупиковыми ситуациями основывается на одной из трех стратегий:

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

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

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

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

  • распознавание тупика с последующим восстановлением.

Существуют следующие методы восстановления:

1. принудительный перезапуск системы, характеризующийся потерей информации обо всех процессах, существовавших до перезапуска;

2. принудительное завершение процессов, находящихся в тупике;

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

4. перезапуск процессов, находящихся в тупике, с некоторой контрольной точки, то есть из состояния, предшествовавшего запросу на ресурс;

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