Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ_спо.doc
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
1.5 Mб
Скачать
  1. Понятие критических секций, основные требования к ним

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

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

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

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

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

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

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

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

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

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

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

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

1) повторно используемые (или системные) ресурсы (типа RR или SR – reusable resource или system resource);

2) потребляемые (или расходуемые) ресурсы (типа CR – consumable resource).

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]