Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_ОС.doc
Скачиваний:
23
Добавлен:
20.09.2019
Размер:
459.26 Кб
Скачать
  1. Распределение ресурсов между параллельными процессами. Проблемы, возникающие при управлении параллельными процессами.

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

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

При управлении асинхронными параллельными процессами возникает две проблемы:

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

  2. Проблема взаимной блокировки – тупика («смертельное объятие»-deadlock).

Важным понятием процессов является понятие «критическая секция» программы. Критическая секция – это часть программы, в которой осуществляется доступ к разделяемым данным синхронизации. Чтобы исключить ситуацию, когда два или более процессов обрабатывают разделяемые данные, необходимо сделать так, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.

Распределение ресурсов между параллельными процессами.

Простая тупиковая ситуация возникает для группы общих ресурсов (тупик – «смертельное объятие»). Программа 1, захватив ресурс 1, для продолжения работы нуждается в ресурсе 2, который захватила и удерживает программа 2, для завершения работы которой, в свою очередь, требуется ресурс 1, удерживаемый программой 1.

Таким образом, подсистема УП асинхронными параллельными процессами должна обеспечить решение двух следующих задач:

1. Синхронизацию и кооперирование процессов.

2. Предотвращение взаимной блокировки процессов по ресурсам.

Задача синхронизации АПП в ОС решается методом взаимоисключения процессов при выполнении их на критических участках. Для взаимоисключения процессов на критических участках используются три средства:

1. Примитивы взаимоисключения.

2. Семафоры.

3. Мониторы.

  1. Понятие «прерывание». Классификация типов прерываний.

Прерывание – это событие/сигнал, привлекающий внимание ЦП и заставляющий его изменить текущий порядок исполнения команд процесса. Существуют аппаратные и программные прерывания.

Аппаратные прерывания инициируются аппаратурой (например, сигнал микросхемы таймера в IBM PC вырабатывается 18.2 раза в секунду), сигналом принтера, нажатием клавиш клавиатуры и многими другими причинами.

Программные прерывания инициируются процессом и на самом деле ничего не прерывают. Это обычные процедуры, которые используются программами для выполнения стандартной рутинной работы. Однако эти программы содержатся в ОС, и механизм прерываний дает возможность обратиться к ним из программ пользователей. Программные прерывания могут выдаваться внутри друг друга (быть вложенными). Например, аппаратные прерывания могут возникнуть при выполнении программных прерываний. Когда разрешенное прерывание вызывается, ЦП оставляет свою работу, выполняет прерывание, а затем возвращается в место прерывания. Управляет прерываниями обработчик прерываний (Interrupt Handler).

Обработка прерываний состоит в следующем:

  1. При возникновении прерывания управление передается в ОС.

  2. ОС запоминает состояние прерванного процесса (обычно в PCB прерванного процесса).

  3. ОС анализирует тип прерывания и передает управление соответствующему обработчику прерываний.

  4. После обработки прерывания ОС либо продолжает выполнять прерванный процесс, либо запускает готовый процесс с наивысшим приоритетом.

В различных ЭВМ существует различный набор типов прерываний, которые можно разделить на 6 классов.

  1. Программы-прерывания по системной директиве. Инициатор – активный процесс, выполнивший команду SVC (обращение к супервизору), то есть запрос на предоставление ОС какой-либо системной вычислительной услуги.

  2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).

  3. Внешние прерывания. Причиной их является нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе или сигнала от модема.

  4. Прерывание по рестарту. Нажатие оператором на панели управления кнопки рестарта или Reset.

  5. Логические прерывания по контролю программы вызываются программными ошибками, обнаруженными при выполнении программы (деление на ноль, попытка выполнить привилегированную команду в пользовательском режиме, неверный код операции, защита памяти и т.д.).

  6. Прерывания по контролю машины вызываются аппаратными ошибками.

Планирование процессов включает в себя решение следующих задач:

  1. Определение момента времени для смены выполняемого процесса.

  2. Выбор процесса на выполнение из очереди готовых процессов.

  3. Переключение контекстов «старого» и «нового» процессов.

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

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