Слово состояние программы что это

Слово состояния программы

В любой момент выполнения программы ее состояние представляется значением так называемого «слова состояния программы» или PSW (Programm Status Word).
Информация, составляющая PSW, отражает состояние ряда управляющих регистров машины. В момент прерывания текущее значение PSW помещается в основную память в двойное слово, адрес которого зависит от причины прерывания, и с этого момента называется старое PSW.
Для обработки полей информации в PSW предусмотрены программные средства (имеется, например, команда «загрузить PSW» — содержимое двойного слова из основной памяти сделать текущим PSW).
Общее назначение PSW — управление порядком выборки команд и фиксация состояния системы. Данную фиксацию состояния по аналогии можно сравнить с тем, как на кожу воздействует крем для солярия . Во-первых, он защищает кожу от повреждений, а во-вторых, сохраняет ее от преждевременного старения.
Все управления выполнением команд программы происходят с помощью PSW, в котором содержится, в частности, информация об адресе очередной команды и признак результата выполнения предыдущей команды. Если очередная выполняемая команда программы не является командой передачи управления и не вызывает прерывания, команды программы выполняются в порядке их расположения в основной памяти.

Имя состояния (6 класс, видеоурок-презентация)


Проблемная и управляющая программа
Программа пользователя, называемая также проблемной программой, выполняется под управлением операционной системы.
Начальные адреса памяти постоянно заняты одним из элементов операционной системы, называемым «супервизор». Остальная часть основной памяти предоставляется в распоряжение одной или нескольких проблемных программ.
В начале функционирования системы управление получает супервизор, который в определенные моменты времени запускает проблемные программы. Команды проблемной программы выполняются одна за другой в порядке их расположения в основной памяти. Эта последовательность выполнения команд нарушается при возникновении следующих ситуаций:
— очередная выполняемая команда программы является одной из специальных команд передачи управления;
— очередная выполняемая команда является командой обращения к супервизору;
— при выполнении команды происходит прерывание.
Прерывание возникает, например, из-за того, что процессор не может правильно выполнить команду, или при наступлении некоторого события, внешнего по отношению к программе.
Для организации реакции на ситуации, вызывающие прерывания, в момент возникновения прерывания фиксируется специальная управляющая информация.
В первой ситуации программа продолжает выполняться. Во второй и третьей ситуациях выполнение программы пользователя прекращается и начинает выполняться программа супервизор.

Источник: smages.com

1.4 Понятие о состоянии процессора (программы). Вектор (слово) состояния

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

Step 7. Немного философии и слово состояния.

Понятие состояния процессора (состояния программы) за­нимает важное место в организации вычислительного процесса в ЭВМ.

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

Состоянием процессора (программы) после данного такта или после выполнения данной команды, строго говоря, следует считать совокупность состояний в соответствующий момент вре­мени всех запоминающих элементов устройства — триггеров, регистров, ячеек памяти.

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

Совокупность значений этих информационных элементов по­лучила название вектора состояния или слова состояния процессора (программы).

Рис. 1.4. Вектор состояния 8-разрядного микропроцессора К580 (четыре 8-разрядных слова)

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

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

Наборы информационных элементов, образующих векторы состояния, отличаются у ЭВМ разных типов. Наиболее просто он выглядит у микропроцессоров. Например, вектор состояния микропроцессора К580, как это показано на рис. 9.22, включает в себя содержимое 16-разрядного счетчика команд (адрес оче­редной команды); содержимое 8-разрядного регистра признаков, называемое в документации на этот микропроцессор словом состояния процессора, и содержимое 8-разрядного аккумулято­ра АЛУ.

Современные ЭВМ имеют более слож­ные структуры вектора состояния, или, иначе говоря, слова состояния программы.

Использование слова (вектора) состояния — распростра­ненный прием построения управления устройствами вычисли­тельной техники. Во многих устройствах ЭВМ для организации их функционирования формируются свои, специфические слова состояния (или байты состояния), фиксирующие в виде некото­рого кода состояние устройства, например готовность его к вы­полнению задаваемой операции, успешное или неуспешное за­вершение операции и т. д.

Читайте также:
Realtech vr что это за программа

Контрольные вопросы

1. Каково понятие архитектуры ЭВМ?

2. По каким техническим характеристикам осуществляются оценка и вы­бор ЭВМ?

3. Какова связь областей применения ЭВМ и их структур?

4. Каковы основные тенденции развития ЭВМ?

5. Охарактеризуйте понятие машинного парка.

6. Каковы основные принципы построения ЭВМ?

7. Поясните место и роль программного обеспечения ЭВМ.

8. Что представляет собой класс персональных ЭВМ?

9. Назначение и отличительные особенности построения сетевых ком­пьютеров.

Источник: studfile.net

Слово состояния

