Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
43.Специальные прерывания (особые случаи, исключения) в микропроцессорах.Помимо обработки системного вызова в системном режиме осуществляется обработка запросов прерывания от периферийных устройств. Прерывания(interruption) – это штатные ситуации, возникающие при поступлении соответствующих команд (программные прерывания) или внешних запросов (аппаратные прерывания). Кроме того, с помощью ОС удобно осуществлять обработку отказов аппаратуры и обработку ошибок программного обеспечения, т.е. нештатных ситуаций (ошибок), возникающих при работе процессора. Такие нештатные ситуации называют исключениями(exeption), а их обработку с помощью ОС путем автоматического перехода в системный режим в ходе выполнения прикладной программы в пользовательском режиме – обработкой специальногопрерыванияили прерыванияпривозникновениинепредусмотренной(исключительной)ситуации. Действия при переходе к такой обработке общие для всех случаев и аналогичны действиям, выполняемым при переходе к обработке прерываний. Исключения делятся на ошибки (faults), ловушки (traps) и отказы (aborts). Ошибкивыявляются и обслуживаются до выполнения команды, которая является причиной их возникновения. Примером ошибки может служить ситуация, возникающая при обращении очередной команды к сегменту, отсутствующим в основной памяти. В этом случае в качестве адреса возврата к прерванной программе сохраняется адрес команды, выполнение которой вызвало данное исключение. Ловушка– это исключение, которое выявляется после выполнения команды. Примером ловушки может служить команда INTO в МП Intel 80x86, которая реализует исключение с номером n=4 в случае, если в регистре флагов значение признака переполнения OF=1. При обслуживании ловушки в качестве адреса возврата сохраняется адрес команды, следующей за командой, вызвавшей данное исключение. Ошибки и ловушки предусматривают продолжение нормального выполнения программы после завершения их обслуживания. Отказысообщают о возникновении серьезных нарушений в работе системы. Примером таких нарушений может быть неисправность аппаратуры или возникновение исключения при обслуживании ранее поступившего запроса. Отказ не предусматривает продолжение выполнения прерванной программы, поэтому при его возникновении обычно производится повторный запуск процессора. 44.Мультипрограммный режим работы микропроцессоров.Под задачейпонимается процесс обработки информации. В МП процесс обработки информации реализуется путем выполнения последовательности команд программы, т.е задаче соответствует выполняемая процессором программа, которая называется процессом. Многозадачностьюназывается такой способ организации работы системы, при котором в ее памяти одновременно содержатся программы и данные для выполнения нескольких задач. Параллельное (одновременное) выполнение нескольких процессов (задач) называется мультипрограммнымрежимом. Другими словами, мультипрограммный режим – это такой режим работы МП, в котором реализуется мультизадачность. Мультизадачность имеет несколько достоинств: лучшее использование МП. Мультизадачность повышает производительность системы, если каждая отдельная задача не захватывает МП полностью. Процессор может выбрать из ожидающих задач новую задачу, если выполнение текущей задачи заблокировано; обеспечение надежности. В системе могут быть автономные, не связанные друг с другом функции. Оформление этих функции в виде задач позволяет исключить нежелательные воздействия между ними за счет ограничения действия ошибок управляемой областью, которой является задача; упрощение отладки, разработки и сопровождение программ. Обеспечивается наличие четких границ (интерфейсов) между задачами в системе. Однозадачная архитектура поддерживает только один процесс, т.е. однопрограммный режим, так как процессор в каждый момент времени может выполнять команды только одной программы. При этом команды любой другой программы не выполняются. Мультизадачная архитектура фактически поддерживает несколько процессов, т.е. мультипрограммный режим. В этом режиме команды всех задач выполняются с использованием процессора в режиме разделения времени. При этом выполнение задачи может быть приостановлено на любой команде, поэтому необходимо обеспечить ее перезапуск. Каждой задаче отводится отдельная область памяти (рис. 69), в том числе и стек для хранения всех данных, используемых в задаче. Кроме того, в памяти предусмотрены ячейки для хранения содержимого программного счетчика, регистра состояния и регистров общего назначения процессора. Рисунок 69 – Распределение памяти между задачами Когда выполнение задачи приостанавливается, в эти ячейки помещаются значения содержимого этих регистров, в регистры загружаются значения, соответствующие новой задаче, после чего начинается выполнение задачи. При возобновлении выполнения задачи содержимое этих ячеек пересылается в программный счетчик, регистр состояния и РОН процессора, после чего выполнение задачи продолжается. Совокупность этих ячеек называется блокомуправлениязадачей. Обычно помимо содержимого указанных регистров в них может храниться и другая информация. Таким образом, мультипрограммный режим реализуется путем переключенияпроцессорасоднойзадачипадругую. Однако в любой момент времени процессор выполняет только одну задачу – она является активной, а все остальные задачи в системе пассивны. Возможные состояния задачи можно разделить в на два типа: пассивное и активное. Активное состояние подразделяется на состояния выполнения, готовности и ожидания. Эти состояния характеризуются следующими свойствами:
В ОС должны быть предусмотрены программа управления задачей, которая управляет переходом задачи из одного состояния в другое. Переход осуществляется по диаграмме, показанной на рис. 70 Рисунок 70 – Диаграмма изменения состояний задачи При запуске задачи с помощью системного вызова (СТАРТ) устанавливается состояние готовности. В большинстве задач в этом состоянии ожидается начало выполнения команд. Если в задаче, находящейся в состоянии выполнения, происходит обращение к команде, выполнение которой возможно после генерации некоторых условий, выполнение приостанавливается, и задача с помощью системного вызова (ОЖИДАНИЕ) переходит в состояние ожидания. Из состояния ожидания задача переходит в состояние готовности, если генерируется ожидаемое задачей условие. Когда выполнение команд полностью закончено, задача с помощью системного вызова (ОКОНЧАНИЕ) переходит в пассивное состояние. В обоих случаях, когда задача переходит из состояния выполнения в состояние ожидания или пассивное состяние, выбирается одна из задач, находящихся в состоянии готовности, и переводится в состояние выполнения. Выбор задачи зависит от стратегии планирования выполнения задач, реализуемой программой управления задачей. Существуют различные стратегии планирования выполнения задач. Широко используется метод, по которому первой выбирается задача, находившаяся в состоянии выполнения непосредственно перед последней выполненной задачей. Замена задачи в состоянии выполнения называется переключениемзадач. Имеются аппаратные и программные причины переключения задач. Необходимость переключения может возникнуть в результате внешнего сигнала прерывания или по требованию операционной системы, управляющей разделением времени МП. Задача, которая начинает выполняться в результате прерывания, называется планируемойаппаратно(или по прерыванию). Задача, которая начинает выполняться по требованию операционной системы, называется планируемойпрограммно. В мультизадачной системе обычно имеется оба типа планирования задач. Например, пользовательские задачи, разделяющие МП, планируются программно операционной системой. Некоторые системные задачи, например ввод с клавиатуры или другой ввод/вывод, обычно планируется прерыванием, чтобы обслужить периферийные устройства в реальном времени (в пределах гарантированного времени реакции). При переключении задач в блок управления выполняемой задачей необходимо переслать содержимое программного счетчика, регистра состояния и РОН, а из блока управления новой задачей считать содержимое этих регистров. Для реализации этих действий программными средствами требуется много времени. Кроме того, для управления задачей требуются различные системные вызовы, на выполнение которых также уходит много времени. Таким образом, реализация мультипрограммного режима сопровождается затратами времени, дополнительными по отношению ко времени, требуемому для выполнения основной работы. В целях сокращения времени основные операции по переключению задач желательно выполнять автоматически аппаратными средствами |