Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по Операционным системам.docx
Скачиваний:
3
Добавлен:
18.09.2019
Размер:
156 Кб
Скачать
  1. Два процесса называются параллельными, если их выполнение может перекрываться во времени.

В мультипроцессорной системе достигается физическая параллельность.

Когда один процессор – логическая параллельность.

Виды взаимодействия процессов:

  • обмен информацией

  • конкуренция за доступ к ресурсам

  • согласование действий процессов

Механизмы взаимодействия параллельных процессов:

  • разделяемые переменные

  • передача сообщений

Способы передачи сообщений:

  • разделяемая память

  • каналы – один процесс пишет, другой читает

  • сокет – поддерживаемый ядром механизм, скрывающий особенности среды и позволяющий единообразно взаимодействовать процессам

  • почтовые ящики

  • вызов удаленной процедуры

Проблемы параллельных процессов:

  • состояние гонок – несколько процессов считывают или записывают одновременно

  • блокировки и взаимоблокировки при доступе к ресурсам

  • трудно обнаруживаемые программные ошибки

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

Критический ресурс – ресурс, которому в каждый момент времени возможен доступ только одного процесса.

Доступ к такому ресурсу осуществляется в критической секции.

Критическая секция – часть кода, которая в любой момент времени может выполняться только одним процессом.

Взаимное исключение может привести:

  • к взаимной блокировке

  • голоданию

Для правильной совместной работы параллельных процессов необходимо:

  • два процесса не должны одновременно находиться в критической секции

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

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

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

  • когда в критической секции нет ни одного процесса, любой процесс может получить доступ к ней

  • процесс остается в критической секции только в течении ограниченного времени

Подходы к достижению взаимного исключения:

  • Программный – сам процесс ответственен за достижение взаимного исключения

  • Аппаратный – с использованием специальных машинных команд

  • Поддержка со стороны ОС или среды программирования

  1. Аппаратные способы достижения взаимного исключения.

Завершение прерываний – процессор переключается на другой процесс только по прерыванию

Недостатки аппаратного способа:

  • он применим только в однопроцессорных системах

  • важные события ввода вывода могут быть не отобраны

Программные способы достижения взаимного исключения.

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

Недостатки программного способа:

  • те же что и при организации доступа к общим переменным

  • если после выхода из критической ситуации процесс по какой-либо причине не установит значение переменной блокировки равным нулю, то другие процессы не смогут войти в критическую ситуацию

  • непроизводительный расход времени процессора