К сожалению, арифметические вычисления не всегда можно свести к обратной польской записи. Иногда нужно оставить один из операндов в стеке или изменить порядок действий (например, вычислить разность ST0-ST1), или же использовать операнд, хранимый вдалеке от вершины. Чтобы все это стало возможным, команды сопроцессора используют явно заданные аргументы, причем один из них обязательно должен быть вершиной стека. Например, инструкция: fsub ST ( 3), ST вычисляет разность ST ( 3) — ST ( 0 ) (вместо ST0 можно писать просто ST), помещает результат в ST (3) и при этом ничего не делает со стеком. Чтобы инструкция, чьи аргументы указаны явно, освобождала вершину стека, ей необходим суффикс «р», обозначающий команду pop:

fsubp ST(3),ST ; ST(3) = ST(3) — ST(0)

В инструкциях [1] возможен и один операнд, например fsub digit. Такая инструкция понимается, сопроцессором как команда вычесть из вершины стека число digit, которое может занимать 4 или 8 байт обычной памяти. Результат оказывается на вершине стека. Заметим, что ассемблер не примет суффикс «р» в команде

fsubp digit, потому что вычисление разности и немедленное ее удаление из стека — операция бессмысленная, даже для такого «тупицы», как сопроцессор.

Чтобы понять, как работают разные команды сопроцессора, попробуем найти корни квадратного уравнения х 2 + рх + q, вычисляемые по формулам

Rootit2 = -jf/2 ± /О 2 /4 — 2 /^~Ч

Источник: ozlib.com

Слово состояния программы

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

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

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

Основные компоненты PSW

Слово состояния программы следовало бы назвать (как это и сделано в некоторых системах, схожих с Системой 360) Двойным словом состояния программы. PSW фактически представляет собой 64-раз- рядный регистр, подразделяемый, как это показано на рис. 11.1, на несколько полей. Для пользователей обычно представляет интерес содержимое второго слова.

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

Мы начнем с рассмотрения PSW Системы 360. Система 370 имеет два режима управления, определяющие структуру и использование управляющей информации: режим основного управления (ВС) и режим расширенного управления (ЕС). Режим ЕС используется при организации работы с виртуальной памятью.

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

До сих пор дело было представлено так, как будто признак результата и текущее значение счетчика команд находятся в двух различных регистрах специального назначения. Из рис. 11.1 видно, что PC (счетчик команд) и СС (признак результата) в действительности являются составными частями PSW. 24-битовое значение PC располагается в разрядах с 40-го по 63-й PSW. Для хранения признака результата, устанавливаемого последней выполненной арифметической командой или командой сравнения, отведены разряды 34 и 35.

На втором этапе выполнения команды содержимое PC изменяется на значение адреса команды, которую нужно выполнить следующей. Фактически к прежнему содержимому счетчика добавляется длина выполняемой команды в байтах. Если, например, некоторая команда только что выбрана для выполнения по адресу 2000 и имеет длину 6 байтов, то следующая будет выбрана по адресу 2006.

Таким образом, для установки значения PC необходимо знать длину выполняемой в данный момент команды. Нам уже известно, что содержимое первых двух разрядов кода операции команды однозначно определяет ее длину. При выборке команды из памяти эта информация, правда в несколько измененном формате, заносится в разряды 32 и 33 PSW. Содержимое этих разрядов называется кодом длины команды (ILC).

Читайте также:
Программа домашний медиа сервер что это

Рис. 11.1. Формат PSW Системы 360 и режима ВС Системы 370.

ILC представляет собой 2-битовое двоичное число, равное количеству полуслов, из которых состоит команда. В приводимой ниже таблице можно найти значения ILC, соответствующие командам различной длины.

Длина команды (в байтах)

Длина команды (в полусловах)

ILC не может обычно иметь значение 002, однако такой результат иногда получается как следствие наличия ошибки при выполнении некоторых команд.

Рис. 11.2. Формат PSW Системы 370 для режима ЕС.

Нам осталось рассмотреть лишь разряды 36—39 второго слова PSW. Содержимое этих битов называется маской программы, которая будет нами рассмотрена позднее, после обсуждения прерываний. На рис. 11.2 изображен формат PSW для режима ЕС Системы 370. Счетчик команд в этом случае размещается точно так же, как и в предыдущем, т. е. в разрядах 40—63.

Информация о признаке результата и маска программы хранятся теперь в разрядах 18—23 PSW. ILC и некоторые другие компоненты PSW формата ВС при режиме ЕС помещаются в специальные управляющие регистры, рассмотрение которых выходит за пределы данной книги.

Прерывания

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

Рассмотрим в качестве примера выполнение операций ввода- вывода. В Системах 360 и 370 ввод-вывод осуществляется с помощью специальных устройств, называемых каналами. Каналы предназначены для выполнения автономно по отношению к процессору операций ввода-вывода, т. е. передачи данных между основной памятью и периферийными устройствами.

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

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

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

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

