Составители:
Рубрика:
}
process DiskDriver {
while(true) {
[ждать запроса на доступ к диску];
[начать дисковую операцию; ждать прерывания;
запустить процесс, ожидающий
завершения данного запроса];
}
}
end FileServer
Замечание 1. Если у каждого при клад ного процесса есть от-
дельный модуль FileCache, то внутренняя синхронизация не нуж-
на (ибо в каждый момент времени выполняется один запрос чте-
ния или записи). В случае использования несколькими процессами
одного модуля FileCache, или если в нем реализуется упреждаю-
щее чтение, то потребуется использовать семафоры для обеспече-
ния взаимных исключений.
Замечание 2. В файловом сервере взаимные исключения
необходимы, поскольку он используется несколькими модулями
FileCache и, кроме того, содержит внутренний процесс DiskDriver.
§ 5. Фильтр слияния в Remote Procedure Call (RPC)
Фильтр слияния получает два входных отсортированных по-
тока, а на выходе образуется один отсортированный поток. Пред-
полагается, что конец входного потока отмечен маркером EOS.
Ранее фильтр слияния рассматривался в случае наличия прими-
тивов передачи сообщений send и receive; здесь нет таких прими-
тивов, и потому нужно явно реализовывать межпроцессорное вза-
имодействие.
Кроме того, труднее связать экземпляры фильтров, ибо нет
единых входного и выходного каналов. Поэтому используется
динамическая ссылка, представляемая в виде мандата доступа
(capability) ко входному потоку, который можно рассматривать как
указатель на операцию.
79
Страницы
- « первая
- ‹ предыдущая
- …
- 76
- 77
- 78
- 79
- 80
- …
- следующая ›
- последняя »