русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Моделирование параллельных процессов.


Дата добавления: 2013-12-23; просмотров: 1851; Нарушение авторских прав


Обработка одновременных событий

При рассмотрении алгоритмов продвижения системного времени мы пренебрегали проблемами, связанными с возможностью одновременного наступления двух или более событий. Если такая возможность допускается, то для продолжения процесса недостаточно определить реакцию модели на каждое из событий, необходимо указать еще, в какой последовательности модель должна реагировать на одновременно происходящие события, так как в моделирующем алгоритме они обрабатываются последовательно.

Эта проблема не возникает, если решения модели не зависят от порядка наступления событий (коммутативность событий). Иногда предварительный теоретический анализ позволяет пренебречь возможностью одновременности событий: например, если моделируется одноканальная марковская система массового обслуживания, то вероятность одновременного поступления заявки и окончания обслуживания равна нулю.

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

Практически любая система имеет в своем составе компоненты, работающие одновременно или, как принято говорить, параллельно.

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



Асинхронный параллельный процесс – такой процесс, состояние которого не зависит от состояния другого параллельного процесса (ПП). Пример асинхронного ПП: выполнение вычислений процессором и вывод информации на печать.

Синхронный ПП – такой процесс, состояние которого зависит от состояния взаимодействующих с ним ПП. Так, при работе вычислительной сети по технологии “клиент-сервер” каждый из узлов сети синхронизирует свою работу с работой сервера.

Подчиненный ПП – создается и управляется другим процессом (более высокого уровня). Характерным примером таких процессов является ведение боевых действия подчиненными подразделениями.

Независимый ПП – не является подчиненным ни для одного из процессов.

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

Рассмотрим механизм реализации квазипараллельного процесса применительно к моделированию на основе транзактов (транзактами называют движущиеся через процесс компоненты).

В этом случае под событием понимается любое перемещение транзакта по системе, а также изменение его состояния (обслуживается, заблокирован и т.д.). Событие, связанное с транзактом, может храниться в одном из следующих списков.

Список текущих событий. В этом списке хранятся события, время наступления которых меньше или равно текущему модельному времени. События с меньшим временем связаны с перемещением тех транзактов, которые должны были начать двигаться, но были заблокированы.

Список будущих событий. Этот список содержит события, время наступления которых больше текущего модельного времени, то есть события, которые должны произойти в будущем.

Список прерываний. Данный список содержит события, связанные с возобновлением обработки прерванных транзактов. События из этого списка выбираются в том случае, если сняты условия прерывания.

В списке текущих событий события расположены в порядке убывания приоритетов; при равных приоритетах – в порядке поступления в список. Каждое событие в списке текущих событий может находиться либо в активном состоянии, либо в состоянии задержки. Если событие активно, то соответствующий транзакт может быть продвинут по системе; если продвижение невозможно (например, из-за занятости устройства), то событие (и транзакт) переводятся в состояние задержки.

Как только завершится обработка очередного активного события, просматривается список задержанных событий, и те из них, для которых выполняется условие активизации, переводятся в активное состояние. Процедура повторяется до тех пор, пока в списке текущих событий не будут обработаны все активные события.

После этого просматривается список будущих событий. Модельному времени присваивается значение, равное времени наступления ближайшего из этих событий. Данное событие заносится в список текущих событий. Затем просматриваются остальные события списка будущих событий. Те из них, время свершения которых равно текущему модельному времени, также переписываются в список текущих событий. Просмотр списка будущих событий заканчивается, когда в списке остаются события, времена которых больше текущего модельного времени. Затем повторяется обработка списка текущих событий.

Продвижение машинного времени от события к событию будет продолжаться до тех пор, пока время очередного события не превысит конечное время моделирования или в списках не останется не одного ни текущего активного, ни будущего события.

 



<== предыдущая лекция | следующая лекция ==>
Алгоритм управления временем. | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.