Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Имитационное моделирование как метод исследования вычислительных систем

Предмет: 
Тип роботи: 
Контрольна робота
К-сть сторінок: 
40
Мова: 
Русский
Оцінка: 

имя устройства или элемента памяти, на которые направляется заявка, если ее запрос на обслуживание может быть удовлетворен; NAME2 — символическое имя элемента сети, на который направляется заявка, если ее запрос к ресурсу с именем NAME1 не может быть удовлетворен.

 
Реализация узла типа U в среде MATLAB
 
Prompt Type Variable
Device Popup (Memory|CPU) D
Initialization commands
set_param( gcb, 'ReferenceBlock', '' )
OldK=str2num(get_param(strcat(gcb,'/Old'),'Value'))
if D==1
if OldK==2
delete_line( gcb, 'From1/1', strcat( 'Relational', char(13), 'Operator', '/1' ) )
add_line( gcb, 'From/1', strcat( 'Relational', char(13), 'Operator', '/1' ) )
end
set_param(strcat(gcb,'/Old'),'Value',num2str(D))
end
if D==2
if OldK==1
delete_line( gcb, 'From/1', strcat( 'Relational', char(13), 'Operator', '/1' ) )
add_line( gcb, 'From1/1', strcat( 'Relational', char(13), 'Operator', '/1' ) )
end
set_param(strcat(gcb,'/Old'),'Value',num2str(D))
end
return
 
Узлы типа Q. Эти узлы используются для выбора направления движения заявки в зависимости от длины очереди к устройству или памяти, перед которыми размещается узел. Узел всегда имеет два выхода. На один из них заявка поступает тогда, когда суммарная очередь к устройству меньше некоторой установленной величины, в противном случае заявка поступает на второй выход узла. Узел типа Q задается набором параметров: Q, NAME, QL, NAME1, NAME2, где Q — признак типа узла; NAME — символическое имя узла; QL — длина очереди; NAME1 — символическое имя ресурса, на который направляется заявка, если длина очереди к данному ресурсу меньше QL; NAME2 — символическое имя элемента сети, на который направляется заявка, если длина очереди к ресурсу о именем NAME1 больше или равна QL.
Узлы типа С. Узлы типа С используются при организации циклического прохождения заявками некоторого маршрута в сети. В узле подсчитывается число поступлений конкретной заявки на его выход. Узел всегда имеет два выхода. На один из них заявка направляется в случае, когда число повторений маршрута не превосходит заданного, а на другой — в противном случае. Число повторений маршрута задается символическим именем закона распределения числа повторений и параметрами закона. При этом используются те же распределения, что и для длительности обслуживания. Узел типа С описывается набором параметров: С, NAME, NAME1, NAME2, GIST, Pl, Р2, где С — признак типа узла; NAME — символическое имя узла; NAME1 — символическое имя элемента, на который направляется заявка, если число повторений маршрута не превосходит заданного; NAME2 — символическое имя элемента, на который направляется заявка в противном случае; GIST — символическое имя закона распределения числа повторений маршрута; P1, Р2 — параметры закона.
 
Реализация узла типа C в среде MATLAB
 
Prompt Type Variable
Quant. bids
Quant. Rounds Edit
Edit QB
QR
Initialization commands
set_param( gcb, 'ReferenceBlock', '' )
global r
r=str2num(get_param(gcb,'QR'))
set_param(strcat(gcb,'/_Handle'),'Value',num2str(gcbh,16))
k=QB
OldK=str2num(get_param(strcat(gcb,'/Old'),'Value'))
if k>OldK
for i=OldK+1:k
add_block( 'Librs/Constant' , strcat( gcb, '/Constant', num2str(i)),'Value','[0 0 0 0]')
add_block( 'Librs/Constant' , strcat( gcb, '/_Constant_' , num2str(i)),'Value','0')
end
else
for i=k+1:OldK
delete_block( strcat( gcb, '/Constant' , num2str( i ) ) )
delete_block( strcat( gcb, '/_Constant_' , num2str( i ) ) )
end
end
set_param(strcat(gcb,'/Old'),'Value',num2str(k))
set_param( strcat( gcb, '/Outfrom' ),'Value','[0 0 0 0]')
for i=1:k
set_param( strcat( gcb, '/Constant', num2str(i)),'Value','[0 0 0 0]')
set_param( strcat( gcb, '/_Constant_' , num2str(i)),'Value','0')
end
return
function M=hub_c(u)
global r;
Old=str2num(get_param(strcat(getfullname(u(5)),'/Old'),'Value'));
l=0;
if (u(1)+u(2)+u(3)+u(4)~=0)
for i=1:Old
N=str2num(get_param(strcat(getfullname(u(5)),'/Constant',num2str(i)),'Value'))
if N==[u(1) u(2) u(3) u(4)] 
N0=str2num(get_param(strcat(getfullname(u(5)),'/_Constant_',num2str(i)),'Value'))
N0=N0+1
if N0<r
set_param(strcat(getfullname(u(5)),'/_Constant_',num2str(i)),'Value',num2str(N0))
set_param(strcat(getfullname(u(5)),'/Outfrom'),'Value','[0 0 0 0]')
M=N
else
set_param(strcat(getfullname(u(5)),'/Constant',num2str(i)),'Value','[0 0 0 0]')
set_param(strcat(getfullname(u(5)),'/_Constant_',num2str(i)),'Value','0')
set_param(strcat(getfullname(u(5)),'/Outfrom'),'Value',strcat('[',num2str([u(1) u(2) u(3) u(4)]),']'))
M=[0 0 0 0]
end 
l=1
break
end
end
ll=0;
if l==0
for i=1:Old
NN=str2num(get_param(strcat(getfullname(u(5)),'/Constant',num2str(i)),'Value'))
if NN==[0 0 0 0] 
set_param(strcat(getfullname(u(5)),'/Constant',num2str(i)),'Value',strcat('[',num2str([u(1) u(2) u(3) u(4)]),']'))
set_param(strcat(getfullname(u(5)),'/_Constant_',num2str(i)),'Value','0')
set_param(strcat(getfullname(u(5)),'/Outfrom'),'Value','[0 0 0 0]')
M=[u(1) u(2) u(3) u(4)]
ll=1;
break
end
end 
end
if ll==0
set_param(strcat(getfullname(u(5)),'/Outfrom'),'Value',strcat('[',num2str([u(1) u(2) u(3) u(4)]),']'))
M=[0 0 0 0]
end 
l=0;
end
return
 
