Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭМЭП.docx
Скачиваний:
84
Добавлен:
10.07.2019
Размер:
193.73 Кб
Скачать

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

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

Виды параллельных процессов :

  1. Асинхронный процесс – это такой параллельный процесс, состояние которого не зависит от состояния другого процесса.

  2. Синхронный процесс – процесс, состояние которого зависит от состояние других процессов выполняющихся в системе.

Один и тот же процесс может быть синхронным по отношению к одному активному процессу, и асинхронным по отношению к другому.

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

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

Способ организации процессов в системе в основном зависит от её физической сущности.

Особенности реализации параллельных процессов в вычислительных системах.

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

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

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

Лекция №8.

На прикладном уровне взаимодействия между параллельными процессами реализуется средствами разработчиков языков программирования. Для этих целей разработаны языки моделирования, Simula, Modula, JPCS и так далее.

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

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

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

Пример :

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

Пример : Пусть имеются транзакты трех типов, каждый из которых обслуживается отдельным устройством, известные законы поступления транзактов в систему и длительность их обслуживания. В системе реализуются 3 независимых процесса, P1 P2 P3, каждый соответствующих событиям C11-C21-C31. Схема.

Для каждого процесса строится своя цепочка последовательности выполнения событий. Однако списки наступления событий являются общими для всей модели. Формирование списка начинается с формирования списка будущих событий. Очевидно что время наступления, прогнозируемых событий, на момент заполнения списка должно быть известно. На начальный момент t=0. С11 С21 С31.

Время

Список будущий событий

Список текущих событий

t0

C11,C21,C31

0

t11

C21,C31,C12

C11

t21

C31,C12,C22

C21

И так далее…

……

……

T23

0

C23,C33