Лекция: Реализация отдаленного доступа к файлам

Допустим, что клиент обратился к отдаленному файлу, а средства управления именами дали возможность найти его физическое место расположения. После этого необходимо обратиться через сеть к отдаленному файлу, обработать его и вернуть результат клиенту. Рассмотрим подходы к реализации такого отдаленного доступа к файлу.

Самым простым подходом является передача каждого запроса на сервер в виде отдельного отдаленного вызова процедуры. При этом ни одного кэширования данных не делают, каждый запрос требует передачи данных сетью. Это отдаленое обслуживание (remote service). Основными его преимуществами является простота реализации и отсутствие противоречий (все данные немедленно сохраняются на диске сервера), а главным недостатком — низкая производительность, поскольку каждая файловая операция требует пересылки данных сетью и обращение к диску на сервере.

Для повышения производительности используют кэширование данных. В данном случае локальные кэши расположены на клиентах (обычно в их основной памяти), а основной копией данных является копия данных на сервере. При этом главной проблемой, как и для многопроцессорных систем, является необходимость поддержки когерентности локальных кэшей.

Приведем два способа поддержки согласованности данных в локальных кэшах.

Первый сводится к тому, что в случае любого изменения данных в одном из кэшей их немедленно записывают на диск в соответствии с методом отдаленного обслуживания, при этом очищают все другие кэши. Фактически так реализован кэш со сквозной записью. Операции чтения данных продолжают обслуживать из кэша.

Вторым способом является использование сеансовой семантики (session semantics). При этом все изменения, которые вносят в файл после его открытия клиентским процессом (на протяжении сеанса работы клиента с этим файлом), будут доступны только этому процессу. После закрытия файла его измененную копию пересылают на сервер, и она становится доступной другим клиентским процессам.

 

еще рефераты
Еще работы по информатике