слайды_gpss
.pdfБлоки работы с памятями
ENTER A [,B]- активный транзакт либо занимает определенное число
элементов памяти, либо встает в очередь к данной памяти
Особенности выполнения.
1.Операнд A должен указывать на заранее определенную оператором STORAGE память. 2.При попытке транзакта войти в блок ENTER всегда проверяется, существует ли необходимое число свободных элементов данной памяти. Для определения необходимого числа свободных элементов памяти используется операнд B.
3.Если необходимое число свободных элементов есть, она занимается. Число свободных элементов памяти уменьшается на заданное число.
4.Транзакт, занявший память, пытается перейти к следующему блоку.
5.Элементы памяти остаются занятыми до тех пор, пока занимающий их транзакт не войдет в соответствующий блок LEAVE.
6.Блок ENTER отказывает во входе транзакту, если нет необходимого числа свободных элементов данной памяти . При этом транзакт помещается в список задержки памяти в конец своего приоритетного класса
Примеры.
ENTER RAM
Транзакт пытается занять один элемент памяти с именем RAM
ENTER RAM, P$V_RAM
Транзакт пытается занять память с именем RAM. Необходимое число элементов памяти содержится в параметре транзакта с именем V_RAM.
LEAVE A [,B]- активный транзакт освобождает требуемое число
элементов памяти. Особенности выполнения.
1.Операнд A должен указывать на заранее определенную оператором STORAGE память. 2.Для определения числа освобождаемых элементов памяти используется операнд B. Число свободных элементов памяти увеличивается на заданное число.
3.Транзакт, освободивший элементы памяти, пытается перейти к следующему по номеру блоку.
4.После освобождения памяти определяются транзакты, потребность в памяти которых может быть удовлетворена, и.транзакты входят в блок ENTER.
Примеры.
LEAVE RAM
Транзакт освобождает один элемент памяти с именем RAM LEAVE RAM, P$V_RAM
Транзакт освобождает элементы памяти с именем RAM. Освобождаемое число элементов памяти содержится в параметре транзакта с именем V_RAM.
Пример модели мультипрограммной обработки.
На вход системы поступает пуассоновский поток заданий Распределение интервалов времени между заданиями по экспоненциальному закону с параметром 50
Параметры задания: требуемый размер оперативной
памяти, необходимое количество квантов процессорного времени (определяются соответствующими функциями распределения).
Параметры системы: размер доступной оперативной памяти, количество процессоров, размер кванта.
Буфер входных заданий ограничен. Если входное задания не может быть помещено в буфер, то оно покидает систему.Для получения очередного кванта процессорного времени задания становятся в очередь к процессору с минимальной загрузкой.
Исследовать зависимость среднего времени выполнения заданий от числа процессоров и размера оперативной памяти.
ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ GPSS
INITIAL X$QRAM_MAX,5
INITIAL X$CPU_MAX,2
|
INITIAL |
X$KVANT,10 |
|
RAM |
STORAGE |
|
1024 |
RAM_TASK |
FUNCTION |
RN1,C4 |
|
0,10/0.5,50/0.8,100/1,201 |
|
|
|
KVANT_TASK |
FUNCTION |
P$RAM_TASK,C2 |
|
10,5/200,30 |
|
|
|
TIME |
TABLE |
M1,100,1000,30 |
|
|
GENERATE |
(EXPONENTIAL(2,0,50)) |
|
|
ASSIGN RAM_TASK,FN$RAM_TASK |
||
|
ASSIGN KVANT_TASK,(INT(FN$KVANT_TASK)) |
||
|
TEST LE |
Q$RAM,X$QRAM_MAX,NO_SERVICE |
|
|
QUEUE |
RAM |
|
|
ENTER RAM,P$RAM_TASK |
||
|
DEPART |
RAM |
|
M_CICL |
SELECT MIN CPU,1,X$CPU_MAX,,FR |
||
|
QUEUE |
P$CPU |
|
|
SEIZE P$CPU |
||
|
DEPART |
P$CPU |
|
|
ADVANCE |
|
X$KVANT |
|
RELEASE |
P$CPU |
|
|
LOOP KVANT_TASK,M_CICL |
||
|
LEAVE RAM,P$RAM_TASK |
||
|
TABULATE |
TIME |
|
|
SAVEVALUE |
TASK_SERVICE+,1 |
|
|
TERMINATE |
|
|
NO_SERVICE |
SAVEVALUE |
TASK_NO_SERVICE+,1 |
|
|
TERMINATE |
|
|
GENERATE |
50000 |
|
|
TERMINATE 1 START 1
CLEAR
INITIAL X$QRAM_MAX,5 INITIAL X$CPU_MAX,4 INITIAL X$KVANT,10
RAM STORAGE 1024 RAM_TASK FUNCTION RN1,C4 0,10/0.5,50/0.8,100/1,201
KVANT_TASK FUNCTION P$RAM_TASK,C2 10,5/200,30
TIME TABLE M1,100,1000,30 START 1
Имитационная модель выполнения проектного задания по сетевому графику
Исследовать
•время выполнения проекта в зависимости от числа проектировщиков
•коэффициент использования коллектива проектировщиков
•максимальное число проектировщиков, используемых одновременно
•стоимостную зависимость между временем выполнения проекта и степенью использования коллектива проектировщиков
Число проектировщиков: 5,6,7,8,9,10,11,12
Сетевой график выполнения проекта
|
2 |
|
|
Задача 5 |
5 |
|
|
|
|
|
|
||
|
|
|
1 чел. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25±7 дн. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задача 8 |
|
|
|
|
|
|
4чел. |
|
|
Задача 3 |
|
|
|
|
|
|
|
|
|
10±3 дн. |
|
Задача 1 |
|
2 чел. |
|
|
|
|
|
|
|
|
|
||
3 чел. |
|
22±5 дн. |
|
|
|
|
20±9 дн. |
|
|
|
|
|
|
1 |
|
|
4 |
|
Задача 7 |
|
7 |
|||
|
|
|
4 чел. |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15±5 дн. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задача 2 |
|
Задача 4 |
|
|
|
|
|
|
|
|
4 чел. |
|
3 чел. |
|
|
|
|
|
Задача 9 |
|
|
14±6 дн. |
|
10±3 дн. |
|
|
|
|
|
2 чел. |
|
|
|
|
|
|
|
|
|
|
8±3 дн. |
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
Задача 6 |
|
6 |
|
|
|||
|
|
5 чел. |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18±4 дн. |
|
|
|
|
|
ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ GPSS
men |
storage |
12 |
|
T_project |
TABLE |
MP$TIME,0,20,20 ;Регистрация времени |
|
|
GENERATE |
,,,1 ;начало выполнения проекта |
|
|
MARK |
|
time |
node1 |
SPLIT |
|
1,task1 |
|
TRANSFER |
,task2 |
|
node2 |
SPLIT |
|
1,task3 |
|
TRANSFER |
,task5 |
|
node3 |
SPLIT |
|
1,task4 |
|
TRANSFER |
,task6 |
|
node4 |
ASSEMBLE |
2 |
|
SPLIT |
1,task7 |
|
|
|
TRANSFER |
,node6 |
|
node5 |
TRANSFER |
,task8 |
|
node6 |
ASSEMBLE |
2 |
|
|
TRANSFER |
,task9 |
|
node7 |
ASSEMBLE |
3 |
|
* |
|
|
|
|
TABULATE |
T_project |
|
|
TRANSFER |
,task10 |
|
* |
|
|
|
task1 |
ENTER |
|
men,3 |
|
ADVANCE |
20,9 |
|
|
LEAVE |
|
men,3 |
|
TRANSFER |
,node2 |
|
task2 |
ENTER |
|
men,4 |
|
ADVANCE |
14,6 |
|
|
LEAVE |
|
men,4 |
|
TRANSFER |
,node3 |
|
task3 |
ENTER |
|
men,2 |
|
ADVANCE |
22,5 |
|
|
LEAVE |
|
men,2 |
|
TRANSFER |
,node4 |
|
task4 |
ENTER |
|
men,3 |
|
ADVANCE |
10,3 |
|
|
LEAVE |
|
men,3 |
|
TRANSFER |
,node4 |
|
task5 |
ENTER |
|
men,1 |
|
ADVANCE |
25,7 |
|
|
LEAVE |
|
men,1 |
|
TRANSFER |
,node5 |
|
task6 |
ENTER |
|
men,5 |
|
ADVANCE |
18,4 |
|
|
LEAVE |
|
men,5 |
|
TRANSFER |
,node6 |
|
task7 |
ENTER |
|
men,4 |
|
ADVANCE |
15,5 |
|
|
LEAVE |
|
men,4 |
|
TRANSFER |
,node7 |
|
task8 |
ENTER |
|
men,4 |
|
ADVANCE |
10,3 |
|
|
LEAVE |
|
men,4 |
|
TRANSFER |
,node7 |
|
task9 |
ENTER |
|
men,2 |
|
ADVANCE |
8,3 |
|
|
LEAVE |
|
men,2 |
|
TRANSFER |
,node7 |
|
task10 |
TERMINATE |
1 |
|
|
START 1 |
|
|
|
|
|
|