1.7.2 Моделирование параллельных процессовПрактически любая более или менее сложная система имеет в своем составе компоненты, работающие одновременно, или, как принято говорить на языке техники, параллельно. Асинхронный параллельный процесс - такой процесс, состояние которого не зависит от состояния другого параллельного процесса (ПП). Синхронный ПП - такой процесс, состояние которого зависит от состояния взаимодействующих с ним ПП. Подчиненный ПП - создается и управляется другим процессом (более высокого уровня). Независимый ПП - не является подчиненным ни для одного из процессов. Способ организации параллельных процессов в системе зависит от физической сущности этой системы. Остановимся несколько подробнее на особенностях реализации параллельных процессов в вычислительных системах (ВС). Это обусловлено следующей причиной. Разработка и использование любой имитационной модели предполагает ее программную реализацию и исследование с применением ВС. Поэтому для реализации моделей, имитирующих параллельные процессы, в некоторых случаях применимы механизмы, используемые при выполнении параллельных вычислений. Вместе с тем реализация параллельных процессов в ВС имеет свои особенности: • на уровне задач вычислительные процессы могут быть истинно параллельными только в многопроцессорных ВС или вычислительных сетях; • многие ПП используют одни и те же ресурсы, поэтому даже асинхронные ПП в пределах одной ВС вынуждены согласовывать свои действия при обращении к общим ресурсам; • в ВС дополнительно используется еще два вида ПП: родительский и дочерний ПП; особенность их состоит в том, что процесс-родитель не может быть завершен, пока не завершатся все его дочерние процессы. В силу перечисленных особенностей для организации взаимодействия параллельных процессов в ВС используются три основных подхода: • на основе «взаимного исключения»; • на основе синхронизации посредством сигналов; • на основе обмена информацией (сообщениями). «Взаимное исключение» предполагает запрет доступа к общим ресурсам (общим данным) для всех ПП, кроме одного, на время его работы с этими ресурсами (данными). Синхронизация подразумевает обмен сигналами между двумя или более процессами по установленному протоколу. Такой «сигнал» рассматривается как некоторое событие, вызывающее у получившего его процесса соответствующие действия. Часто возникает необходимость передавать от одного ПП другому более подробную информацию, чем просто «сигнал-событие». В этом случае процессы согласуют свою работу на основе обмена сообщениями. Перечисленные механизмы реализуются в ВС на двух уровнях - системном и прикладном. Механизм взаимодействия между ПП на системном уровне определяется еще на этапе разработки ВС и реализуется в основном средствами операционной системы (частично — с использованием аппаратных средств). На прикладном уровне взаимодействие между ПП реализуется программистом средствами языка, на котором разрабатывается программное обеспечение. Наибольшими возможностями в этом отношении обладают так называемые языки реального времени и языки моделирования. Языки моделирования по сравнению с языками реального времени требуют от разработчика значительно менее высокого уровня подготовки в области программирования, что обусловлено двумя обстоятельствами: • во-первых, средства моделирования изначально ориентированы на квазипараллельную обработку параллельных процессов; • во-вторых, механизмы реализации ПП относятся, как правило, к внутренней организации системы (языка) моделирования и их работа скрыта от программиста.
|