Обозначения для транзактов
Для транзакта имеется пять типов записей:
- номер транзакта;
- время, на которое запланирована попытка войти в следующий блок (время движения);
- номер блока, через который транзакт сейчас проходит (текущий блок);
- его уровень приоритета;
- номер следующего блока, в который делается попытка войти.
Эта информация записывается в виде пяти символов в указанном порядке. Общий вид такой пятипозиционной записи представлен на рис.13.2,а. Численный пример представлен на рис.13.2,б.
Численный пример показывает, что транзакт номер 9 пытается в момент времени, равный 68, выйти из блока 5 и войти в блок 6. Транзакт номер 9 имеет нулевой приоритет.
Рис.13.2.[ Номер транзакта. Время движения. Номер текущего блока.
Уровень приоритета. Номер следующего блока]
[9.68.5.0.6]
Рис. 13.3. Перемещение транзактов между пассивным и активным буферами.
Как указывалось ранее, номер транзактам присваивает интерпретатор. Величина номера зависит от того, как много транзактов могут одновременно находиться в модели. Это число зависит от объема предоставляемой памяти. При объеме памяти в 64К максимальным числом транзактов является 200.
Ясно, что номера транзактов могут быть от 1 до 200. Транзакты могут принадлежать к одной из двух групп. Одна группа - это скрытая или пассивная группа транзактов, находящаяся в пассивном буфере, в отличие от транзактов, уже участвующих в модели. Другая группа хранится в активном буфере транзактов, т. е. они уже вошли в модель через один или более блоков GENERATE и пока еще не удалены из модели. (Существует еще один тип блоков, через которые транзакты могут войти в модель.)
Прежде чем начинается моделирование, транзакты в пассивном буфере располагаются в порядке возрастания номеров. В модели на 64К транзакты в пассивном буфере располагаются в порядке номеров 1, 2,....., 200. Этот буфер можно представить себе как расположенный "сверху - вниз" транзакт 1 находится в вершине буфера, транзакт 2 под ним и т.д. до последнего транзакта 200, находящегося в самом низу.
При возникновении необходимости ввести в модель транзакт интерпретатор достает его из вершины пассивного буфера.
Этот транзакт вносится в модель через цепь будущих событий с помощью процедуры, которая будет описана ниже. И наоборот, когда возникает необходимость удалить соответствующий транзакт, его убирают из модели и помещают обратно в вершину пассивного буфера. Перемещение транзактов между пассивным и активным буферами показано на рис.13.3. Номера блоков присваиваются в том порядке, в котором стоят карты блоков в колоде. Например, на рис.13.5 представлено повторение распечатки программы рис.13.4 с номерами блоков, присвоенными интерпретатором. Номера блоков стоят в левой колонке.
Рис.13.4. Пример моделирования 2A. Модель и распечатка программы:
а -заполненный бланк для перфорации модели;
б - распечатка программы для модели, представленной в части а. На бланке показаны поля имени (LOCATION),операции (OPERATION) и операндов (помечено символами А,В, С,D,Е,F,G). На распечатке поле имени отмечено символами * LOC.
а)
LOCATION |   | OPERATION | A,B,C,D,E,F ------------------------> | ||||||||||||||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 0 | 1 1 | 1 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 2 0 | 2 1 | 2 2 | 2 3 | 2 4 | 2 5 | 2 6 | 2 7 | 2 8 | 2 9 | 3 0 | 3 1 | 3 2 | 3 3 | 3 4 | 3 5 | 3 6 | 3 7 | 3 8 | 3 9 | 4 0 | 4 1 | 4 2 | 4 3 | 4 4 | 4 5 | 4 6 |
  |   |   |   |   | S | I | M | U | L | A | T | E |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | M | O | D | E | L |   | S | E | G | M | E | N | T |   | 1 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | G | E | N | E | R | A | T | E |   | 1 | 8 | , | 6 |   | П | Р | И | Х | О | Д |   | К | Л | И | Е | Н | Т | О | В |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | Q | U | E | U | E |   |   |   |   | J | O | E | Q |   | П | Р | И | С | О | Е | Д | И | Н | Е | Н | И | Е |   | К |   | О | Ч | Е | Р | Е | Д | И |   |   |   |   |
  |   |   |   |   | S | E | I | Z | E |   |   |   |   | J | O | E |   |   | П | Р | И | Х | О | Д |   | В |   | К | Р | Е | С | Л | О |   | П | А | Р | И | К | М | А | Х | Е | Р | А |
  |   |   |   |   | D | E | P | A | R | T |   |   |   | J | O | E | Q |   | У | Х | О | Д |   | И | З |   | О | Ч | Е | Р | Е | Д | И |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | A | D | V | A | N | C | E |   |   | 1 | 6 | , | 4 |   | О | Б | С | Л | У | Ж | И | В | А | Н | И | Е |   | У |   | П | А | Р | И | К | М | А | Х | Е | Р | А |   |
  |   |   |   |   | R | E | L | E | A | S | E |   |   | J | O | E |   |   | О | С | В | О | Б | О | Ж | Д | Е | Н | И | Е |   | П | А | Р | И | К | М | А | Х | Е | Р | А |   |   |   |
  |   |   |   |   | T | E | R | M | I | N | A | T | E |   |   |   |   |   | У | Х | О | Д |   | И | З |   | П | А | Р | И | К | М | А | Х | Е | Р | С | К | О | Й |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | M | O | D | E | L |   | S | E | G | M | E | N | T |   | 2 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | G | E | N | E | R | A | T | E |   | 4 | 8 | 0 | , | 1 |   | Т | А | Й | М | Е | Р |   | П | Р | И | Х | О | Д | И | Т |   | В |   | М | О | М | Е | Н | Т |   |   |
  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | В | Р | Е | М | Е | Н | И | , | Р | А | В | Н | Ы | Й |   | 4 | 8 | 0 |   |   |
  |   |   |   |   | T | E | R | M | I | N | A | T | E |   | 1 |   |   |   |   | З | А | В | Е | Р | Ш | Е | Н | И | Е |   | П | Р | О | Г | О | Н | А |   |   |   |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | C | O | N | T | R | O | L |   | C | A | R | D | S |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | S | T | A | R | T |   | 1 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | E | N | D |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
BLOCK NUMBER *LOG OPERATION A,B,C,D,E,F,G COMMENTS SIMULATE * * MODEL SEGMENT 2 * 1 GENERATE 460 TIMER ARRIVES AT TIME 460 2 TERMINATE 1 SMUT OFF THE RUN * * MODEL SEGMENT 1 * 3 GENERATE 16,6 CUSTOMERS ARRIVE 4 QUEUE JOEQ ENTER THE LINE 5 SEIZE JOE CAPTURE THE BARBER 6 DEPART JOEQ LEAVE THE LINE 7 ADVANCE 16,4 USE THE BARBER 8 RELEASE JOE FREE THE BARBER 9 TERMINATE LEAVE THE SHOP * * CONTROL CARDS * START 1 START THE RUN END RETURN CONTROL TO OPERATING SYSTEM |
BLOCK NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS SIMULATE * * MODEL SEGMENT 1 * 1 GENERATE 18,6 CUSTOMERS ARRIVE 2 QUEUE JOEQ ENTERTHE LINE 3 SEIZE JOE CAPTURE THE BARBER 4 DEPERT JOEQ LEAVE THE LINE 5 ADVANCE 16,4 USE THE BARBER 6 RELEASE JOE FREE THE BARBER 7 TERMINATE LEAVE THE SHOP * * MODEL SEGMENT 2 * 8 GENERATE 480 TIME ARRIVES AT TIME 480 9 TERMINATE 1 SHUT OFF THE RUN * * CONTROL CARDS * START 1 SRART THE RUN END RETURN CONTROL TO OPERATING SYSTEM |