<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=321451&amp;view=findpost&amp;p=2782518</guid>
        <pubDate>Fri, 17 Dec 2010 20:25:41 +0000</pubDate>
        <title>GPSS - модель для анализа влияния изменения кванта времени на процессы в ОС</title>
        <link>https://forum.sources.ru/index.php?showtopic=321451&amp;view=findpost&amp;p=2782518</link>
        <description><![CDATA[LibexiN: Привет всем) подскажите как можно реализовать на GPSS следующую модель: <br>
<strong class='tag-b'>Влияние продолжительности кванта времени на пребывание процесса в ОС и длину очереди в однопроцессорной архитектуре. Приоритеты у процессов одинаковые.</strong><br>
В задании нужно взять 5-10 различных значений квантов времени и проследить как ведут себя очередь и продолжительность пребывания процессов в системе.<br>
Исходя из этих значений я думал выбрать самый оптимальный квант (с приемлемой длиной очереди и временем пребывания процесса в системе).<br>
Примерный код я накидал, однако при изменение кванта времени (quantum) какие-то странные результаты получаются. При увеличении (уменьшении) кванта времени очередь <br>
становится то больше, то меньше и так же с пребывание процессов в ОС. Скорее всего может я в коде где не так что сделал. Заранее спасибо за помощь=)<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">myQueue EQU 7</div><div class="code_line">myCPU &nbsp; EQU 7</div><div class="code_line">quantum EQU 0.02 &nbsp;; квант обслуживания процесса процессором</div><div class="code_line">&nbsp;</div><div class="code_line">matrixProperty &nbsp;MATRIX ,1,1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; среднее время пребывания процесса в очереди</div><div class="code_line">tabLenQueue TABLE Q$myQueue,0,20,50</div><div class="code_line">tabStayInSys &nbsp; &nbsp;TABLE P3,0,200,40</div><div class="code_line">tabTimeProc TABLE P2,0,2,50</div><div class="code_line">&nbsp;</div><div class="code_line">; функция для генерации общего времени обслуживания для процесса</div><div class="code_line">funcTimeProc &nbsp; &nbsp;FUNCTION RN1,C25</div><div class="code_line">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</div><div class="code_line">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</div><div class="code_line">&nbsp;</div><div class="code_line">; P2 - оставшееся время обслуживания</div><div class="code_line">; P3 - время пребывания процесса в ОС</div><div class="code_line">&nbsp;</div><div class="code_line">myCPU &nbsp; STORAGE 1</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;GENERATE &nbsp; &nbsp;3</div><div class="code_line">&nbsp;&nbsp; &nbsp;ASSIGN &nbsp;2,FN$funcTimeProc</div><div class="code_line">&nbsp;&nbsp; &nbsp;TABULATE &nbsp; &nbsp;tabTimeProc</div><div class="code_line">HOLDING QUEUE &nbsp; myQueue</div><div class="code_line">&nbsp;&nbsp; &nbsp;ENTER &nbsp; myCPU</div><div class="code_line">&nbsp;&nbsp; &nbsp;DEPART &nbsp;myQueue</div><div class="code_line">&nbsp;&nbsp; &nbsp;ADVANCE quantum</div><div class="code_line">&nbsp;&nbsp; &nbsp;LEAVE &nbsp; myCPU</div><div class="code_line">&nbsp;&nbsp; &nbsp;ASSIGN &nbsp;2-,quantum &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TEST &nbsp; &nbsp;LE P2,0,HOLDING</div><div class="code_line">&nbsp;&nbsp; &nbsp;ASSIGN &nbsp;3,M1</div><div class="code_line">&nbsp;&nbsp; &nbsp;TABULATE &nbsp; &nbsp;tabStayInSys</div><div class="code_line">&nbsp;&nbsp; &nbsp;TABULATE &nbsp; &nbsp;tabLenQueue</div><div class="code_line">&nbsp;&nbsp; &nbsp;MSAVEVALUE matrixProperty,1,1,QA$myQueue</div><div class="code_line">&nbsp;&nbsp; &nbsp;TERMINATE &nbsp; 1</div><div class="code_line">START &nbsp; 100</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>LibexiN</author>
        <category>GPSS</category>
      </item>
	
      </channel>
      </rss>
	