Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Моделирование.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
843.26 Кб
Скачать

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

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

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

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

Пример 1. Асинхронные ПП, протекающие в одной системе:

подготовка и проведение рекламной компании фирмой и работа сборочного конвейера;

выполнение вычислений процессором и вывод текста на печать.

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

Пример 2. Работа магазина и доставка товара со склада; любой конвейер.

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

Пример 3. При работе ВС по технологии «клиент-сервер», каждый из узлов синхронизирует свою работу с работой сервера, но не зависит от работы других узлов.

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

Пример 4. Ведение боевых действий.

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

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

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

На прикладном уровне взаимодействие между параллельными процессами реализуется программистом средствами языка, на котором разрабатывается программное обеспечение. Наибольшими возможностями в этом отношении обладают так называемые языки реального времени (ЯРВ) и языки имитационного моделирования (ЯИМ).

ЯРВ – языки, предназначенные для создания программного обеспечения, работающего в реальном масштабе времени, например, в различных АСУ. К ним относятся Ада, Модула, и практически единственный отечественный язык Эль-76 (использовался в многопроцессорных вычислительных комплексах семейства Эльбрус).

ЯИМ – по сравнению с ЯРВ требуют от разработчика значительно менее высокого уровня подготовки в области программирования, что обусловлено следующим:

средства моделирования изначально ориентированы на квазипараллельную обработку параллельных процессов;

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

В практике имитационного моделирования используются как процессно-ориентированные языки (SIMULA), так и языки, ориентированные на обработку транзактов (заявок) (GPSS).

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

Современные языки, ориентированные на использование в среде многозадачных ОС типа Windows, частично используют эти механизмы управления процессами.