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

9. Механизмы синхронизации. Свойства и классификация

Механизмы синхронизации обеспечивают выполнение синхронных правил. Реализация синхронизирующих правил осуществляется с помощью механизмов синхронизации. Различаются механизмы синхронизации по:

1) выполняемым действиям

2) по степени приближённости к машинным командам

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

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

К низкоуровневым относится TS (test & set) — реализует проверку и установку состояния общей переменной в рамках одной машинной операции, что исключает возможность вмешательства других процессов. Такие варианты используются редко, или как базовые средства ОС.

Основные свойства.

Для осознанного выбора конкретного механизма необходимо зафиксировать требования к синхронизации. Как правило, механизмы сравнивают:

1) простота использования — определяется простотой синтаксиса и семантикой механизма синхронизации.

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

3) проверяемость и понимаемость — определяет возможность применения формальных методов анализа

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

5) надёжность — определяет вероятность правильной работы механизма как в условиях предусмотренной спецификации, так и в аномальных условиях.

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

10. Механизмы синхронизации. Использование механизма прерываний

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

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

Такое решение не эффективно, т. к. всё сводится к однозадачному решению.

Указанного недостатка лишена двуступенчатая схема.

11. Механизмы синхронизации. Двухступенчатая схема

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

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

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

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

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

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