Процесс(задача)-это выполнение ожидаемой программы с ее данными на процессоре.
Определенные концепции процесса преследует цель максимального распределения и управления ресурсами.
Ресурс-всякий объект который может распределять и повторно использовать внутри системы и являться относительно стабильными. Ресурсами является процессорное время, память, каналы ввода-вывода, переферийные устройства. Ресурсы могут быть разделяемыми (делимыми), когда несколько процессов могут их использовать одновременно или параллельно, а могут быть неделимыми.
Рис. 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, команда поместить в стек
|
т.е. значение вершины стека (TOS)=d и
указатель стека указывает на последний
записанный в стек элемент.
|
|
|
|
|
г)Элемент е записывается на место элемента d
и представляет новое значение содержимое
|
Вывод: т.о. 1)основание стека имеет адрес памяти большей, чем вершина (TOS);
2)стек растет в направлении меньших значений адресов памяти;
3)считанные из стека данные продолжают храниться в памяти, но со стеком
уже не связаны.
Механизм прерываний.
Прерывание- представляет собой механизм позволяющий координировать парралельное функционирование отдельных устройств ВС и реагировать на особые состояния возникающие при работе процессора.
Т.о. прерывание- это принудительная передача управления от выполняемой программы в системе происходящее при возникновении определенного события.
Механизм обработки прерываний независимо от архитектуры ВС включает следующие элементы:
1)установление факта прерывания и идентифицировать прерывание;
2)запоминание состояния прерванного процесса;
3)аппаратная передача управления подпрограммной обработки прерывания;
4)сохранить информацию о прерванной программе, которую не удалось спасти на шаге 2, с помощью действий аппаратуры;
5)обработка прерываний;
6)восстановление информации относительно к прерванному процессу;
7)возврат прерывания в программу.
Рис. Обработка прерывания.
На рис. показано что при возникновении запроса на прерывании естественный код вычислений нарушений, и управлении передается программная обработка возникшего прерывания, при этом по средней стековой памяти сохранить адрес той команды с которой следует продолжать выполнение прерванной программы.
После выполнения программы обработка прерываний управляет возвращением прерванной ранее программой по средним занесенным в указатель команд сохранения адреса команд.
Вывод: главные функции механического прерывания:
1) распознавание (классификация) прерываний;
2) передача управления обработки прерываний;
3) Корректное возвращение к прерыванию программы.
Классификация прерываний.
Прерывания возникшие при работе вычислительных систем их можно разделить на 2 основных класса:
1) Внешние (асинхронные);
2) Внутренние (синхронные);
Внешние прерывания- вызывается асинхронными событиями которые происходят вне прерывного процесса.
Например: Прерывание от таймера; прерывание от внешних устройств; прерывание по нарушению питания; прерывание с пульта оператора; и др.
Внутреннее прерывание- называется так же исключениями (exception), происходящие синхронно выполняемой программы, при появлении аварийной ситуации входе выполнения некоторых инструментов программы.
Например: Деление на ноль; ошибки защиты памяти; обращение по несущему адресу; попытка выполнения прилигивированных инструментов в пользовательском режиме.
Существуют и программные прерывания которые возникают при выполнении особой команды процессора.
Данный механизм был специально введен для того что бы переключаться на системные программные модули происходило не просто как переключения в подпрограмме, а точно так же как и обычное прерывание.
Этим обеспечивается автоматическое переключение процессора в привилигированный режим с возможным исполнением любых команд.
Рис. Распределение прерываний по уровню приоритета.
О прерывании имеющее одинаковое значение приоритета говорят что они относятся к одному уровню прерывания.