Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 85

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 85 страницаА. Робачевский - Операционная система UNIX (1114671) страница 852019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

6.20. Модули взаимо!действуют следующим образом:1. Когда запускается серверный процесс, он создает сокети связы!вает любой локальный порт с этим сокетом. Далее сервер вызываетбиблиотечную функциюдля регистрации номеровпрограммы и ее версии. Для этого функцияки передает требуемые з н а ч е н и я . Сервер1М) обыч!но запускается при инициализации системы и связывается срым общеизвестным портом. Теперьзнает номер портаwww.books-shop.comПрограммные интерфейсыдля нашей программы и версии.

Сервер же ожидает получения запро!са. Заметим, что все описанные действия производятся заглушкой сер!вера, созданной компилятором2. Когда запускается программапервое, что она делает, — вызываетбиблиотечную функциюуказывая ей адрес удаленной сис!темы, номера программы и версии, а также транспортный протокол.Функция направляет запрос к серверуудаленной системыserver.nowhere.ru и получает номер удаленного порта для сервера журнала.3. Клиент вызывает процедуру r l o g _ lопределенную в заглушкеента, и передаетзаглушке. Та, в свою очередь, формируетзапрос (преобразуя аргументы в формат XDR) в виде пакетаинаправляет его на удаленный порт, полученный от сервераЗатем она некоторое время ожидает отклика и в случаенеполучения повторно отправляет запрос.

При благоприятных обстоя!тельствах запрос принимается сервером logger (модулем заглушки сер!вера). Заглушка определяет, какая именно функция была вызвана (пономеру процедуры), и вызывает функцию r l o g _ lмодуляПо!сле возврата управления обратно в заглушкупреобразуетвозвращенное функциейзначение в формат XDR, и форми!рует отклик также в виде пакета UDP.

После получения откликаглушка клиента извлекает возвращенное значение, преобразует его ив головную программу клиента.Рис. 6.20. Работа системы RPCwww.books-shop.comГлава 6.в операционнойUNIXПоддержка сети в BSD UNIXПерейдем теперь к обсуждению внутренней архитектуры сетевогов U N I X . Разговор начнем с ветви UNIX, в которой реализация TCP/IPпоявилась впервые — BSD U N I X .Сетевая подсистема UNIX может быть представлена состоящей из трех уров!ней, каждый из которых отвечает за выполнение определенных функций:Транспортный уровеньСетевой уровеньУровень сетевого интерфейсаДва верхних уровнятоколов, а нижнийЛегко заметить, чтосетевому уровням иОбмен данными между процессамиМаршрутизация сообщенийПередача данных по физической сетипредставляют собой модули коммуникационных про!уровень по существу является драйвером устройства.представленные уровни соответствуют транспортному,уровню канала данных модели OSI.Транспортный уровень является самым верхним в системе и призванобеспечить необходимую адресацию и требуемые характеристики передачиданных, определенных коммуникационным узлом процесса, которым яв!ляется сокет.

Например, сокет потока предполагает надежную последова!тельную доставку данных, и в семействе TCP/IP модуль данного уровняреализует протокол TCP. Следующий, сетевой, уровень обеспечивает пе!редачу данных, адресованных удаленному сетевому или транспортномумодулю. Для этого модуль данного уровня должен иметь доступ к инфор!мации о маршрутах сети (таблице маршрутизации). Наконец, последнийуровень отвечает за передачу данных хостам, подключенным к одной фи!зической среде передачи (например, находящимся в одном сегментеEthernet).Внутренняя структура сетевой подсистемы изолирована от непосредствен!ного доступа прикладных процессов.

Единым (и единственным) интер!фейсом доступа к сетевым услугам является интерфейс сокетов, рассмот!ренный в главе 3 в разделе "Межпроцессное взаимодействие в BSD U N I X .Для обеспечения возможности работы с конкретным коммуника!ционным протоколом соответствующий модуль экспортирует интерфейсусокетов функцию пользовательского запроса. При этом данные от при!кладного процесса передаются от интерфейса сокетов требуемым транс!портным модулям с помощью соответствующих вызовов экспортирован!ных функций.

И наоборот, данные, полученные из сети, проходят обра!ботку в соответствующих модулях протоколов и помещаются в очередьприема сокета!адресата.Движение данных вниз (т. е. от верхних уровней к нижним) обычно ини!циируется системными вызовами и может иметь синхронный характер.Принимаемые данные из сети поступают в случайные моменты времени ипередаются сетевым драйвером в очередь приема соответствующего прото!www.books-shop.comсети в BSD UNIX453кола. При этом функции модуля протокола и обработка данных не вызы!ваются непосредственно сетевым драйвером. Вместо этого последний ус!танавливает бит соответствующего программного прерывания, в контекстекоторого система позднее и запускает необходимые функции.

