Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.90.40.84] |
|
Сообщ.
#1
,
|
|
|
Привет всем) подскажите как можно реализовать на GPSS следующую модель:
Влияние продолжительности кванта времени на пребывание процесса в ОС и длину очереди в однопроцессорной архитектуре. Приоритеты у процессов одинаковые. В задании нужно взять 5-10 различных значений квантов времени и проследить как ведут себя очередь и продолжительность пребывания процессов в системе. Исходя из этих значений я думал выбрать самый оптимальный квант (с приемлемой длиной очереди и временем пребывания процесса в системе). Примерный код я накидал, однако при изменение кванта времени (quantum) какие-то странные результаты получаются. При увеличении (уменьшении) кванта времени очередь становится то больше, то меньше и так же с пребывание процессов в ОС. Скорее всего может я в коде где не так что сделал. Заранее спасибо за помощь=) myQueue EQU 7 myCPU EQU 7 quantum EQU 0.02 ; квант обслуживания процесса процессором matrixProperty MATRIX ,1,1 ; среднее время пребывания процесса в очереди tabLenQueue TABLE Q$myQueue,0,20,50 tabStayInSys TABLE P3,0,200,40 tabTimeProc TABLE P2,0,2,50 ; функция для генерации общего времени обслуживания для процесса funcTimeProc FUNCTION RN1,C25 0,0/0.052,1/0.093,2/0.135,3/0.175,4/0.217,5/0.257,6/0.298,7/0.339,8/0.380,9/0.43,10/0.462,11/0.503,12/0.544,13/0.585,14 0.626,15/0.667,16/0.708,17/0.749,18/0.790,19/0.84,20/0.872,21/0.913,22/0.954,23/1.0,24 ; P2 - оставшееся время обслуживания ; P3 - время пребывания процесса в ОС myCPU STORAGE 1 GENERATE 3 ASSIGN 2,FN$funcTimeProc TABULATE tabTimeProc HOLDING QUEUE myQueue ENTER myCPU DEPART myQueue ADVANCE quantum LEAVE myCPU ASSIGN 2-,quantum TEST LE P2,0,HOLDING ASSIGN 3,M1 TABULATE tabStayInSys TABULATE tabLenQueue MSAVEVALUE matrixProperty,1,1,QA$myQueue TERMINATE 1 START 100 |