Организация вычислительных процессов. Конспект лекций по дисциплине "Системы реального времени". Степанов Б.М. - 10 стр.

UptoLike

Составители: 

P:=P^.следующий;
i:=i+1;
end;
P^.состояние:=true;
end;
Оператор цикла осуществляет просмотр дескрипторов, пока не будет обнаружен де-
скриптор, номер которого i равен заданному К. В теле цикла выполняется определение ссыл-
ки на следующий элемент и изменение номера дескриптора. После того как процесс найден,
ссылка на него является значением переменной Р. Состояние процесса меняется в соответст-
вии с этой переменной.
2. Процедураждать
Procedure ждать;
begin
текущийпроцесс^.состояние:=false;
Передать контекст процесса (текущийпроцесс^.адресстека); {осуществляется пере-
сылка контекста из системного стека в стек текущего процесса}
Выбрать;
{Процедура осуществляет поиск и выбор очередного процесса, который должен вы-
полняться. Ссылку на этот процесс она присваивает переменной текущего процесса}
Загрузить контекст процесса (текущий процесс^.адрес стека);
{Процедура осуществляет передачу контекста из стека нового (выбранного) процесса
в системный стек}
Переключить контекст; {Эта процедура действует аналогично команде Iret, передавая
контекст из системного стека в память процессора}
3. Процедуравыбрать
Назначение: выделение из списка процессов следующего процесса, который получает
в своё распоряжение процессор.
Т.к. эта процедура работает в равенстве с принципом фиксированного относительного
приоритета, то необходимо предусмотреть следующее:
1) дескрипторы в списке процессов должны быть расположены в порядке убывания
приоритетов.
2) просмотр списка должен всегда выполняться, начиная с первого элемента.
procedure
выбрать;
var
р: связь;
b: boolean;
begin
p:=начало;
b:=true;
{p указывает на первый процесс, b –параметр цикла}
while b do {цикл просмотра процессов}
if p^.состояне then
begin
текущий процесс :=p;
b:= false;
end;
{если состояние рассматриваемого процесса – “готов”, то ссылка на этот процесс запомина-
ется переменнойтекущий процесси изменяется значение переменной, определяющей
окончание цикла}
P:=P^.следующий;
i:=i+1;
end;
P^.состояние:=true;
end;
        Оператор цикла осуществляет просмотр дескрипторов, пока не будет обнаружен де-
скриптор, номер которого i равен заданному К. В теле цикла выполняется определение ссыл-
ки на следующий элемент и изменение номера дескриптора. После того как процесс найден,
ссылка на него является значением переменной Р. Состояние процесса меняется в соответст-
вии с этой переменной.

2. Процедура “ждать”
       Procedure ждать;
       begin текущийпроцесс^.состояние:=false;
       Передать контекст процесса (текущийпроцесс^.адресстека); {осуществляется пере-
сылка контекста из системного стека в стек текущего процесса}
       Выбрать;
       {Процедура осуществляет поиск и выбор очередного процесса, который должен вы-
полняться. Ссылку на этот процесс она присваивает переменной текущего процесса}
       Загрузить контекст процесса (текущий процесс^.адрес стека);
       {Процедура осуществляет передачу контекста из стека нового (выбранного) процесса
в системный стек}
       Переключить контекст; {Эта процедура действует аналогично команде Iret, передавая
контекст из системного стека в память процессора}

3. Процедура “выбрать”

       Назначение: выделение из списка процессов следующего процесса, который получает
в своё распоряжение процессор.
       Т.к. эта процедура работает в равенстве с принципом фиксированного относительного
приоритета, то необходимо предусмотреть следующее:
       1) дескрипторы в списке процессов должны быть расположены в порядке убывания
приоритетов.
       2) просмотр списка должен всегда выполняться, начиная с первого элемента.

procedure выбрать;
var
        р: связь;
        b: boolean;
begin
        p:=начало;
        b:=true;
{p указывает на первый процесс, b –параметр цикла}
while b do      {цикл просмотра процессов}
if p^.состояне then
begin
        текущий процесс :=p;
        b:= false;
end;
{если состояние рассматриваемого процесса – “готов”, то ссылка на этот процесс запомина-
ется переменной “текущий процесс” и изменяется значение переменной, определяющей
окончание цикла}