Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции9-й семестр.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
28 Мб
Скачать
☆

Методы синхронизации задач

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

Существуют следующие виды синхронизации:

Синхронизация по данным.

Синхронизация по использованию ресурсов.

Синхронизация с внешними событиями.

Синхронизация по времени.

Синхронизация по данным.

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

Синхронное сообщение — программа пересылает данные и приостанавливает

свою работу до получения ответа от другой про­граммы.

Асинхронное сообщение — программа, выполнив передачу, продолжает работу не дожидаясь ответа. Механизмы передачи данных:

1. Почтовые ящики.

2. Очередь сообщений.

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

Новое сообщение стирает старое. Поэтому если программа не успела считать данные, то информация будет потеряна.

Очередь сообщений. Каждая программа имеет буфер памяти, размер которой меняется от количества сообщений.

Здесь сообщения не теряются, а очередь сообщений ограничена оперативной памятью

Синхронизация по использованию ресурсов.

Ресурс — физическое устройство (печатающее или дисковое) или область оперативной памяти.

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

Подходы к синхронизации:

1. Использование специальной программы (сервера ресурса), которая принимает запросы, упорядочивает запросы, обрабатывает эти запросы, т.е. управляет запросами.

Для печатающего устройства — система спулинга — управление очере­дью печати. Спулинг разделяет запросы на печать.

2. Использование семафоров.

Семафор - специальная переменная, которая принимает значения 0 и 1. Используются также «счетные семафоры».

Если семафор принимает значения 0 - ресурс занят или 1, то - ресурс свободен.

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

В случае «счетных семафоров»:

0 - занят ресурс;

не 0 - свободно.

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

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

«Смертельный» захват.

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

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