4.16. Организация обслуживанияcпрерыванием. Блоки preempt и return
Во многих случаях возникает необходимость организации обслуживания в устройстве cпрерываниями (например, при выполнении некоторой операции на станке произошла его поломка). Такую ситуацию можно смоделировать, считая, что отказ оборудования представляет собой транзакт, приоритет которого выше, чем у транзакта, обрабатываемого станком. В этом случае более приоритетный транзакт должен прервать обслуживание менее приоритетного транзакта, т.е. выгрузить его из устройства. Отсюда понятен дословный переводcанглийского словаpreempt – выгрузить, ноcточки зрения работы одноканальнойCMOпринято использовать термин ЗАХВАТИТЬ устройство [10]. Для организации обслуживания в устройствеcпрерываниями используют пару блоковPREEMPT (ЗАХВАТИТЬ) – RETURN (ВЕРНУТЬ) так же, как для обычного устройства без прерываний использовались блокиSEIZE – RELEASE.
Блок PREEMPT имеет следующий формат:
PREEMPT A,[B],[C],[D],[E]
Таблица 4.36
Операнд | Значение | Результат по умолчанию |
А | Имя устройства (числовое или символьное) | Ошибка |
В | Возможность захвата по приоритету | Режим прерывания |
С | Имя блока (числовое или символьное), в который переходит прерванный транзакт | См. объяснение ниже |
D | Номер параметра (числовое или символьное имя) у прерванного транзакта | См. объяснение ниже |
Е | Возможность снятия с обслуживания | См. объяснение ниже |
Блок PREEMPT позволяет транзакту в зависимости от условий, заданных в операндах блока, занять устройство. БлокPREEMPT может также задержать транзакт на входе.
Операнд А определяет номер или имя устройства, на котором генерируется прерывание. Операнд может быть именем, положительным целым, СЧА илиCЧA*CЧA.
Операнд Взадает приоритетный режим (еслиB=PR) или режим прерывания (если этот операнд опущен). При работе в приоритетном режиме транзакт, уже занимающий устройство или генерирующий на нем прерывание, может быть прерван только транзактом, приоритет которого выше приоритета данного транзакта. Прерванные транзакты претендуют на дополнительное использование устройства, когда прервавший их транзакт войдет в соответствующий блокRETURN. Прерванные транзакты помещаются в список задержки в порядке приоритета.
Операнд Cзадает номер или имя блока, в который в этот же момент времени должен попытаться войти прерванный транзакт. Прерванный транзакт теряет управление устройством, но претендует на право его использования, если только не задан аргумент операнда Е. В приоритетном режиме работы желательно задавать операндC, если прерывающий транзакт имеет более высокий приоритет, чем прерываемый. Операнд может быть именем, положительным целым, СЧА илиCЧA*CЧA.
Операнд Dзадает номер параметра, связанногоcпрерванным транзактом. Если прерываемый транзакт в момент прерывания направляется в список будущих событий (см. параграф 4.22), тогда остаток времени записывается в заданный параметр. Если такой параметр не существует, то он создается. В приоритетном режиме работы операндDзадают только в том случае, если прерывающий транзакт имеет более высокий приоритет, чем прерываемый транзакт. Операнд может быть именем, положительным целым, СЧА илиCЧA*CЧA.
Операнд Езадает либо не задает режим удаления (RE).Bрежиме удаленияREпрерванный транзакт более не претендует на использование устройства и пытается войти в блок, заданный операндомC(если в операндеЕстоитRE, то должен быть определен и операндC). В приоритетном режиме работы режимREиспользуется только в том случае, если приоритет прерывающего транзакта больше приоритета прерываемого транзакта. При использованииREпрерванный транзакт не должен входить в блокиRELEASE илиRETURN, связанные устройством, в котором обслуживался прерванный транзакт. Если режимREне задан (операнд E опущен), то прерванный транзакт по возвращении в список текущих событий будет вновь пытаться занять устройство.
Прерываемый транзакт может находиться в списке будущих событий. Если надо сделать это, то используют операнд D.
Прерванный транзакт борется за устройство, даже если он перемещен операндом C(еслиREне используется в операндеE). Если прерванный транзакт все еще борется за устройство, то попытка транзакта войти в блокTERMINATE приводит к ошибке. Такой транзакт перед входом в блокTERMINATE должен войти в блокиRELEASE или RETURN
Транзакт может быть прерван на любом количестве устройств.
Устройство может быть захвачено любое количество раз, но не два раза подряд одним транзактом.
Транзакт не может войти в блок, если в приоритетном режиме устройство уже захвачено транзактом cприоритетом равным или большим, чем приоритет активного транзакта. Активный транзакт помещается в соответствииcприоритетом в список задержки устройства.
Транзакт не может войти в блок, если устройство находится в недоступном состоянии. Такие транзакты помещаются в список задержки устройства в соответствии cприоритетом, А внутри приоритета – по правилуFIFO.
Стандартные числовые атрибуты, связанные cописываемым блоком, те же, что и в табл. 4.26,cдобавлением СЧАFIj– флаг прерывания устройства (1, если устройство находится в состоянии прерывания, 0 – в противном случае).
Следует обратить внимание, что при задании операндов Dи (или)E, операндCтакже должен быть задан.
Если приоритетный режим не задан (нет PRв операндеВ), то операндыC,Dи (или) E игнорируются. Однако возможен вариант, когда для прерванного транзакта выбирается альтернативный выход, причем приоритет транзакта не учитывается. Этот случай возникает тогда, когда задан операндC(а иногда и операндыDи (или)E), но в операндеВне задан приоритетный режим. Такое использование операндов приводит к тому, что занимающий устройство транзакт прерывается и направляется по альтернативному пути. В данном случае многоуровневые прерывания не происходят.
Пары блоков SEIZE – RELEASE и PREEMPT – RETURN могут использовать одни и те же имена занимаемых устройств. В зависимости от логики работы модели пользователь должен сам определить, в каком случае разрешать прерывания, А в каком – нет.
Блок RETURN является парным к блокуPREEMPT, также как блокRELEASE к блокуSEIZE, и предназначен для освобождения ранее захваченного устройства. Он имеет следующий формат:
RETURN А
Таблица 4.37
Операнд |
| Значение |
| Результат по умолчанию |
А | Имя устройства (числовое или символьное) | Ошибка |
В операнде А задается номер устройства,cкоторого снимается прерывание. Прерывание может быть снято в блокеRETURN только тем транзактом, которым оно было сгенерировано.
Операнд А может быть именем, положительным целым, СЧА илиCЧA*CЧA.
Пример 4.37
Рассмотрим пример работы компьютера, задействованного в управлении технологическим оборудованием. Для контроля состояния оборудования каждые 20 мин запускается одна из трех типов задач. Через каждые 5 мин работы процессора каждая задача выводит результаты работы в базу данных. При обращении двух и более задач к базе данных (БД) образуется очередь, которая обслуживается по правилу FIFO.
Общий объем памяти компьютера 1024Кбайт. В первоначальный момент запуска компьютера загружается ОС, ядро которой постоянно находится в памяти и занимает 200 Кбайт. Компьютер рабогает в мультипрограммном режиме и во время выполнения операций вывода в БД процессор может выполнять другую задачу, если она загружена в память. После последнего вывода в БД задача выгружается из памяти и завершает свою работу.
Периодически cинтенсивностьюλ=0,005 мин-1и экспоненциальным распределением возникает аварийный режим оборудования, при котором немедленно запускается на выполнение задача четвертого типа, выводящая оборудование из аварийного режима. Она прерывает работу всех других задач. Прерванная задача выгружается из памяти без вывода результатов в БД. По окончании выполнения задачи четвертого типа, она имеет преимущество для вывода в БД перед другими задачами. Вытесненные задачиcмагнитного диска загружаются в память и продолжают работу. Необходимые данные для моделирования приведены в табл. 4.38.
Таблица 4.38
Тип задачи | 1 | 2 | 3 | 4 |
Вероятность возникновения | 0,5 | 0,3 5 | 0,1 5 | – |
Объем памяти, Кбайт | 200 | 300 | 400 | 500 |
Время обработки ЦП, мин | 15 | 20 | 25 | 5 |
Время вывода в БД, мин | 3 | 5 | 7 | 2 |
Необходимо промоделировать работу компьютера в течение пяти суток и оценить размер очереди к памяти, ее загрузку и загрузку процессора.
Учитывая, что программа полностью прокомментирована, дадим только некоторые пояснения к ней. Задачи 1-го, 2-гo, 3-го типов имеют приоритет равный 0. Задача четвертого типа, обрабатывающая аварийную ситуацию, имеет приоритет 3. При ее появлении немедленно занимается процессор и, если в это время выполняется задача другого типа, то она прерывается и выгружается из памяти (операндВблокаPREEMPT направляет прерванный транзакт в блокcметкойSVOP).
Для запуска работы компьютера используется один транзакт cприоритетом 5, который занимает 2 единицы памяти (200 Кбайт) и имитирует загрузку ядра ОС в память.
Программа:
Результаты моделирования:
- Предисловие
- Введение
- Глава 1. Модели массового обслуживания
- 1.1. Системы массового обслуживания и их характеристики
- 1.2. Системыcодним устройством обслуживания
- 1.3. Основы дискретно-событийного моделированияCmo
- 1.4. Многоканальные системы массового обслуживания
- Переменная vаr1, экспоненциальное распределение
- Глава 2. Вероятностные сети систем массового обслуживания
- 2.1. Общие сведения о сетях
- 2.2. Операционный анализ вероятностных сетей
- 2.3. Операционные зависимости
- 2.4. Анализ узких мест в сети
- Глава 3. Вероятностное моделирование
- 3.1. Метод статистических испытаний
- 3.2. Моделирование дискретных случайных величин
- 3.3. Моделирование непрерывных случайных величин
- 3.4. Сбор статистических данных для получения оценок характеристик случайных величин
- 3.5. Определение количества реализаций при моделировании случайных величин
- Глава 4. Система моделированияgpss
- 4.1. Объекты
- 4.2. Часы модельного времени
- 4.3. Типы операторов
- 4.4. Внесение транзактов в модель. БлокGenerate
- 4.5. Удаление транзактов из модели. БлокTerminate
- 4.6. Элементы, отображающие одноканальные обслуживающие устройства
- 4.7. Реализация задержки во времени. БлокAdvance
- 4.8. Сбор статистики об ожидании. БлокиQueue,depart
- 4.9. Переход транзакта в блок, отличный от последующего. БлокTransfer
- 4.10. Моделирование многоканальных устройств
- 4.11. Примеры построенияGpss-моделей
- 4.12. Переменные
- 4.13. Определение функции вGpss
- 4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop
- Примеры фрагментов gpss-моделейcиспользованием сча и параметров гранзактов
- 4.15. Изменение приоритета транзактов. БлокPriority
- 4.16. Организация обслуживанияcпрерыванием. Блоки preempt и return
- 4.17. Сохраняемые величины
- 4.18. Проверка числовых выражений. БлокTest
- 4.19. Определение и использование таблиц
- 4.20. Косвенная адресация
- 4.21. Обработка транзактов, принадлежащих одному семейству
- 4.22. Управление процессом моделирования в системеGpss
- 4.23. Списки пользователей
- 4.24. Блоки управления потоками транзактовLogic,gatelr,gatelSиGate
- 4.25. Организация вывода временных рядов изGpss-модели
- 4.26. Краткая характеристика языкаPlus
- 4.27. КомандыGpssWorId
- 4.28. Диалоговые возможностиGpssWorld
- 4.29. Отличия междуGpssWorldиGpss/pc
- Глава 5. Моделирование вычислительных и операционных систем
- 5.1. Операционные системы компьютеров
- 5.2. Сети и системы передачи данных
- 5.3. Проблемы моделирования компьютеров и сетей
- Глава 6. Основы моделирования процессов
- 6.1. Производственные процессы
- 6.2. Распределительные процессы
- 6.3. Процессы обслуживания клиентов
- 6.4. Процессы управления разработками проектов
- Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии
- Задание 2 [10]. Моделирование контроля и настройки телевизоров
- Задание 3. Моделирование работы кафе
- Задание 4. Моделирование работы обрабатывающего цеха
- Задание 5. Моделирование работы обрабатывающего цеха
- Задание 6. Моделирование работы обрабатывающего цеха
- Задание 7. Моделирование работыCmo
- Задание 8. Моделирование функций
- Задание 9 [10]. Моделирование системы обслуживания
- Задание 10 [16]. Моделирование системы автоматизации проектирования
- Задание 11 [16]. Моделирование работы транспортного цеха
- Задание 12 [16]. Моделирование системы передачи разговора
- Задание 13 [16]. Моделирование системы передачи данных
- Задание 14 [16]. Моделирование узла коммутации сообщений
- Задание 15 [16]. Моделирование процесса сборки
- Задание 16 [16]. Моделирование работы цеха
- Задание 17 [16]. Моделирование системы управления производством
- Задание 18. Моделирование производственного процесса
- Задание 19. Моделирование работы заправочной станции
- Задание 20. Моделированиеработы станции технического обслуживания
- Задание 21. Моделирование работы станции скорой помощи
- Задание 22. Моделирование работы госпиталя
- Задание 23. Моделирование работы маршрутных такси
- Задание 24. Моделирование работы печатной системы
- Задание 25. Моделирование процесса сборки пк
- Глава8. Проектирование имитационных моделей c помощью интерактивной системы имитационного моделирования
- 8.1. Структура интерактивной системы имитационного моделирования
- 8.2. Построение концептуальной схемы модели
- 8.3. Параметрическая настройка модели
- 8.4. Генератор формул
- 8.5. Управление экспериментом
- 8.6. Запуск эксперимента и обработка результатов моделирования
- 8.7. Управление проектами и общей настройкой системы
- 8.8. Пример построения модели средствамиIss2000
- Глава 9. Технология имитационного моделирования
- 9.1. Имитационные проекты
- 9.2. Организация экспериментов
- 9.3. Проблемы организации имитационных экспериментов
- 9.4. Оценка точности результатов моделирования
- 9.5. Факторный план
- 9.6. Дисперсионный анализAnovAв планировании экспериментов
- 9.7. Библиотечная процедураAnova
- 9.8. Технология проведение дисперсионного анализа в системеGpssWorld
- 9.9. Особенности планирования экспериментов
- 9.10. Нахождение экстремальных значений на поверхности отклика
- 9.11. Организация экспериментов вGpssWorId
- 9.L2. Выбор наилучшего варианта структуры системы
- Глава 10. Примеры принятия решенийcпомощью имитационного моделирования
- 10.1. Моделирование производственного участка
- 10.2. Моделирование технологического процесса ремонта и замены оборудования
- Приложение Системные сча
- Сча транзактов
- Сча блоков:
- Сча одноканальных устройств:
- Сча очередей
- Сча таблиц
- Сча ячеек и матриц ячеек сохраняемых величин:
- Сча вычислительных объектов
- Список литературы
- Срдержание
- Глава 5. Моделирование вычислительных и операционных систем 132
- Глава 10. Примеры принятия решений c помощью имитационного моделирования 201