Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS_2015.docx
Скачиваний:
442
Добавлен:
11.05.2015
Размер:
2.07 Mб
Скачать

43.Специальные прерывания (особые случаи, исключения) в микропроцессорах.

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

Прерывания (interruption) – это штатные ситуации, возникающие при поступлении соответствующих команд (программные прерывания) или внешних запросов (аппаратные прерывания).

Кроме того, с помощью ОС удобно осуществлять обработку отказов аппаратуры и обработку ошибок программного обеспечения, т.е. нештатных ситуаций (ошибок), возникающих при работе процессора. Такие нештатные ситуации называют исключениями (exeption), а их обработку с помощью ОС путем автоматического переходав системный режим в ходе выполнения прикладной программы в пользовательском режиме – обработкой специального прерывания или прерывания при возникновении непредусмотренной (исключительной) ситуации. Действия при переходе к такой обработке общие для всех случаев и аналогичны действиям, выполняемым при переходе к обработке прерываний.

Исключения делятся на ошибки (faults), ловушки (traps) и отказы (aborts).

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

Ловушка – это исключение,которое выявляетсяпосле выполнения команды. Примером ловушки может служить команда INTO в МП Intel 80x86, которая реализует исключение с номером n=4 в случае, если в регистре флагов значениепризнака переполнения OF=1. При обслуживании ловушки в качестве адреса возврата сохраняется адрес команды, следующей за командой, вызвавшей данное исключение.

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

44.Мультипрограммный режим работы микропроцессоров.

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

Мультизадачность имеет несколько достоинств:

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

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

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

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

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

Рисунок 69 – Распределение памяти между задачами

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

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

Возможные состояния задачи можно разделить в на дватипа: пассивное и активное. Активное состояние подразделяется на состояния выполнения, готовности и ожидания. Эти состояния характеризуются следующими свойствами:

  1. пассивное состояние. Запуск еще не производился или работауже завершена;

  2. состояние выполнения (прогона). Выполняются команды программы;

  3. состояние готовности. Возможно выполнение любой команды (в ходе выполнения процессором команд другой задачи);

  4. состояние ожидания. Ожидается генерация некоторых условий, например возникновение прерывания. До генерации этого условия следующую команду выполнять нельзя.

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

Рисунок 70 – Диаграмма изменения состояний задачи

При запуске задачи с помощью системного вызова (СТАРТ) устанавливается состояние готовности. В большинстве задач в этом состоянии ожидается начало выполнения команд. Если в задаче, находящейся в состоянии выполнения, происходит обращение к команде, выполнение которой возможно после генерации некоторых условий, выполнение приостанавливается, и задача с помощью системного вызова (ОЖИДАНИЕ) переходит в состояние ожидания. Из состояния ожидания задача переходит в состояние готовности, если генерируется ожидаемое задачей условие. Когда выполнение команд полностью закончено, задача с помощью системного вызова (ОКОНЧАНИЕ) переходит в пассивное состояние. В обоих случаях, когда задача переходит из состояния выполнения в состояние ожидания или пассивное состяние, выбирается одна из задач, находящихся в состоянии готовности, и переводится в состояние выполнения.

Выбор задачи зависит от стратегии планирования выполнения задач, реализуемой программой управления задачей. Существуют различные стратегии планирования выполнения задач. Широко используется метод, по которому первой выбирается задача, находившаяся в состоянии выполнения непосредственно перед последней выполненной задачей. Замена задачи в состоянии выполнения называется переключением задач.

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

Задача, которая начинает выполняться по требованию операционной системы, называется планируемой программно. В мультизадачной системе обычно имеется оба типа планирования задач. Например, пользовательские задачи, разделяющие МП, планируются программно операционной системой. Некоторые системные задачи, например ввод с клавиатуры или другой ввод/вывод, обычно планируется прерыванием, чтобы обслужить периферийные устройства в реальном времени (в пределах гарантированного времени реакции).

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

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