Понятие вычислительного процесса и ресурса. Диаграмма состояний процесса

Процесс(задача)-это выполнение ожидаемой программы с ее данными на процессоре.

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

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

Рис. 2.3 Классификация ресурсов.

Ресурс может быть выделен задачами, если:

1)если он свободен и в системе нет запросов от заданного более высокого приоритета к нему же;

2)текущий запрос и ранее выданные запросы допускаются в местное использование ресурсов;

3)ресурс использованного низкого приоритета и может быть временно отобран.

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

Процесс может быть активным и пассивным.

В активном: процесс может участвовать в конкуренции за использование ресурсов вычислительной системы;

В пассивном: он только известен системе, но в конкуренции не участвует (хотя ему предоставляется операционная и внешняя память);

Активный процесс может быть в одном из следующих состояний:

1)Выполнение, когда все затребованные ресурсы выделены;

2)Готовности к выполнению, ресурс может быть предоставлен, тогда процесс перейдет в состояние выполнения;

3)Блокирование(ожидание), когда затребованный ресурсы не могут быть предоставлены.

Рис. Графическое состояние процесса.


За время своего существования процесс неоднократно совершал переходы из одного состояния в другое. Это обусловлено обращением к ОС с запросами ресурсов, выполнения системных функций, взаимодействие с другими процессами, появление сигнала прерывания и другое…

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

1)По команде оператора;

2)При выборе из очереди планировщиком;

3)По вызову из другой задачи.

Из состояния выполнения процесса может выйти по следующим причинам:

1)процесс завершения- при этом он, посредством обращений к супервизору, и сообщении о своем завершении;

2)Процесс переводится супервизором в состоянии готовности к исполнению;

3)Процесс переводится в состояние ожидания.

Т.о. движущей силой, меняющей состояние процесса являются события. Один из основных видов событий- прерывание.

3.1 Прерывания. Стек.

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

Программа может поместить информацию в стек, или извлечь ее из стека.

Данные в стеке упорядочиваются следующим образом: извлекаем из стека элемент с данными это всегда тот элемент который был туда записан последним. Такая организация хранения данных называется LIFО.

В ЭВМ за стеком резервирования блок памяти и указатель называется указателем стека(SP). SP используется программой для того что бы фиксировать самый последний записанный в стек элемент данных. SP перемещается только по мере записи и считывания данных из стека. При выполнении команды «извлечь из стека» или «записать в стек» значением указателя соответственно увеличивается или уменьшается на 1.

Пример: рис. а – иллюстрирует состояние стека как туда были последовательно записаны значения а, b, c.

а) SP указывает на содержимое вершины

с
стека, в данном случае на с.

 
 


б)после того как в стек записан еще один

элемент d, команда поместить в стек

c
уменьшается на 1 значение указателя SP,

т.е. значение вершины стека (TOS)=d и

указатель стека указывает на последний

записанный в стек элемент.

       
   
 


d
в)рисунок иллюстрирует состояние стека

SP
после выполнения команды «извлечь из стека»,

c
которая считает из стека элемент d. Хотя значение

a
b
d продолжает хранить в памяти TOS=c

 
 


г)Элемент е записывается на место элемента d

и представляет новое значение содержимое

c
вершиной стека TOS=e

Вывод: т.о. 1)основание стека имеет адрес памяти большей, чем вершина (TOS);

2)стек растет в направлении меньших значений адресов памяти;

3)считанные из стека данные продолжают храниться в памяти, но со стеком

уже не связаны.

Механизм прерываний.

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

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

Механизм обработки прерываний независимо от архитектуры ВС включает следующие элементы:

1)установление факта прерывания и идентифицировать прерывание;

2)запоминание состояния прерванного процесса;

3)аппаратная передача управления подпрограммной обработки прерывания;

4)сохранить информацию о прерванной программе, которую не удалось спасти на шаге 2, с помощью действий аппаратуры;

5)обработка прерываний;

6)восстановление информации относительно к прерванному процессу;

7)возврат прерывания в программу.

Рис. Обработка прерывания.

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

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

Вывод: главные функции механического прерывания:

1) распознавание (классификация) прерываний;

2) передача управления обработки прерываний;

3) Корректное возвращение к прерыванию программы.

Классификация прерываний.

Прерывания возникшие при работе вычислительных систем их можно разделить на 2 основных класса:

1) Внешние (асинхронные);

2) Внутренние (синхронные);

Внешние прерывания- вызывается асинхронными событиями которые происходят вне прерывного процесса.

Например: Прерывание от таймера; прерывание от внешних устройств; прерывание по нарушению питания; прерывание с пульта оператора; и др.

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

Например: Деление на ноль; ошибки защиты памяти; обращение по несущему адресу; попытка выполнения прилигивированных инструментов в пользовательском режиме.

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

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

Этим обеспечивается автоматическое переключение процессора в привилигированный режим с возможным исполнением любых команд.

Рис. Распределение прерываний по уровню приоритета.

 
 


О прерывании имеющее одинаковое значение приоритета говорят что они относятся к одному уровню прерывания.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: