Имитационное моделирование фрагмента центра коммутации и анализ его параметров, страница 6

Алгоритм подпрограммы  bufer

 


1

 


r:=wait[1]

 
                                        2

 


да       3                                              нет

 


4

Otk3=otk3+1

S_line[r]=0

Wait[1]=0

Structuir_bufer

 
 


5

 


да       6                                     нет

 


Блок-схема: решение: n<>h                                                да       7                      нет

 


n=n+1

 
                           8

 


да      9                                             нет

 


Waite[n]=wait[h]

Wait[h]=0

n=h

 
                       10

Блок-схема: альтернативный процесс: конец
 


Описание процедуры bufer.

Процедура bufer моделирует работу буфера. Подпрограмма начинается с описания локальных переменных используемых в теле процедуры для хранения промежуточных результатов и в качестве счетчика цикла. Во втором блоке алгоритма подпрограммы в локальную переменную r записывается номер соединительной линии занятой вызовом стоящим первым в очереди на обслуживание, следующий блок проверяет, не превышен ли порог ожидания  в очереди данного вызова. В случае если вызов, поступивший, по соединительной линии r достиг, предела времени ожидания в очереди программа приступает к выполнению операторов представленных в блоке номер четыре. Увеличивается счетчик отказов третьего типа. Затем в результате выполнения операторов S_line[r]:= 0; Wait[1]=0 обнуляется отсчет времени обслуживания и номер соединительной линии. После ухода в отказ первого в очереди вызова для продвижения очереди запускается подпрограмма structuir_bufer. Так как поступающие вызовы записываются в последнюю ячейку h массива wait а выход из буфера происходит только из первой ячейки то возможны ситуации когда в очереди будут пробелы для упорядочивания очереди   выполняется цикл с пред условием 7. В теле цикла находится первая свободная позиция  (условие в девятом блоке) которую и занимает вызов стоящий последним в очереди десятый блок выше приведенного алгоритма.

Алгоритм подпрограммы  ent_bufer

Блок-схема: альтернативный процесс: Заголовок процедуры
 


Блок-схема: данные: Var
b :integer

                                                                  1

 


Блок-схема: решение: Wait[1]<>0                                                                 2

                                                  да                                                       нет

Server[v]=wait[1]

 
 


3

 


Write(‘линия=',server[v] )

 
                      4

 


Wait[1]=0

 
                      5

 


6

 


S_line[b] = -1

 
                       7

 


8

Блок-схема: альтернативный процесс: end