Порядок выделения ресурсов

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

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

Стадия готовности к выполнению возникает:

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

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

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

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

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

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

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

1) выделение ресурса задаче и возврат ей управления,

2) постановка задачи в очередь к требуемому ресурсу, переводя ее в состояние ожидания.

 

Супервизор выделяет ресурс задаче в следующих случаях:

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

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

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

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

 

За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое.

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

- по команде оператора;

- при выборе из очереди;

- по вызову из другой задачи;

- при наступлении запланированного времени запуска программы.

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

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

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

- процесс переводится супервизором операционной системы в состояние готовности к исполнению в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;

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

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


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



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