Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ШПОРА БОС!.docx
Скачиваний:
1
Добавлен:
18.11.2019
Размер:
21.74 Кб
Скачать

Вопрос8Синхронизация параллельных задач

В многозадачной ОС с вытеснением задач часто возникает необходимость синхронизации параллельно выполняющихся задач.(пример: 2 задачи совместно выполняют сложную операцию над данными причем эта операция разбивается на 3 простых операции. Две из которых могут выполняются параллельно, а для реализации третьей необходимо чтобы 2 операции были уже выполнены.Задача 1 закончив выполнение операции 1 должна убедиться , что задача 2 завершила выполнение операции 2 и только после этого задача 1 может приступить к выполнению операции 3.Реализовать этот механизм можно например следующим образом: задача 2 завершив операцию 2 устанавливает некоторый знак, сигнализирующий о том, что операция 2 уже выполнена. Задача 1 завершив операцию 1 должно попытаться обнаружить этот знак и если он обнаружен задача 1 может начинать выполнение операции 3. Если знак не обнаружен задача 1 должна подождать некоторое время и попробовать обнаружить знак снова. Этот метод может иметь недостатки т.к задача 1 запрашивает часть процессорного времени на поиск знаков выставл.зад.2 Если время ожидания между 2 последними попытками обнаружения знака выбрано недостаточно большая доля процессорного времени, получаемого задачей 1 будет достаточно велика, что приведет к снижению общей производительности ОС. Если время ожидания велико, это вызвано неоправданное снижение быстродействия задачи 1. Чтобы избежать этой ситуации во многих ОС предусматриваются специальные функции, позволяющие задачам ждать появления знака.)

Вопрос 9Обеспечение корректности совместного доступа к объектам

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

Вопрос10Предотвращение тупиковых ситуаций

Тупиковая ситуация может возникнуть, когда несколько программ одновременно пытаются открыть несколько одних и тех же объектов в режиме монопольного доступа, если одна программа открыла одну часть рассм. Множество объектов, а другая программа другую часть ни одна из программ не сможет открыть остальные объекты пока другая программа их не закроет, если функции закрытия объектов в подобных ситуациях не предусмотрены ни в одной их программ ситуация становится тупиковой, т.е обе программы находятся в режиме ожидания. Существует ряд методов борьбы с тупиковыми ситуациями. Если программа для выполнения некоторой операции должно открыть в монопольном режиме несколько объектов, но не смогла этого сделать, программа должна закрыть все уже открытые объекты подождать некоторое время и повторить всю операцию сначала. Наилучшие результаты достигаются если время ожидания выбирается случайно. (Архитектура Windows)