В.А. Крюков - Операционные системы распределенных вычислительных систем, страница 6
Описание файла
PDF-файл из архива "В.А. Крюков - Операционные системы распределенных вычислительных систем", который расположен в категории "". Всё это находится в предмете "распределённые системы" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
Список прав доступа задает для каждого файласписок пользователей с их правами. Простейшая схема с правами доступа - UNIX схема, вкоторой различают три типа доступа (чтение, запись, выполнение), и три типа пользователей(владелец, члены его группы, и прочие).Файловый сервис может базироваться на одной из двух моделей - модели загрузки/разгрузки имодели удаленного доступа. В первом случае файл передается между клиентом (памятью илидисками) и сервером целиком, а во втором файл сервис обеспечивает множество операций(открытие, закрытие, чтение и запись части файла, сдвиг указателя, проверку и изменение24атрибутов, и т.п.). Первый подход требует большого объема памяти у клиента, затрат наперемещение ненужных частей файла. При втором подходе файловая система функционируетна сервере, клиент может не иметь дисков и большого объема памяти.5.1.2Интерфейс сервера директорий.Обеспечивает операции создания и удаления директорий, именования и переименованияфайлов, перемещение файлов из одной директории в другую.Определяет алфавит и синтаксис имен.
Для спецификации типа информации в файлеиспользуется часть имени (расширение) либо явный атрибут.Все распределенные системы позволяют директориям содержать поддиректории - такаяфайловая система называется иерархической. Некоторые системы позволяют создаватьуказатели или ссылки на произвольные директории, которые можно помещать в директорию.При этом можно строить не только деревья, но и произвольные графы. Разница между нимиочень важна для распределенных систем, поскольку в случае графа удаление связи можетпривестикпоявлениюнедостижимых поддеревьев, обнаруживать которые враспределенных системах очень трудно.Ключевое решение при конструировании распределенной файловой системы - должны или недолжны машины (или процессы) одинаково видеть иерархию директорий.
Тесно связано сэтим решением наличие единой корневой директории (можно иметь такую директорию споддиректориями для каждого сервера).Прозрачность именования.Две формыпрозрачностиименования различают - прозрачность расположения(/server/d1/f1) и прозрачность миграции (когда изменение расположения файла не требуетизменения имени).Имеются три подхода к именованию:машина + путь;монтирование удаленных файловых систем в локальную иерархию файлов;единственное пространство имен, которое выглядит одинаково на всех машинах.Последний подход необходим для достижения того, чтобы распределенная системавыглядела как единый компьютер.Двухуровневое именование.Большинство систем используют ту или иную форму двухуровневого именования.
Файлы (идругие объекты) имеют символические имена для пользователей, но могут также иметьвнутренние двоичные имена для использования самой системой. Например, в операцииоткрыть файл пользователь задает символическое имя, а в ответ получает двоичное имя,которое и использует во всех других операциях с данным файлом.Способы формирования двоичных имен различаются в разных системах:имя может указывать на сервер и файл;в качестве двоичных имен при просмотре символьных имен возвращаются мандаты,содержащие помимо прав доступа либо физический номер машины с сервером, либосетевой адрес сервера, а также номер файла.В ответ на символьное имя некоторые системы могут возвращать несколько двоичных имен(для файла и его дублей), что позволяет повысить надежность работы с файлом.255.1.3Семантика разделения файлов.UNIX-семантика.Естественная семантика однопроцессорной ЭВМ - если за операцией записи следует чтение,торезультат определяется последней из предшествующих операций записи.
Враспределенной системе такой семантики достичь легко только в том случае, когда имеетсяодин файл-сервер, а клиенты не имеют кэшей. При наличии кэшей семантика нарушается.Надо либо сразу все изменения в кэшах отражать в файлах, либо менять семантику разделенияфайлов.Еще одна проблема - трудно сохранить семантику общего указателя файла (в UNIX он общийдля открывшего файл процесса и его дочерних процессов) - для процессов на разных ЭВМтрудно иметь общий указатель.Неизменяемые файлы - очень радикальный подход к изменению семантики разделенияфайлов.Только две операции - создать и читать. Можно заменить новым файлом старый - т.е.
можноменять директории. Если один процесс читает файл, а другой его подменяет, то можнопозволить первому процессу доработать со старым файлом, в то время как другие процессымогут уже работать с новым.Семантика сессий.Изменения открытого файла видны только тому процессу (или машине), который производитэти изменения, а лишь после закрытия файла становятся видны другим процессам (илимашинам). Что происходит, если два процесса одновременно работали с одним файлом - либорезультат будет определяться процессом, последним закрывшим файл, либо можно толькоутверждать, что один из двух вариантов файла станет текущим.Транзакции.Процесс выдает операцию «НАЧАЛО ТРАНЗАКЦИИ», сообщая тем самым, что последующиеоперации должны выполняться без вмешательства других процессов.
Затемвыдаетпоследовательностьчтенийизаписей, заканчивающуюся операцией«КОНЕЦТРАНЗАКЦИИ». Если несколько транзакций стартуют в одно и то же время, то системагарантирует, что результат будет таким, каким бы он был в случае последовательноговыполнения транзакций (в неопределенном порядке). Пример - банковские операции.5.2Реализация распределенных файловых систем.Выше были рассмотрены аспекты распределенных файловых систем, которые видныпользователю.
Ниже рассматриваются реализационные аспекты.5.2.1Использование файлов.Приступая к реализации очень важно понимать, как система будет использоваться. Приведемрезультаты некоторых исследований использования файлов (статических и динамических) вуниверситетах. Очень важно оценивать представительность исследуемых данных.a) большинство файлов имеют размер менее 10К. (Следует перекачивать целиком).b) чтение встречается гораздо чаще записи.
(Кэширование).c) чтение и запись последовательны, произвольный доступ редок.(Упреждающее кэширование, чтение с запасом, выталкивание после записи следуетгруппировать).26d) большинство файлов имеют короткое время жизни. (Создавать файл в клиенте и держатьего там до уничтожения).e) мало файлов разделяются (кэширование в клиенте и семантика сессий).f) существуют различные классы файлов с разными свойствами.(Следует иметь в системе разные механизмы для разных классов).5.2.2Структура системы.Есть ли разница между клиентами и серверами? Имеются системы, где все машины имеютодно и то же ПО и любая машина может предоставлять файловый сервис.
Есть системы, вкоторых серверы являются обычными пользовательскими процессами и могут бытьсконфигурированы для работы на одной машине с клиентами или на разных. Есть системы, вкоторых клиенты и серверы являются фундаментально разными машинами с точки зренияаппаратуры или ПО (требуют различных ОС, например).Второй вопрос - должны ли быть файловый сервер и сервер директорий отдельнымисерверами или быть объединенными в один сервер.
Разделение позволяет иметь разныесерверы директорий (UNIX, MS-DOS) и один файловый сервер. Объединение позволяетсократить коммуникационные издержки.В случае разделения серверов и при наличии разных серверов директорий для различныхподдеревьев возникает следующая проблема. Если первый вызванный сервер будетпоочередно обращаться ко всем следующим, то возникают большие коммуникационныерасходы. Если же первый сервер передает остаток имени второму, а тот третьему, и т.д., то этоне позволяет использовать RPC.Возможный выход - использование кэша подсказок.
Однако в этом случае при получении отсервера директорий устаревшего двоичного имени клиент должен быть готов получить отказот файлового сервера и повторно обращаться к серверу директорий (клиент может не бытьконечным пользователем!).Последний важный вопрос - должны ли серверы хранить информацию о клиентах.Серверы с состоянием. Достоинства.a) Короче сообщения (двоичные имена используют таблицу открытых файлов).b) выше эффективность (информация об открытых файлах может храниться в оперативнойпамяти).c) блоки информации могут читаться с упреждением.d) убедиться в достоверности запроса легче, если есть состояние (например, хранить номерпоследнего запроса).e) возможна операция захвата файла.Серверы без состояния. Достоинства.a)b)c)d)e)устойчивость к ошибкам.не требуется операций ОТКРЫТЬ/ЗАКРЫТЬ.не требуется память для таблиц.нет ограничений на число открытых файлов.нет проблем при крахе клиента.275.2.3Кэширование.В системе клиент-сервер с памятью и дисками есть четыре потенциальных места дляхранения файлов или их частей.Во-первых, хранение файлов на дисках сервера.
Нет проблемы консистентности, так кактолько одна копия файла существует. Главная проблема - эффективность, поскольку дляобмена с файлом требуется передача информации в обе стороны и обмен с диском.Во-вторых, кэширование в памяти сервера. Две проблемы - помещать в кэш файлы целикомили блоки диска, и как осуществлять выталкивание из кэша.Коммуникационные издержки остаются.Избавиться от коммуникаций позволяет кэширование в машине клиента.В третьих, кэширование на диске клиента. Оно может не дать преимуществ передкэшированием в памяти сервера, а сложность повышается значительно.Поэтому рассмотрим подробнее четвертый вариант - организацию кэширования в памятиклиента.