Составители:
Рубрика:
monitor Mon{
[объявление постоянных переменных];
[код инициализации];
procedure op ([формальные параметры]){
[тело процедуры];
}
}
Для моделирования монитора Mon используем серверный про-
цесс Server.
Постоянные переменные монитора становятся локальными пе-
ременными этого процесса.
Сервер сначала инициализирует переменные, затем выполняет
один и тот же цикл, обслуживая “вызовы” процедуры op.
Имитация вызова состоит в следующем:
– сначала клиентский процесс отправляет сообщение в канал
запроса;
– ответ он получает из канала ответа.
Для того, чтобы избежать перехвата ответа другим клиентским
процессом, каждому клиенту нужен собственный канал ответа
(или специальные примитивы, позволяющие определить отправи-
теля).
chan request(int clientID, [типы входных данных]);
# - канал запроса
chan reply[n]([типы результатов]);
# - массив каналов ответов
process Server {
int clientID;
[объявление других постоянных переменных];
[код инициализации];
while (true){
receive request(clientID, [входные значения]);
[код из тела операции op];
send reply[clientID]([результаты]);
}
}
34
Страницы
- « первая
- ‹ предыдущая
- …
- 31
- 32
- 33
- 34
- 35
- …
- следующая ›
- последняя »