Узлы типа М. Эти узлы используются для модификации параметров заявок указанного типа, проходящих через узел: абсолютного и относительного приоритетов. В узле может осуществляться модификация любого числа параметров заявки. Если во входном потоке присутствуют заявки разных типов, то модификация параметров производится только для заявок, тип которых указан в описании узла.
 
Тип узла
 
Описание узла типа М задается набором параметров: М, NAME, TYPE1, AP1, RP1, TYPE2, АР2, RP2, где М — признак типа узла; NAME — символическое имя узла; TYPE1, АР1 и RP1 — тип, абсолютный и относительный приоритет входящей заявки соответственно, TYPE2, АР2 и RP2 — модифицированные параметры входящей заявки.
Описания узлов сетевой модели сводятся в таблицы, служащие исходными документами для программы моделирования. Табл. 10.5 — 10.11 — примеры таблиц описания соответственно узлов типа D и U, R, S, Р, Q, С, М.
 
Реализация узла типа M в среде MATLAB
 
Prompt Type Variable
Type
Change Edit
Edit T
Ch
Initialization commands
set_param( gcb, 'ReferenceBlock', '' )
set_param(strcat(gcb,'/Constant'),'Value',num2str(T))
set_param(strcat(gcb,'/Constant1'),'Value',num2str(Ch(1)))
set_param(strcat(gcb,'/Constant2'),'Value',num2str(Ch(2)))
 
Структура сети. Для описания структуры сети используется способ задания связей между элементами по выходам. Каждый элемент сети представляется набором параметров: NAME, NAME1, NAME2, ..., NAMEN, где NAME — символическое имя описываемого элемента; NAME1, NAME2,..., NAMEN — символические имена элементов сети, связанных с данным элементом по выходам. Описания связей элементов сети сводятся в таблицу, являющуюся исходным документом при подготовке данных для программы моделирования. Табл. 10.12 — пример таблицы описания связей элементов сети. При описании приемников заявок, не имеющих выходов, в таблицу помещаются только имена элементов. Порядок перечисления выходов элементов, являющихся узлами, в табл. 10.12 безразличен, поскольку описание выходов каждого из узлов помимо табл. 10.12 содержатся в таблицах описания узлов соответствующего типа. В таблицу связей описания выходов узлов помещаются только с целью контроля.
Длительность моделирования. Длительность имитационного эксперимента может задаваться одним из следующих способов:
1. Явное задание времени эксперимента в виде абсолютного значения времени. Временные характеристики источников заявок, длительностей обслуживания и время эксперимента должны задаваться с использованием одной единицы измерения времени.
2. Неявное задание времени эксперимента. Момент окончания моделирования определяется по прохождении заданного числа заявок через некоторый (любой) элемент сети, называемый контрольным. Если момент окончания моделирования определяется безотносительно к типу заявок, должно быть задано только количество заявок, прошедших через контрольный элемент. В противном случае вместе с количеством указывается тип заявок, принимаемых в расчет при определении момента окончания моделирования.
Длительность эксперимента, а также данные о количестве элементов каждого типа в сети, характеризующие модели в целом, указываются в сводной таблице, пример которой — табл. 10.13.
 
Реализация CPU в среде MATLAB
 
Prompt Type Variable
 
Initialization commands
set_param( gcb, 'ReferenceBlock', '' )
function M=Cpu(u)
if (u(1)+u(2)+u(3)+u(4)~=0)
M=0
else
M=1
end
return
 
Реализация блока System Time в среде MATLAB
 
Prompt Type Variable
Step Time Edit Step
Initialization commands
set_param( gcb, 'ReferenceBlock', '' )
Фото Капча