Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[Проектирование операционных систем] - Курс лек....doc
Скачиваний:
22
Добавлен:
14.11.2018
Размер:
347.14 Кб
Скачать

Задача «производитель-потребитель»

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

  • Выполнять требования задачи взаимного исключения по отношению к области памяти сообщения.

  • Учитывать заполненность области памяти, влияющей на возможность передачи или получения сообщения.

<...>

Блокирование попытки означает перевод процесса в состояние ожидание <...>

Отклонение попытки означает оповещение процесса о невозможности выполнения действия без перевода в состояние ожидания.

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

Модификации данной задачи

Наличие более одного производителя или более одного потребителя.

Двусторонняя связь через одну и ту же область.

Использование нескольких областей.

Использование областей, размер которых позволяет хранить несколько сообщений.

Задача «читатели-писатели»

В отношении некоторой области памяти, являющейся критическим ресурсом, выделяется два типа процессов:

  • Процессы – читатели. Они считывают одновременно информацию из области, если это допускается конкретным устройством.

  • Процессы – писатели. Записывают информацию в некоторую область, исключая друг-друга, а так же читателей.

Читатели или писатели могут иметь приоритет над процессами другого типа.

Если приоритетом обладают читатели, то писатели не получат ресурс до тех пор, пока он занят хотя бы одним читателем.

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

Задача «обедающие философы»

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

Пусть имеются три параллельных процесса П1, П2 и П3, а так же три ресурса Р1-Р3.

Процессу П1 в активном состояние требуются Р1 и Р2, процессу П2 – Р2 и Р3, а процессу П3 – Р3 и Р1.

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

Возможные опасности:

  • Полная взаимоблокировка

  • Постоянная дискриминация одного из процессов.

Механизмы синхронизации Критерии оценки механизмов синхронизации

  • Простота использования (определяется простотой синтаксиса и семантики, структура примитива должна быть простой, интуитивно понятной).

  • Гибкость – способность механизма быть использованным для реализации многих известных типов отношений между процессами в ясной и недвусмысленной форме.

  • Проверяемость – определяется возможностью применения формального метода анализа.

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

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

Для реального сравнения механизмов синхронизации необходимо проводить их испытания на рассмотренных ранее типовых задачах синхронизации.