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

24.Вытесняющие и не вытесняющие алгоритмы планирования.

25. Проблемы синхронизации процессов. Способы синхронизации

В многозадачной ОС при взаимодействии процессов друг с другом при обмене потоками возникает проблема взаимодействия.Она нужна для исключения таких явлений как гонки и тупики.Прога печати файлов.(см рисунок) Процессы-клиенты читают эту переменную, записывают в соответствующую позицию файла "заказов" имя своего файла и наращивают значение NEXT на единицу. Предположим, что в некоторый момент процесс R решил распечатать свой файл, для этого он прочитал значение переменной NEXT, но поместить имя файла не успел, так как его выполнение было прервано (например, в следствие исчерпания кванта). Очередной процесс S, желающий распечатать файл, прочитал то же самое значение переменной NEXT, поместил в четвертую позицию имя своего файла. Когда в очередной раз управление будет передано процессу R, то он, продолжая свое выполнение, в полном соответствии со значением текущей свободной позиции, полученным во время предыдущей итерации, запишет имя файла также в позицию 4, поверх имени файла процесса S. Таким образом, процесс S никогда не увидит свой файл распечатанным.

ситуация когда 2 и более процесса обрабатывают разделяемые данные, и результат зависит от соотношения скоростей процессов называется гонками. Критическая секция - часть проги, которая осуществляет доступ к разделяемым данным.Правило для избежание конфликтов: необходимо обеспечить, чтобы в каждый момент временив критической секции, связанной с разделяемым ресурсом , находился 1 процесс. Способы реализации взаимного исключения.1)Позволить процессу, находящемуся в критич секции, запрещать все прерывания. Недостаток аналогично невытесняющему режиму. 2) Использование блокирующих переменных.С кажд разделяемым ресурсом связывается двоичная переменная, котора яприносит значе-ние 1-ресурс свободен, 0-занят.Перед входом в критическую секцию процесс проверяет значение переменной, если он =0, то проверка циклически повторяется, если ресурс свободен, то значение устанавливается в ноль и процесс переходит в критическую секции. Недостаток: операции проверки и установки блокирующей переменной должна быть неделимой в течении времени, когда процесс находится в критической секции, а другой прцесс , которому требуется тот же ресурс будет выполнять действия по опросу блокирующей переменной. 3)Аппарат событий. Используется системными функциями WAIT(x) и POST(x), где x - идентификатор некоторого события. Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(х). Эта функция переводит активный процесс в состояние ОЖИДАНИЕ и делает отметку в его дескрипторе о том, что процесс ожидает события х. Процесс, который в это время использует ресурс х, после выхода из критической секции выполняет системную функцию POST(х), в результате чего операционная система просматривает очередь ожидающих процес-сов и переводит процесс, ожидающий события х, в состояние ГОТОВНОСТЬ