Работа основных блоков монитора моделирования

Ввиду большой важности рационального построения ММ, рассмотрим более подробно организацию его основных блоков (их функции определены в гл.2, разд.2.3)

Блок «Управление процессами» (БУП) (рис.13) используется при работе с очередью будущих событий (которая может реализовываться либо в виде таблицы с записью событий в момент их прогнозирования, либо упорядоченным по времени их возникновения списком событий) и очередью текущих, активизированных событий. Эти очереди событий имеют информационные поля, в которых указываются процессы, породившие возникновение события (для возврата управления в процесс, который должен обрабатывать наступившие события, т.е. выполнять программы, имитирующие поведение моделируемого объекта при возникновении соответствующих событий), поля, где указана причина приостанова работы процесса (например, какой ресурс недоступен), поле с указанием значения времени, когда процесс должен опять стать активным (например, оператор «ждать»). События, стоящие в очереди активизированных событий (блок 1), могут блокироваться (задерживается момент их «наступления»): а) обработкой активного события; б) занятостью требуемого ресурса; в) логическим условием.

РиРис. 13

Блок 2 проверяет наличие очереди активизированных (ОА) событий. Если нет активизированного события (ОА = 0), проверяется очередь будущих (ОБ) событий (блок 3). Если очередь есть (ОБ > 0, что и должно быть при нормально работающей программе), то включаются в работу блоки 4, 5, 6. В этих блоках определяется время ближайшего(их) события(ий), так как могут возникать несколько событий одновременно, вычисляется  

Рис. 14

от текущего значения счетчика модельного времени до ближайшего события, корректируется  и формируется ОА.

Остальные блоки алгоритма 7-13 управляют реактивизацией процессов, прерыванием и остановом. Информация, содержащаяся в блоках блок-схемы, достаточна для правильного восприятия алгоритма работы «Управление процессами».

Блок «Работа с ресурсами типа «устройство», обработка запроса «занять устройство» (рис.14). При появлении запроса на «захват» устройства на входе И1 работает блок 1, проверяя свободно ли устройство «У». Если устройство занято, то проверяется тип приоритета запроса (абсолютный или относительный в блоке 6), блоки 7 и 8 проверяют значение приоритета и либо ставят запрос в очередь, либо прерывают обрабатываемый устройством запрос и ставят его в очередь на дообслуживание (на время, которое осталось до полного завершения обработки запроса 0).

Блоки 9 и 10 запоминают соответствующие характеристики (поступившего или обрабатывающегося запросов). Блок 11 осуществляет выбор из очереди к устройству «У» приоритетного запроса.

Блоки 3 и 4 ставят признаки занятости устройства «У», корректируют статистику по устройству и возвращают управление в ММ блок 1 (см. рис.12а)

Блок 9 возвращает управление в блок 8 ММ (см. рис. 12а).

Блок-схема обработки запроса типа «освободить устройство» здесь не представлена, так как она более проста и не составит труда построить ее самостоятельно. Этот запрос должен снять признак занятости устройства, возврат в ММ, что позволит монитору осуществить выбор из очереди к устройству претендента на освободившийся ресурс, скорректировать статистику, собираемую по использованию каждого ресурса и активизировать или реактивизировать необходимый процесс.

Блок «Работа с ресурсом типа «память». Блок-схема, описывающая работу с запросом типа «войти в память», показана на рис.15. При приходе запроса на вход И2 в блок 1 проверяется, достаточно ли места в памяти для размещения информации по данному запросу. Если достаточно, то срабатывают блоки 2, 3, 4 и 5, изменяя объем оставшейся свободной памяти, фиксируется время события, производится коррекция параметров, запись статистики и возврат в вызвавший процесс.

Если ресурс недостаточен, то запрос ставится в очередь к памяти (блок 6), запоминаются характеристики запроса, корректируется статистика (блок 7) и осуществляется возврат в ММ по Ml (см. рис.12а).

При обработке запроса типа «освободить память», блок-схема алгоритма которого здесь не представлена (оставлена для самостоя­тельной работы), осуществляются следующие действия: увеличивается значение свободной памяти П (), корректируется статистика по использованию памяти, через ММ осуществляется возврат на продолжение работы процесса, породившего запрос на освобождение памяти. ММ при этом повторно осуществляет про­верку— не достаточна ли ставшая свободной память в П (если очередь имеется). При «достаточности» свободного места снимается блокировка с ожидавшего процесса и он реактивизируется, реа­лизуя запрос по И2.                                                               

Рис. 15


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: