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

UptoLike

# переменных равно нулю, то ждать первого
# запроса или получать еще один запрос
receive request(clientID, cy1, . . .);
if (cy1<=headpos)
insert(left, clientID, cy1, . . .);
else
insert(right, clientID, cy1, . . .);
nsaved++;
# число сохраненных запросов увеличивается
}
# выбрать наилучший запрос из очередей left и right
if (size(left)==0)
remove(right, clientID, cy1, args);
else if (size(right)==0)
remove(left, clientID, cy1, args);
else
[удалить запрос, который в left или в right
ближе всего к headpos];
headpos=cy1; nsaved--;
# число сохраненных запросов уменьшается на единицу
[получить доступ к диску];
send reply[clientID](results);
# отправлен ответ клиенту
}
}
§ 4. Файловые серверы и клиенты
Рассмотрим процессы, обеспечивающие доступ к файлам на дис-
ке.
Для работы с файлом клиент должен его открыть. После ра-
боты клиент закрывает файл.
Будем предполагать, что одновременно могут быть открыты не
более n файлов, а доступ к каждому открытому файлу обеспечи ва-
ется отдельным процессом отдельным файловым сервером. Итак,
будем считать, что имеется n файловых серверов, причем все фай-
ловые серверы идентичны. Таким образом, клиенту подойдет лю-
бой свободный файловый сервер.
41