Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety oc.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
239.02 Кб
Скачать

9. Способы синхронизации параллельных процессов.

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

Например, пусть методом "разделяй и властвуй" производится распараллеливание сортировки слиянием. Известны оценки сложности такой сортировки (как функции параметра n — длины последовательности).

При разбиении последовательности на две можно построить граф G и его матрицу следования S (рис. 11.1).

Рис. 11.1. Составление взвешенного информационного графа и матрицы следования

Здесь t — время совместного анализа двух элементов последовательности. Значит, веса вершин t1, t2, t3 определены при заданных n и t.

2. Механизм семафоров.Различают двоичные семафоры, имеющие значения "открыт" и "закрыт", и семафоры-счетчики. "Закрытие" увеличивает их на единицу, "открытие" — уменьшает на единицу.

Анализ задач и, в частности, задач обработки больших массивов данных (баз данных и баз знаний) показал целесообразность совместной реализации этих двух принципов в многопроцессорной вычислительной системе. В одном семафоре, назовем егокомбинированным, в действительности воплощены два семафора: двоичный и счетчик:

В начале считывания из массива выполняется операция Сб := Сб+ 1 ; при окончании считывания — операция Сб := Сб - 1.Значение   означает: семафор C "закрыт по считыванию".

При записи в массив выполняется операция: Са := 1, "закрыть", т.е. семафор C "закрывается по записи". При окончании записи выполняется операция Cа := 0 — "открыть", т.е. семафор C "открывается по записи".

Однако удобства семафора-счетчика могут быть реализованы в процедурах над двоичными семафорами. Т.е. двоичный семафор в действительности более универсален.

11. Механизм диспетчирования.

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

1) сохранение информации о состоянии прерываемой программы;

2) выборка очередной программы для выполнения;

3) определение способности выбранной программы к выполнению;

4) запуск программы с соответствующего места.

Управляющий блок называется блоком управления задачей (БУЗ). Элементы блока управления, где хранятся данные о состоянии задачи:

а) имя программы;

б) адрес обл. сохранения;

в) указатели на элементы системных табл., содержащих информацию о распределении устройств ввода-вывода;

г) информация о выделенной программе обл. памяти;

д) информация состояния, отражающая готовность программы к выполнению;

е) значение приоритетов;

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

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

Диспетчеру передается управление, когда:

1) выполняющаяся прикладная программа отказывается от управления и выдает команду Wait, блокируя свое выполнение, или просто отдает управление системе (блокирует свое выполнение);

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

3) происходит прерывание по времени, свидетельствующее об истечении кванта времени для задачи;

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

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