Составители:
Рубрика:
while (true){
receive open(fname, clientID);
# получить из канала open запрос
# на открытие файла
[открыть файл fname]; [если успешно, то:]
send open_reply[clientID](i); more=true;
# если успех, то послать ответ клиенту по его
# собственному каналу
# и указать идентификатор сервера
while (more){
receive access[i](k, [другие аргументы]);
# получить из канала access[i]
# (собственность i-го сервера) запрос k
if (k==READ)
[обработать запрос на чтение];
else if (k==WRITE)
[обработать запрос на запись];
else # k==CLOSE
{[закрыть файл]; more=false;}
send access_reply[clientID](results);
# после получения от клиента команды CLOSE
# закрыть файл, послать результаты клиенту и
# закончить непрерывный диалог
}
}
}
process Client[j=0 to m-1]{
int serverID; [объявление других переменных];
send open("foo", j);
# открыть файл "foo"
# j - идентификатор клиента
receive open_reply[j](serverID);
# получить ID сервера
# использовать файл, затем закрыть его;
send access [serverID]([аргументы доступа]);
receive access_reply[j]([результаты]);
}
43
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »