Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 104
Текст из файла (страница 104)
используется только для тестирования и хронометража ответа сервера,— Прим. ред. 442 Глава 10. Распределенные файловые системы идентифицирует чпобе файла и выполняет соответствующую этому объекту операцию. В случае ХРБ зависимая от файловой системы структура данных, ассоциированная с Уводе, называется тподе (вяля удаленного узлаь). Поле ч ор объекта чпоЬе указывает на вектор клиентских процедур МРБ (структуру чподеорз), реализующих различные операции над Уводе. Процедуры производят создание запросов КРС и отправку их серверу.
Вызывающий клиентский процесс блокируется до получения ответа от сервера. Сервер обслуживает запрос путем идентификации Уводе соответствующего локального файла и активизации его структуры чподеорз, реализованной для конкретной локальной файловой системы (в рассматриваемом примере — иЬ). Сервер завершает обработку запроса, упаковывает результаты в ответное сообщение КРС и пересылает его обратно клиенту.
Получателем ответа является процесс, работающий на уровне КРС, который разбудит ожидающий процесс. Процесс, в свою очередь, завершит выполнение операции над клиентским объектом чпойе н оставшейся части системного вызова и возвратит управление системой пользователю. Клиент Сврввр Рис. 10.4. Управление потоком в системе МР8 Пример показывает необходимость поддержки клиентом локального объекта чпоое каждого активного файла ХРБ. Такой подход позволяет осуществлять более точные связи между операциями над Уводе и клиентскими функциями МРБ. Он также позволяет клиенту кэшировать атрибуты удаленных файлов, производя некоторые операции без доступа к серверу. Вопросы, связанные с кэшированием в клиентской системе, обсуждаются в разделе 10.7.2, 10.5. Реализация МР8 443 10.5.2.
Дескрипторы файлов При создании запроса 1ч'г Б клиентом ему необходимо указать серверу, какой из файлов ему необходим для доступа. Передача полного имени при каждом доступе может оказаться слишком медленной. Вместо этого протокол МЕБ ассоциирует с каждым файлом или каталогом объект, называемый дескриптором файла (61е Ьапд1е). Сервер создает такой дескриптор при первом доступе к файлу или при ею создании путем запросов ЕООКОР, СЯЕАТЕ или МКО1й.
Сервер возвращает дескриптор клиенту в ответном сообщении, после чего тот может использовать его в последующих операциях над файлом. Клиент воспринимает дескриптор файла как закрытый 32-разрядный объект и не интерпретирует его содержимое. Сервер создает дескриптор на свое усмотрение, а также осуществляет уникальную связь<b>Текст обрезан, так как является слишком большим</b>.