Сделай Сам Свою Работу на 5

Понятие последовательного процесса

 

Понятие процесса дает возможность рассматривать активное состояние непрерывного выполнения программы на компьютере. Состояние компьютера определяется состоянием процессора (соде­ржанием адресуемых и внутренних регистров) и состоянием памяти (содержанием ячеек памяти). Это состояние изменяется при выполнении инструкций процессором. Каждое выпо­лнение инструкции представляет собой некоторое действие: резу­льтатом действия является переход за конечное время из начального состояния машины в конечное состояние. Этот резу­льтат описывается спецификациями инструкции.

Будем рассматривать выполнение инструкции как неделимое действие, т. е. в процессе ее выполнения запрещается на6людать и определять состояние компьютера. Итак, время, в течение которого прослеживается изменение состояния компьютера, представляется параметром t­, принимающим последовательность возрастающих дискретных значений, которые выбираются в начале и конце каждой инструкции). Эти выделенные моменты времени называются точками наблюдения, а соответствующие состояния компьютера - наблюдаемыми точками. Каждому состоянию компьютера ставится в соответствие некоторое число (текущее значение t); такое состояние называется событием. События позволяют отмечать изменения состояния компьютера. Начало и конец ка­ждого действия a являются событиями, соответствующие числовые данные которых обозначаются НАЧ(a) и КОН(a); причем НАЧ(a) < КОН(a).

Таким образом, выполнение программы представляется в виде последовательности действий a1, a2, ai, для ка­ждого элемента которой КОН(ai) < НАЧ(ai+1). Такая последовательность называется последовательным процессом (или просто процессом).

Процесс можно описать рядом следующих друг за другом событий НАЧ (a1 ) , КОН (a1 ) , НАЧ (a2) , ... . Такая последовательность данных и состояний компьютера называется временным следом (трассой, или историей) процесса.

Можно также определить процесс как некоторую последовательность активных состояний выполнения процедур программы.



Процесс состоит из трех основных компонент :

- исполняемой программы (или ее логически законченной части);

- данных, используемых при вычислениях;

- контекста исполняемого процесса.

Контекстом процесса называется информация, ко­торую действия процесса могут проверять или изменять. Контекст процесса, связанного с выполнением программы, включает:

1. Информацию о состоянии процессора, требуемую для переназначения (содержимое слова состояния и регистры);

2. Указатели на рабочее пространство (сегменты процедуры и данных, стек выполнения);

3. Атрибуты процесса, используемые операционной системой для управления процессом.

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

Рис.4.1 поясняет последовательность действий при выполнении процессов. Два процесса, A и B, загружены в соответствующие разделы оперативной

 

 

Рис. 4.1

 

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

Состояния процесса

 

В период своего существования процесс проходит через ряд дискретных состояний. Возможные переходы процесса из одного состояния в другое показаны на рис.4.2.

 

 

Рис. 4.2. Изменение состояний процесса

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

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

Если процесс устанавливается на центральный процессор (ЦП), т.е. он использует его для выполнения своих команд, то он находится в состоянии исполняемый.

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

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

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

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

Следует отметить, что единственная смена состояния, инициируемая самим процессом, - это блокирование, остальные смены состояния инициируются объектами, внешними по отношению к данному процессу.

 



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.