отчет 5 лаб Гпсс
.docxМинистерство образования и науки Кыргызской Республики
Кыргызский Государственный Технический Университет им. И. Раззакова
Факультет Информационных Технологий
Кафедра:”Информатика и вычислительная техника”
Отчет
По лабораторной работе №5
По дисциплине: Язык моделирования GPSS
Выполнил:
Проверила: Бакасова П.С.
Бишкек 2020
Задание 5: Для ускорения прохождения коротких заданий на ЭВМ выбран пакетный режим работы с квантованием времени процессора. Это значит, что всем заданиям пакета по очереди представляется процессор на одинаковое время 10 с (круговой циклический алгоритм разделения времени). Если в течение этого времени заканчивается выполнение задания, оно покидает систему и освобождает процессор. Если же очередного кванта времени не хватает для завершения задания, оно помещается в конец очереди-пакета. Последнее задание пакета выполняется без прерываний. Пакет считается готовым к вводу ЭВМ, если в нем содержится 5 задний. Новый пакет вводится в ЭВМ после окончания обработки предыдущего. Задания поступают в систему с интервалом времени 60±30 с и характеризуется временем работы процессора 50±45 с. Смоделировать процесс обработки 200 заданий. Определить максимальную длину очереди готовых к обработке пакетов и коэффициент загрузки ЭВМ. Сравнить время прохождения коротких заданий, требующих до 10 с времени работы процессора, с временем прохождения длинных заданий, требующих свыше 90 с времени работы процессора.
Код
initial x$isFree,1 ;чтобы узнать свободен ли процессор
initial x$countOfShortTasks,0 ; счетчик для коротких заданий
initial x$countOfLongTasks,0 ; счетчик для длинных заданий
initial x$totalTimeOfShortTasks,0 ;общая время выполнения коротких заданий
initial x$totalTimeOfLongTasks,0 ;общая время выполнения длинных заданий
generate 60,30,0,200 ;поступление заданий
assign time,(uniform(1,5,95)) ; время работы процессора 50±45 с
test l p$time,10,L_ifLongTask ; короткое или длинное задание
savevalue countOfShortTasks+,1
savevalue totalTimeOfShortTasks+,p$time
transfer ,L_continue
L_ifLongTask test g p$time,90,L_continue ; короткое или длинное задание
savevalue countOfLongTasks+,1
savevalue totalTimeOfLongTasks+,time
L_continue queue allTasks ;чтобы вычислить длину очереди готовых к обработке пакетов
test e x$isFree,1 ; свободен ли эвм 1 - свободен 0 - занят
depart allTasks ;
queue countOfTasks ; для эвм, максимум может быть 5 заданий
test ge q$countOfTasks,5 ;проверка достаточно ли заданий для образования пакета
seize evm ;ЭВМ
savevalue isFree,0 ; эвм уже не свободен
evm_loop test e q$countOfTasks,1,L_next; если это последнее задание
advance p$time
depart countOfTasks
release evm
savevalue isFree,1 ;эвм свободен
terminate 1
L_next test le p$time,10,L_else ;если для обработки требуется меньше 10с
advance p$time ; выполняем и удаляем этот транзакт
depart countOfTasks ; убрать из очереди
release evm ;
terminate 1
L_else advance 10 ;обработали 10 сек
assign time-,10 ;уменьшили время на 10 сек
release evm ; убрать из начала очереди
seize evm ;поставить в конец очереди
transfer ,evm_loop ;цикл
start 200 ;200 заданий
вывод
GPSS World Simulation Report - LB5_cont.5.1
Wednesday, December 02, 2020 12:14:20
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 12449.314 32 1 0
NAME VALUE
ALLTASKS 10006.000
COUNTOFLONGTASKS 10002.000
COUNTOFSHORTTASKS 10001.000
COUNTOFTASKS 10007.000
EVM 10008.000
EVM_LOOP 17.000
ISFREE 10000.000
L_CONTINUE 10.000
L_ELSE 28.000
L_IFLONGTASK 7.000
L_NEXT 23.000
TIME 10005.000
TOTALTIMEOFLONGTASKS 10004.000
TOTALTIMEOFSHORTTASKS 10003.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 200 0 0
2 ASSIGN 200 0 0
3 TEST 200 0 0
4 SAVEVALUE 11 0 0
5 SAVEVALUE 11 0 0
6 TRANSFER 11 0 0
L_IFLONGTASK 7 TEST 189 0 0
8 SAVEVALUE 17 0 0
9 SAVEVALUE 17 0 0
L_CONTINUE 10 QUEUE 200 0 0
11 TEST 200 0 0
12 DEPART 200 0 0
13 QUEUE 200 0 0
14 TEST 200 0 0
15 SEIZE 200 0 0
16 SAVEVALUE 200 0 0
EVM_LOOP 17 TEST 1055 0 0
18 ADVANCE 40 0 0
19 DEPART 40 0 0
20 RELEASE 40 0 0
21 SAVEVALUE 40 0 0
22 TERMINATE 40 0 0
L_NEXT 23 TEST 1015 0 0
24 ADVANCE 160 0 0
25 DEPART 160 0 0
26 RELEASE 160 0 0
27 TERMINATE 160 0 0
L_ELSE 28 ADVANCE 855 0 0
29 ASSIGN 855 0 0
30 RELEASE 855 0 0
31 SEIZE 855 0 0
32 TRANSFER 855 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
EVM 1055 0.801 9.451 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
ALLTASKS 6 0 200 54 1.330 82.806 113.432 0
COUNTOFTASKS 5 0 200 0 3.622 225.451 225.451 0
SAVEVALUE RETRY VALUE
ISFREE 0 1.000
COUNTOFSHORTTASKS 0 11.000
COUNTOFLONGTASKS 0 17.000
TOTALTIMEOFSHORTTASKS 0 80.118
TOTALTIMEOFLONGTASKS 0 1565.536
Длина очереди готовых к обработке пакетов = 6
Среднее время выполнения короткого задания равна = 80 / 11 = 7,27
Среднее время выполнения длинного задания равна = 1565/ 17 = 92,06
Сравнение показывает, что длинное задание в среднем выполняется дольше на 84.79 сек.