Если данныепредназначены протоколу верхнего уровня (транспортному), его функцияобработки будет вызвана непосредственно модулем сетевого уровня. Еслиже сообщение предназначено другому хосту, и система выполняет функ!ции шлюза, сообщение будет передано уровню сетевого интерфейса дляпоследующей передачи.Прежде чем более подробно ознакомиться со взаимодействием различныхмодулей сетевой подсистемы BSD U N I X , рассмотрим сначала структурыданных, определяющие сокет, коммуникационный протокол и сетевой ин!терфейс.Структуры данныхСтруктура данных socket, описывающая сокет, представлена на рис.

6.21.В этой структуре хранится информация о типе сокетаего те!кущем состояниии используемом протоколе (so_proto).Рис.Структуры данных сокетаwww.books-shop.com454Глава д.сети в операционной системе UNIXСокет является коммуникационным узлом и обеспечивает буферизациюполучаемых и отправляемых данных. Как только данные попадают в рас!поряжение сокета в результате системного вызова (например,илисокет немедленно передает их модулю протокола для последую!щего отправления. Данные передаются в виде связанного списка специ!альных буферов m b u f , структура которых также показана на рис. 6.21.

Мо!дуль протокола может ожидать подтверждения получения отправленныхданных или отложить их отправку. В обоих случаях сообщения остаются вбуфере передачи сокета до момента окончательной отправки или получе!ния подтверждения. Аналогично, данные, полученные из сети, в конечномитогев приемной очереди сокета!адресата, пока не будутизвлечены оттуда системным вызовом (например, read(2) илиДля избежания переполнения буфер (структурахранит параметр— значение верхней ватерлинии. Модуль коммуникационногопротокола может использовать это значение для управления потоком дан!ных. Например, модуль TCP устанавливает максимальное значение окнаприема равным этому параметру.используемые для приема и обработки запросов на установлениесвязи (зарегистрированные с помощью системного вызоваадре!суют два связанных списка: список сокетов, связь для которых не полно!стью установлена, и список сокетов, обеспечивающих доступ к созданнымканалам передачи данных.Следующая структура данных, которую мы рассмотрим, относится к ком!муникационным протоколам.

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

6.22.Рис. 6.22. Коммутатор прото%колаwww.books-shop.comсети в BSD UNIX455Перед первым использованием модуля вызывается функция его инициали!зации pr_initПосле этого система будет вызывать функции таймерамодуляпротоколаpr_fasttimoкаждые200миллисекундикаждые 500 миллисекунд, если протокол определил этифункции. Например, модуль протокола TCP использует функции таймерадля обработки тайм!аутов при установлении связи и повторных передачах.Функция pr_drainвызывается системой при недостатке свободной па!мяти и позволяет модулю уничтожить некритичные сообщения для осво!бождения места.С помощью функциимодулю протокола передаются сооб!щения от прикладного процесса.

Таким образом, эта функция определяетинтерфейс взаимодействия между сокетом и протоколом нижнего уровня.Одним из параметров этой функции является номер запроса, зависящийот произведенного системного вызова. Интерфейс взаимодействия сокета сприкладными процессами является стандартным интерфейсом системныхвызовов и преобразует вызовыи т. д. всоответствующие запросы функцииНекоторые из них при!ведены в табл. 6.7.Таблица 6.7.

Запросы функции pr_usrreq()Системный вызовЗначениеclose(2)Прекратить обмен даннымиaccept(2)bind(2)Обработать запрос на установление связиСвязать сокет с адресомУстановить связьРазрешить обслуживание запросовОтправить данныеОпределить состояние сокетаПолучить адрес локального сокетаПолучить адрес удаленного сокетаПередать команду модулю протоколаlisten(2)send(2),fstat(2)getsockname(2)ioctl(2)ЗапросPRU ABORTACCEPTPRU BINDPRU CONNECTPRU LISTENPRU_SENSEPRU SOCKADDRPRU PEERADDRPRU CONTROLФункции pr_inputи pr_outputопределяют интерфейс взаимодей!ствияи служат для передачи данных между модулямисоседних уровней.

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

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

Список файлов книги

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