Алгоритм
подпрограммы bufer
1
2
да 3 нет
4
|
|
|
|
|
Otk3=otk3+1
S_line[r]=0
Wait[1]=0
Structuir_bufer
|
|
|
|
|
 |
5
да 6 нет
да 7 нет
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
1
2

да нет
3
Write(‘линия=',server[v] )
|
|
4
5
6
7
8