Главная » Просмотр файлов » Сетевое ПО Лекция 6

Сетевое ПО Лекция 6 (1061290), страница 3

Файл №1061290 Сетевое ПО Лекция 6 (Электронные лекции) 3 страницаСетевое ПО Лекция 6 (1061290) страница 32017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Лекция 6(2014 г.)2.2.3 Реализация NFSВ большинстве систем UNIX используется трехуровневая реализация.Верхний уровень представляет собой уровень системных вызовов.Он управляет такими системными вызовами, как open, read и close.После анализа системного вызова и проверки его параметров онвызывает второй уровень, уровень VFS (Virtual File System — виртуальнаяфайловая система).Задача уровня VFS заключается в управлении таблицей, содержащейпо одной записи для каждого открытого файла, аналогичной таблице i-узловдля открытых файлов в системе UNIX.В обычной системе UNIX i-узел однозначно указывается парой(устройство, номер i-узла).Вместо этого уровень VFS содержит для каждого открытого файлазаписи, называемые v-узлами (virtual i-node - виртуальный i-узел).V-узлы используются, чтобы отличать локальные файлы от удаленныхДля удаленных файлов предоставляется информация, достаточная длядоступа к ним.

Для локальных файлов записываются сведения о файловойсистеме и i-узле так как современные системы UNIX могут поддерживатьнесколько файловые систем.Хотя уровень VFS был создан для поддержки файловой системы NFS,сегодня он поддерживается большинством современных систем UNIX каксоставная часть операционной системы, даже если NFS не используется.Чтобы понять, как используются v-узлы, рассмотрим выполнениепоследовательности системных вызовов mount, open и read.Чтобы смонтировать файловую систему, системный администратор(или сценарий /etc/rc) вызывает программу mount, указывая ей удаленныйкаталог, локальный каталог, в котором следует смонтировать удаленныйкаталог, и прочую информацию.Программаmountанализируетимяудаленногокаталогаиобнаруживает имя сервера NFS, на котором располагается удаленный14Сетевое ПО. Лекция 6(2014 г.)каталог.

Затем она соединяется с этой машиной, запрашивая у неедескриптор удаленного каталога.Если этот каталог существует и его удаленное монтированиеразрешено, сервер возвращает его дескриптор. Наконец, программа mountобращается к системному вызову mount, передавая ядру полученный отсервера дескриптор каталога.Затем ядро формирует для удаленного каталога v-узел и проситпрограмму клиента NFS создать в своих внутренних таблицах r-узел(удаленный i-узел) для хранения дескриптора файла.

V-узел указывает на гузел.Каждый v-узел на уровне VFS будет в конечном итоге содержать либоуказатель на г-узел в программе клиента NFS, либо указатель на i-узел водной из локальных файловых систем.По содержимому v-узла можно понять, является ли файл или каталоглокальным или удаленным.Если он локальный, то может быть найдена соответствующаяфайловая система и i-узел. Если файл удаленный, может быть найденудаленный хост и дескриптор файла.Когда на клиенте открывается удаленный файл, прианализе пути файла ядро обнаруживает каталог, в которомсмонтирована удаленная файловая система.Ядро видит, что этот каталог удаленный, а в v-узлекаталога находит указатель на г-узел.Затем ядро просит программу клиента NFS открытьПрограмма клиента NFS просматривает оставшуюсяфайл.частьпутинаудаленномсервере,ассоциированномсмонтированным каталогом, и получает обратно дескрипторфайла для него.

Она создает в своих таблицах г-узел дляудаленного файла и докладывает об этом уровню VFS, который15Сетевое ПО. Лекция 6(2014 г.)помещает в свои таблицы v-узел для файла, указывающий на гузел.Укаждогооткрытогофайлаиликаталогаестьv-узел,указывающий на г-узел или i-узел.Вызывающему процессу выдается дескриптор удаленного файла. Этотдескриптор файла отображается на v-узел при помощи таблиц уровня VFS.На сервере не создается никаких записей в таблицах. Хотя серверготов предоставить дескрипторы файлов по запросу, он не следит засостоянием дескрипторов файлов.Когда дескриптор файла присылается серверу для доступа к файлу,серверпроверяетдескрипторииспользуетего,еслидескриптордействителен.

При проверке может проверяться ключ аутентификации,содержащийся в заголовках вызова удаленной процедуры RPC.Когда дескриптор файла используется в последующем системномвызове, например read, уровень VFS находит соответствующий v-узел и понему определяет, является ли он локальным или удаленным, а также какой iузел или г-узел его описывает.Затем он посылает серверу сообщение, содержащее дескриптор,смещение в файле (хранящееся на стороне клиента, а не сервера) иколичество байтов.Для повышения эффективности обмен информацией междуклиентом и сервером выполняется большими порциями, как правило,по 8192 байт, даже если запрашивается меньшее количество байтов.Когда сообщение с запросом прибывает на сервер, оно передается тамуровню VFS, который определяет файловую систему, содержащую файл.Затем уровень VFS обращается к этой файловой системе, чтобыпрочитать и вернуть байты.

Эти данные передаются клиенту.После того как уровень VFS клиента получает 8-килобайтную порциюданных, которую запрашивал, он автоматически посылает запрос наследующую порцию, чтобы она была под рукой, когда понадобится.16Сетевое ПО. Лекция 6(2014 г.)Такая функция, называемая опережающим чтением, позволяетзначительно увеличить производительность.При записи в удаленный файл проходится аналогичный путь отклиента к серверу. Данные также передаются 8-килобайтными порциями.Если системному вызову write подается менее 8 Кбайт данных, данныепросто накапливаются локально.

