Программное обеспечение

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

Виртуальные цепи в сети АТМ

Рис. 19.6. Виртуальные цепи в сети АТМ

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

Способы передачи сообщений

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

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

Буферная передача сообщений. Если отправляемое сообщение получатель не готов принять, оно сохраняется в буферном регистре до тех пор, пока получатель не востребует его оттуда. Отправитель может продолжать работу после операции send, даже если получатель в этот момент занят. Поскольку сообщение уже отправлено (находится в буфере), отправитель может снова использовать буфер сообщений. Такой способ сокращает время ожидания. Недостаток способа: отсутствие гарантий того, что сообщение было получено.

Деблокируемая передача сообщений. Если программное обеспечение (обычно это библиотеки) сообщает операционной системе, что она сделает вызов позднее, то отправитель вообще не блокируется и может продолжать работу сразу после вызова. Недостаток этого способа заключается в следующем: когда отправитель продолжает работу после совершения операции send, он не может снова занять буфер, так как сообщение может быть еще не отправлено. Отправитель каким-то образом должен определять, когда он снова может использовать буфер, например путем опроса системы или активизации прерывания, что усложняет программное обеспечение.

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

 
< Пред   СОДЕРЖАНИЕ     След >