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

7. Понятие тупиковой ситуации при выполнении параллельных вычислительных процессов

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

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

? Эта ситуация называется тупиком, дедлоком, или клинчем.

Ресурсы системы разделяют на два класса:

• повторно используемые (Reusable Resource, RR), или системные (System Resource, SR), ресурсы;

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

? Системные ресурсы (SR) – конечное множество идентичных единиц некоторого вида ресурсов, обладающих свойствами:

• число единиц ресурса в системе неизменно;

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

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

? Особенности расходуемых ресурсов (CR):

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

• процесс «потребитель» уменьшает число единиц ресурса, сначала запрашивая и затем приобретая (потребляя) одну или более единиц.

? Для исследования параллельных процессов и проблемы тупиков было разработано несколько моделей. Одна из них – модель повторно используемых ресурсов Холта. Согласно этой модели система представляется как набор (множество) процессов и набор ресурсов, каждый из ресурсов состоит из фиксированного числа единиц. Любой процесс может изменять состояние системы путем выдачи запроса на получение или освобождение единицы ресурса.

? В графической форме процессы и ресурсы представляются квадратами и кружками соответственно. Каждый кружок содержит некоторое количество маркеров (фишек) в соответствии с существующим количеством единиц этого ресурса.

? Дуга из «процесса» на «ресурс» означает запрос одной единицы этого ресурса. Дуга из «ресурса» на «процесс» – выделение ресурса процессу.

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

? Удовлетворение запроса Пр1 приведет к тупиковой ситуации: Пр1 не сможет продолжиться до тех пор, пока Пр2 не освободит единицу ресурса R1, а процесс Пр2 не сможет продолжиться до тех пор, пока Пр1 не освободит единицу R2.

? Пример тупика на ресурсах типа CR ? Пусть имеется три процесса Пр1, Пр2 и ПрЗ, которые вырабатывают сообщения Ml, M2 и МЗ, соответственно. Эти сообщения представляют собой ресурсы типа CR. Пусть процесс Пр1 является потребителем сообщения МЗ, процесс Пр2 должен получить сообщение Ml, а ПрЗ – сообщение М2 от процесса Пр2. Таким образом, каждый из этих трех процессов является и поставщиком, и потребителем одновременно, и вместе они образуют кольцевую систему (рис. 7.2) передачи сообщений через почтовые ящики (ПЯ).

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

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