Только когда порция в 8 Кбайт готова, онапосылается серверу. Если файл закрывается, то весь остаток немедленнопосылается серверу.3 Вызов удаленных процедур(Remote Procedure Call,RPC).Этот механизм представляет собой надстройку над системой обменасообщениями ОС, Он позволяет более удобно и прозрачно организовать сетевоевзаимодействие приложений.3.1 Концепция удаленного вызова процедурИдея вызова удаленных процедур состоит в расширении механизмапередачи управления и данных внутри программы, выполняющейся на одноймашине, на передачу управления и данных через сеть.С точки зрения программиста приложение клиента, работающее спомощью RPC , вызывает функцию на сервере, она выполняется ивозвращает результат.Впервые механизм RPC реализовала компания Sun Microsystems, и онхорошо соответствует девизу «Сеть - это компьютер», взятому этой компаниейна вооружение, так как приближает сетевое программирование к локальному.Наибольшая эффективность RPC достигается в тех приложениях, вкоторыхсуществуетинтерактивнаясвязьмеждуудаленнымикомпонентами с небольшим временем ответов и относительно малымколичеством передаваемых данных.

Такие приложения называются RPCориентированными.Характерными чертами вызова локальных процедур являются:асимметричность — одна из взаимодействующих сторон является17Сетевое ПО. Лекция 6(2014 г.)инициатором взаимодействия;синхронность — выполнение вызывающей процедуры блокируетсяс момента выдачи запроса и возобновляется только после возврата извызываемой процедуры.Реализация удаленных вызовов существенно сложнее реализации вызововлокальных процедур:Поскольку вызывающая и вызываемая процедуры выполняются наразных машинах, то они имеют разные адресные пространства и это создаетпроблемы при передаче параметров и результатов, особенно если машины и ихоперационные системы не идентичны.

Так как RPC не может рассчитывать наразделяемую память, это означает, что параметры RPC не должны содержатьуказателей на ячейки памяти и что значения параметров должны как-токопироваться с одного компьютера на другой.Следующим отличием RPC от локального вызова является то, чтоон обязательно использует нижележащую систему обмена сообщениями, однакоэто не должно быть явно видно ни в определении процедур, ни в самихпроцедурах. Удаленность вносит дополнительные проблемы. Выполнениевызывающей программы и вызываемой локальной процедуры в одной машинереализуется в рамках единого процесса.

Но в реализации RPC участвуют какминимум два процесса — по одному в каждой машине. В случае если один изних аварийно завершится, могут возникнуть следующие ситуации:1.при аварии вызывающей процедуры удаленно вызванные процедурыстановятся «осиротевшими»;2.приаварийномзавершенииудаленныхпроцедурстановятся«обездоленными родителями» вызывающие процедуры, которые будутбезрезультатно ожидать ответа от удаленных процедур.Идея, положенная в основу RPC, состоит в том, чтобы вызовудаленной процедуры по возможности выглядел так же, как и вызовлокальной процедуры.

Другими словами, необходимо сделать механизмRPC прозрачным для программиста: вызывающей процедуре не требуетсяСетевое ПО. Лекция 6(2014 г.)18знать, что вызываемая процедура находится на другой машине, инаоборот.3.2 Достижение прозрачности механизма RPCКогда вызываемая процедура действительно является удаленной, вбиблиотеку процедур вместо локальной реализации оригинального кодапроцедуры помещается другая версия процедуры, называемая клиентскимстабом (stub — заглушка).На удаленный компьютер, который выполняет роль сервера процедур,помещается оригинальный код вызываемой процедуры, а также еще один стаб,называемый серверным стабом.Назначение клиентского и серверного стабов - организовать передачупараметров вызываемой процедуры и возврат значения процедуры через сеть,при этом код оригинальной процедуры, помещенной на сервер, должен бытьполностью сохранен.Стабы используют для передачи данных через сеть средстваподсистемы обмена сообщениями, то есть существующие в ОС примитивыsend и receive.Иногда в подсистеме обмена сообщениями выделяется программныймодуль, организующий связь стабов с примитивами передачи сообщений,называемый модулем RPCRuntime.Подобно оригинальной процедуре, клиентский стаб вызывается путемобычной передачи параметров, однако затем вместо выполнения системноговызова, работающего с локальным ресурсом, происходит формированиесообщения, содержащего имя вызываемой процедуры и ее параметры .

Этаоперация называется операцией упаковки параметров.После этого клиентский стаб обращается к примитиву send для передачиэтого сообщения удаленному компьютеру, на который помещена реализацияоригинальной процедуры.19Сетевое ПО. Лекция 6(2014 г.)Получив из сети сообщение, ядро ОС удаленного компьютера вызываетсерверный стаб, который извлекает из сообщения параметры и вызываетобычным образом оригинальную процедуру.Для получения сообщения серверный стаб должен предварительновызвать примитив receive, чтобы ядро знало, для кого пришло сообщение.Серверный стаб распаковывает параметры вызова, имеющиеся всообщении, и обычным образом вызывает оригинальную процедуру, передаваяей параметры через стек.После окончания работы процедуры серверный стаб упаковываетрезультат ее работы в новое сообщение и с помощью примитива send передаетсообщение по сети клиентскому стабу, а тот возвращает обычным образомрезультат и управление вызывающей процедуре.Нивызывающаяпроцедура,нивызываемаяпроцедураизменились оттого, что они стали работать на разных компьютерах.не.

Характеристики

Тип файла
PDF-файл
Размер
348,96 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее