если условие
(ОЧЕРЕДЬ (1–N)) пуста
то перейти на метку
НАЧАЛО;
цикл
Ц1
для
i := 1 (1) N;
считать из
ОЧЕРЕДЬ (i)
в
РАБ_ДИСП;
если
РАБ_ДИСП
6
=
0
то перейти на метку
ПРОД;
конец цикла
Ц1;
ПРОД: ЗАДАЧА_НА _CPU := РАБ_ДИСП;
перейти на метку
НАЧАЛО;
конец описания процесса–агрегата ДИСПЕТЧЕР;
процесс–агрегат CPU;
НАЧАЛО:
ждать условие
ЗАДАЧА_НА _CPU
6
=
0;
РАБ_CPU := ЗАДАЧА_НА _CPU;
ЗАДАЧА_НА _CPU:= 0;
задержать процесс на время
КВАНТ;
ЗАДАЧА_ИЗ_CPU := РАБ_CPU;
перейти на метку
НАЧАЛО;
конец описания процесса–агрегата CPU;
Программа на псевдоязыке, реализующая блочно-параметрическую
схему с рассредоточенными функциями, представлена ниже:
ОБЩИЕ ОПИСАНИЯ
тип
W :
вектор
(ОБЪЕМ, НОМЕР_ОЧЕРЕДИ, ЧИСЛО_КВАНТОВ)
ресурс
– ПАМ(Q);
тип : массив очередей
ОЧЕРЕДЬ (1 – N);
КВАНТ = K;
перед моделированием определить значения Q, P, K
процесс–агрегат ГЕНЕРАЦИЯ НЕПРЕРЫВНОГО ПОТОКА ЗАДАЧ;
НАЧАЛО
: создать
ЗАДАЧА
типа
W;
перед моделированием определить параметры вектора ЗАДАЧА;
ждать условие
(ресурс ПАМ достаточен для объема ЗАДАЧА(ОБЪЕМ));
занять ресурс
ПАМ
объемом
ЗАДАЧА(ОБЪЕМ);
записать
ЗАДАЧА
в очередь
ОЧЕРЕДЬ(1);
перейти на метку
НАЧАЛО;
конец описания процесса–агрегата ГЕНЕРАЦИЯ НЕПРЕРЫВНОГО ПОТО-
КА ЗАДАЧ;
процесс–агрегат БУФЕРИЗАЦИЯ;
НАЧАЛО:
ждать условие
ОЧЕРЕДЬ (1–N) не пуста;
ждать условие
ВЫХОД_ОЧ = 0;
цикл
Ц1
для
i := 1 (1) N;
считать из
ОЧЕРЕДЬ (i)
в
РАБ;
если
РАБ
6
=
0
то перейти на метку
ПРОД;
конец цикла
Ц1;
ПРОД: ВЫХОД_ОЧ := РАБ;
перейти наметку
НАЧАЛО;
конец описания процесса–агрегата БУФЕРИЗАЦИЯ;
процесс–агрегат CPU;
ЗАДАЧА_CPU –
тип
W;
НАЧАЛО:
ждать условие
ВЫХОД_ОЧ
6
=
0;
ЗАДАЧА_CPU
:=
ВЫХОД_ОЧ;
126 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2014. № 1