Языки программирования. Практический сравнительный анализ


Языки программирования. Практический сравнительный анализ - стр. 222


При этом очередь может расти. Однако так как длинный синтез бывает редко, будем считать, что обычно ее длина не будет превышать некоторой разумной величины.

Итак, допустим, что необходимость асинхронной работы сегментов А и С, а также необходимость очереди разборов обоснована. Спрашивается, как оформить сегменты А,С и "очередь"?

 

4.14.3. Управление асинхронными процессами в Аде (фрагмент обзора языка)

В Аде взаимодействие асинхронных процессов обслуживают несколько операторов.

Оператор ЗАДЕРЖКИ (delay) приостанавливает исполнение задачи, в которой он находится, на указанный в нем период (реального, астрономического) времени.

Вызов ВХОДА R, находяшийся в задаче К, аналогичен вызову процедуры, но в общем случае не исполняется немедленно, а лишь "заказывает РАНДЕВУ" категории R. Это значит, что задача К (назовем ее пассивной или обслуживаемой по входу R, короче клиентом), готова к рандеву (взаимодействию, встрече) с другой задачей М, в которой вход R объявлен. Задачу М назовем активной или обслуживающей вход R (короче - мастером). Она оказывается готовой обслужить заказ задачи К лишь тогда, когда достигнет оператора ПРИЕМА (accept) входа R. Оператор приема предписывает действия, выполняемые в момент рандеву. Когда эти действия завершаются, рандеву считается состоявшимся и обе задачи могут продолжать асинхронно работать (до следующего взаимодействия-рандеву). Если задача М достигает оператора приема входа R раньше, чем его закажет какая-либо обслуживаемая задача, то задача М приостанавливается и ждет появления заказов (ждет рандеву).

Таким образом, рандеву происходит тогда (и только тогда), когда и клиент, и мастер оказываются к нему готовыми (задача К дошла до вызова входа и заказала рандеву категории R, а задача М дошла до оператора приема и готова выполнить заказ).

Собственно рандеву состоит в том, что аргументы вызова входа R (из  задачи-клиента) связываются с параметрами оператора приема (из задачи-мастера) и выполняется тело оператора приема.




- Начало -  - Назад -  - Вперед -