Одним из способов изменения обычного порядка выполнения программы является использование команд перехода, изменяющих значение PC. Другим способом является полное изменение содержимого PSW. Поскольку PC является частью PSW, то, изменив содержимое PSW, можно тем самым изменить содержимое счетчика команд, что приведет к очевидным последствиям. Однако изменение содержимого всего PSW может привести к гораздо более серьезным изменениям состояния CPU.

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

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

Это производится с помощью команды Load PSW (ЗАГРУЗКА PSW).

Мы рассмотрели две причины прерываний: выполнение операций ввода-вывода и наличие ошибок в программе. Ниже приведена информация о некоторых других типах прерываний.

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

Читайте также:
Программа bi что это

Обращение к супервизору. В некоторых случаях программа пользователя может обращаться к операционной системе с запросами на выполнение некоторых услуг, непосредственная реализация которых в прикладной программе не допускается. Обращение к системе происходит по команде SVC (Supervisor Call — ОБРАЩЕНИЕ К СУПЕРВИЗОРУ). В результате выполнения этой команды происходит прерывание, после чего управление передается программе, выполняющей заказанные действия.

Статья 395 - Картинка 3

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

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

Дополнительные компоненты PSW

PSW каждой программы содержит, кроме всего прочего, информацию о том, запросы прерываний каких типов действительно могут вызвать прекращение ее выполнения. Например, бит 6 PSW режима ВС (см. рис. 11.1) является маской прерываний ввода-вывода. Если этот бит равен 0, то прерывания от ввода-вывода производиться не будут; такие прерывания называют замаскированными или запрещенными.

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

Биты 0—5 PSW характеризуют способность сообщений от определенных каналов вызывать прерывание. Например, 1 в разряде 3 PSW говорит о том, что окончание обмена по каналу 3 вызовет прерывание (подразумевается, что при этом бит 6 тоже_ равен 1).

Остальные разряды маски выполняют аналогичные функции. Значение маски 0 означает, что соответствующее прерывание замаскировано, значение 1 — что разрешено. Бит 8 представляет маску внешних прерываний, бит 13 (символически обозначаемый М) — маску прерываний от схем контроля машины.

Для проблемного программиста зачастую представляет интерес содержимое маски программных прерываний, поскольку оно определяет, какие условия, обычно рассматриваемые как ошибки арифметического типа, могут привести к прерываниям. Содержимое битов маски можно интерпретировать так:

Бит 36: переполнение с фиксированной точкой. Мы видели, что, когда в результате выполнения команд двоичной целочисленной арифметики происходит переполнение, фиксируется особый случай, который обычно вызывает прерывание. Этого, однако, не случится, если в 36-м разряде содержится 0.

Бит 37: деление с фиксированной точкой. В случае когда частное, получающееся от деления двух чисел по команде DR или D, не умещается в отведенный для него регистр, фиксируется особый случай деления с фиксированной точкой. Прерывание происходит только в случае, если 37-й бит PSW равен 1.

Биты 38 и 39. Эти биты маскируют некоторые прерывания, возникающие при выполнении команд арифметики с плавающей точкой. Более подробно вопросы, связанные с этими прерываниями, будут рассмотрены в Гл. 19.

Программисту предоставлена возможность самому определять содержимое маски программных прерываний. Существует специально предназначенная для этого команда SPM (Set Program Mask — УСТАНОВИТЬ МАСКУ ПРОГРАММЫ). Таким образом, можно самостоятельно разрешать или маскировать прерывания.

Биты 16—31 PSW определяют источник прерывания. Эта часть PSW называется кодом прерывания. Например, в случае прерываний ввода-вывода в указанное поле PSW записываются номер канала и адрес устройства, участвовавших в обмене. После этого программе-обработчику прерываний становится доступной информация о том, какое устройство вызвало прерывание.

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

В битах 8—11 содержится ключ защиты. Такие ключи используются для ограничения реальной области памяти, с которой может работать программа. Если разряд 14 содержит 1, то ЭВМ находится в состоянии ожидания, бит 15 PSW определяет, выполняется ли программа в состоянии задача или в состоянии супервизор. Эти состояния будут рассмотрены в гл. 12. Бит 12 имеет различное значение в Системах 360 и 370.

В Системе 360 1 в 12-м разряде означает, что при преобразовании двоичных чисел в десятичные коды знака устанавливаются в соответствии с кодом ASCII, а не EBCDIC. В Системе 370 12-й разряд характеризует режим управления.

Итак, PSW определяет состояние выполняемой в данный момент программы двояко. С одной стороны, счетчик команд и признак результата имеют непосредственное влияние на процесс выполнения программы. С другой стороны, разряды маски задают приоритет выполняемой программы по отношению к другим программам и событиям в системе.

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

Источник: itteach.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru