Полная версия

Главная arrow Информатика arrow Имитационное моделирование

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

Работа с ресурсом типа «Устройство».

Структурная схема работы программы показана на рис. 2.12. По команде «Занять устройство» блок 2 проверяет, свободно ли устройство, поскольку очередь на входе устройства может отсутствовать, но заявка в устройстве находится в процессе обработки. Если устройство свободно (блок 2), то следует установка признака занятости устройства (блок 3), записываются в поле транзак- та новые значения операндов (блок 4) и определяется новое время освобождения ресурса (блок 5), после чего управление передается текущему процессу (блок 6) и дальнейший ход моделирования идет в соответствии с программой.

Рис. 2.12

Если оказывается, что очередь к устройству не пуста, то проверяется приоритет поступившего транзакта (блок 7). Если его приоритет относительный, то он пополняет очередь. В случае, когда его приоритет абсолютный, необходимо провести анализ, как он соотносится с приоритетом обрабатываемого транзакта. Если приоритет обрабатываемого транзакта выше (Побр > Пп), пришедший транзакт направляется в очередь (блок 9) и его дальнейшая судьба определяется общей ситуацией в модели.

В противном случае следует прервать обработку текущего транзакта, запомнить и передать идентификатор процесса и значения операндов транзакта в очередь активизированных

(прерванных) событий (блоки 9 и 10) и начать обработку поступившего транзакта (выход 4 в ММ).

По команде «Освободить устройство» транзакт покидает устройство и дальнейшее управление процессом передается программе.

Работа с ресурсом типа «Память».

Структурная схема, описывающая работу с ресурсом типа «Память» по команде «Занять память», показана на рис. 2.13. При приходе запроса 2 из ММ в блоке 1 проверяется, достаточно ли места в памяти для размещения информации по данному запросу. Если места достаточно, то срабатывает блок 3, изменяя свободный ресурс памяти, и блок 4 записывает новые значения операндов (время захвата памяти, оставшийся свободный ресурс памяти) и передает управление по выходу 6 в ММ и далее в программу.

Рис. 2.13

Если свободного ресурса недостаточно, то запрос ставится в очередь (блок 3), информация передается в ММ, который собирает и обрабатывает статистику (время обращения, идентификатор процесса, требуемый объем памяти) и возвращает управление программе моделирования.

По команде «Освободить память» количество занятых единиц памяти уменьшается на значение, указанное в операнде транзакта. В тот момент времени, когда транзакт освобождает память, просматривается список задержаных в ее очереди транзактов (если они есть). Для каждого очередного транзак- та проверяется, может ли он теперь быть обслужен памятью. Если такая возможность есть, формируется команда «Занять память» и число занятых единиц памяти соответствующим образом увеличивается.

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>