На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> GPSS - модель для анализа влияния изменения кванта времени на процессы в ОС
    Привет всем) подскажите как можно реализовать на GPSS следующую модель:
    Влияние продолжительности кванта времени на пребывание процесса в ОС и длину очереди в однопроцессорной архитектуре. Приоритеты у процессов одинаковые.
    В задании нужно взять 5-10 различных значений квантов времени и проследить как ведут себя очередь и продолжительность пребывания процессов в системе.
    Исходя из этих значений я думал выбрать самый оптимальный квант (с приемлемой длиной очереди и временем пребывания процесса в системе).
    Примерный код я накидал, однако при изменение кванта времени (quantum) какие-то странные результаты получаются. При увеличении (уменьшении) кванта времени очередь
    становится то больше, то меньше и так же с пребывание процессов в ОС. Скорее всего может я в коде где не так что сделал. Заранее спасибо за помощь=)

    ExpandedWrap disabled
      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
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0247 ]   [ 15 queries used ]   [ Generated: 28.03.24, 16:40 GMT ]