- •Ограничения.
- •Механизм передачи сообщений.
- •Синхронизация.
- •Вызов удалённых процедур.
- •Назначения стабов.
- •Генерация стабов.
- •Формат сообщений в rpc.
- •Модель сетевой файловой системы (сфс).
- •Интерфейс сфс.
- •Модифицируемость файлов.
- •Единицы доступа.
- •Распределение клиентов и серверов по ос.
- •Кэширование.
- •Репликация.
- •Управление репликацией.
- •Согласованность реплик.
- •Примеры сетевых файловых служб ftp, nfs.
- •Организация базы справочных данных.
- •Служба nds и файловая система.
Интерфейс сфс.
Существует несколько, которые отличаются ключевыми аспектами:
-Структура файла.
Для любой службы основной вопрос что такое файл. Для большинства это не интерпритируемая последовательность байт. Значение и структура информации в файле – это область прикладных программ, но не ОС. В ОС поддерживается логическая организация фалов, например, файл организуется как последовательность записей, ОС имеет вызовы, которые позволяют работать на уровне записей. Самое простое – последовательность байтов, а не записей. Следовательно структура даннах отражается на типе, поддерживающем для неструктурированных файлов чтение любой области файла, а для структурированной только записи определённого формата.
Модифицируемость файлов.
Основной аспект файловой модели – это возможность модификации файла после его создания. Большинство файловых систем позволяют это делать, но определённые РОС позволяют проводить только 2 операции – create и read. Такие файлы называются неизменяемыми. Для неизменяемых файлов намного легче осуществляется кэширование и репликация, так как отстутствует проблема с обновлением всех копий файла при изменение фалов и в файловых системах, которые работают с немодифицированными файлами проблема поддержки многочисленных версий перекладывается на пользователя, который присваивает имена и должен отразить тот факт, что всё множество файлов имеет близкое содержание и необходимо различать версии файлов.
Семантика разделения файлов.
Когда пользователи разделяют один файл, необходимо точно определить чтение и запись, что-то там результирующее. В данном случае семантика определяет порядок доступа к среде.
Семантика линукса.
В централизованных многопользовательских ОС, разрешающих разделение файлов, определяется, что когда операция чтения следует за операцией записи, то читается только что обновлённый файл. Когда операция чтения следует за 2 опреациями записи, то читается файл, изменённый последней операцией записи. Таким образом система придерживается абсолютного временного упорядовачивания и всегда возвращает самое последнее обновление данных. Если запись осуществляется в открытый многими пользователями файл, то все пользователи немедленно видят результат изменения данного файла. Такая модель называется семантикой линукс.
В централизованной системе, где файлы хранятся в единственном экземпляре, она легко реализуема. Данная семантика может быть обеспечена в распределённых системах только если в ней имеется лишь 1 файловый сервер и клиенты не кэшируют файл. Для этого все операции чтения и записи направляются на файловый сервер, которые обрабатывают их строго послдеовательно. Но производительность ОС, в которой все запросы к файлу идут на 1 сервер, в большинстве случаев неудовлетворительны. Решение: клиенту разрешают обрабатывать локальные копии часто используемых файлов. Если клиент сделает локальную копию в кэше и начнёт её модифицировать, а другой получит копию с сервера, то копия будет неверной. Решение: немедленный возврат всех изменений в кэшированном файле на сервер -> неэффективное использование.
Сеансовая семантика.
Изменение в открытом файле сначала видны только процессу, который модифицирует этот файл, и только после закрытия его изменения видят другие процессы. Проблема: одновременное использование одного и того же файла одним и тем же клиентом. Решение: окончательный вариант = последний закрытый, так как удалённый доступ, то из-за задержки трудно определить, какая из копий файла была закрыта последней. Простейшая реализация не менее эффективна – это окончательно результирующим файлов на сервере считается любой, т.е. результат операций над файлом не детерминирован.
Семантика неизменяемых файлов.
Все файлы делаются неизменяемыми, т.е. файл можно только создать и прочитать, следовательно, изменение файла – создание польностью нового файла и помещение его в каталог под новым имененм, т.е. файл заменяется автоматически новым => проблема связанная с одновременным использованием файла просто исчезнет, но она появляется на стороне пользователя, которые должны вести учёт имён своих копий модифицированного файла.
Транзикционная семантика.
Использование механизма неделимых транзакций.
Контроль доступа.
Каждый файл связывают с Access Control List ACL, который обеспечивает защиту данных от несанкционированного доступа. И если LFS local file system поддерживает механизм ACL для файлов по локале при скачивание, то сетевая при доступе по сети. Если в локале отсутствует механизм защиты, то сетевая поддерживает его самостоятельно, иногда упрощённым способом, защищая разделяемый потолок и входящие в него файлы и подкаталоги как единое целое. В Windows 2 механизма защита: на уровне разделяемых каталогов и на уровне локальных каталогов и файлов только в том случае, если в качестве LFS используется система NTFS.
Механизм защиты разделяемых каталогов нужен для того, чтобы защитить данные, хранящиеся в FAT, у которых нет механизма защиты. Если задействованы 2 уровня защиты, то у пользователей и администраторов.
