Технология программирования для распределенных параллельных систем. Демьянович Ю.К - 9 стр.

UptoLike

получаем значения из канала input в переменную line[0] и до
тех пор пока line[i] не совпадет с CR (символ возврата каретки)
и i<MAXLINE присваиваем i=i+1 и получаем очередное line[i] из
канала input. По окончании цикла присваиваем line[i] значение
EOL и посылаем полученную строку в канал output.
Каналы используются процессами совместно и потому объявля-
ются глобальными относительно всех процессов (см. предыдущий
пример). Любой процесс может отправлять данные в любой канал
и принимать из любого канала.
Если канал используется многими процессами, то он н азывается
портом (или общим почтовым ящиком).
В случае, когда у канала имеется только один получатель и мно-
го отправителей, то он называется входным портом (или индиви-
дуальным почтовым ящиком), а если у канала много получателей
и один отправитель его можно называть выходным портом.
Наконец, если у канала один отправитель и один получатель, то
он называется каналом связи.
Замечание. При выполнении команды receive часто процесс
вынужден ждать; однако, иногда предусматривается выполнение
другой работы, для которой не требуется предполагаемое сообще-
ние из затребованного канала.
Процесс может определить пуста ли очередь канала с именем
ch с помощью вызова
empty(ch)
который возвращает значение True, если канал пуст, и значение
False в противном случае. Однако, при таком запросе может по-
лучится ложная ситуация: при появлении значения True в дей-
ствительности очередь может оказаться непустой, и, наоборот, при
получении значения False к моменту запроса очередь уже может
оказаться пустой. Таким образом, вызов empty следует применять
с осторожностью.
§ 3. Сортировка, фильтры
Фильтром называется процесс, получающий значения из одно-
го или нескольких входных каналов, и отправляющий значения в
выходные каналы дин или более).
10