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

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

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

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

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

3.6 приве!дены типы сокетов и их названия.Таблица 3.6. Типы сокетов в системе BSD UNIXНазваниеТипSOCK_SEQPACKETСокет датаграммСокет потокаСокет пакетовСокет низкого уровняwww.books-shop.com266Глава 3.процессамиДля создания сокета процесс должен указать типи коммуникаци!онный домен, в рамках которого будет использоваться сокет. Посколькукоммуникационный домен может поддерживать использование несколькихпротоколов, процесс может также указать конкретный коммуникационныйпротокол для взаимодействия.

Если таковой не указан, система выберетнаиболее подходящий из списка протоколов, доступных для данного ком!муникационного домена. Если же в рамках указанного домена созданиесокета данного типа невозможно, т. е. отсутствует соответствующий ком!муникационный протокол, запрос процесса завершится неудачно.Для создания сокета используется системный вызовследующий вид:intимеющийdomain, int type,Здесь аргумент domain определяет коммуникационный домен, type — типсокета, a protocol — используемый протокол (может быть не указан, т. е.приравнен 0).

В случае успеха системный вызов возвращает положитель!ное целое число, аналогичное файловому дескриптору, которое служит дляадресации данного сокета в последующих вызовах.По существу коммуникационный домен определяет семейство протоколов(protocol family), допустимых в рамках данного домена. Возможные значе!ния аргумента domain включают:Домен локального межпроцессного взаимодействия в пределахединой операционной системы UNIX. Внутренние протоколы.Домен взаимодействия процессов удаленных систем. ПротоколыInternet (TCP/IP).Домен взаимодействия процессов удаленных систем. ПротоколыXerox NS.Поскольку домен и семейство протоколов определяют адресное простран!ство взаимодействия (допустимые адреса и их формат), то в названиях до!менов присутствует префикс AF (от address family — семейство адресов).Допустимыми также являются названия с префиксом PF (protocol family)PF UNIX, PFИ Т. Д.Посколькуявляютсячастью BSDв системах этой ветвифункции, связанные с этими объектами, в частности socket(2) и рассмотренные ниже,представляют собой системные вызовы.

В UNIX ветви System V интерфейс сокетов сохра!нен для совместимости, но имеет совершенно отличную от принятой в BSD архитектуру(основанную на подсистеме STREAMS). Поэтому все его функции являются библиотеч!ными и описываются, соответственно в разделе 3 электронного справочника. Однако, ос!тавляя пальму первенства в этом вопросе за BSD UNIX, в этом разделе будем считать этифункции системными вызовами и связывать с ними раздел 2 справочникаwww.books-shop.comВзаимодействие между процессами267Заметим, что домен может не поддерживать определенные типыДля сравнения в табл.

3.7 приведены два основных коммуникационныхдомена — внутренний домен UNIX, предназначенный для взаимодействияпроцессов одной операционной системы, и домен TCP/IP, используемыйв сетевых распределенных приложениях.Таблица 3.7. Поддержка различных типов сокетов в доменахДомен:AF UNIXТип сокетаSOCK STREAMДаДаSOCKДаSOCK SEQPACKETДаНетSOCK RAWНетДаНетТакже допустимы не все комбинации типа сокета и используемого комму!никационного протокола (если таковой явно указан в запросе).

Так длядомена AF_INET возможны следующие комбинации:СокетSOCK_STREAMПротокол(TCP)(UDP)(IP)Указанные протоколы принадлежат семейству сетевых протоколов TCP/IPи будут подробно рассмотрены в главе 6.Создание сокета не означает создания коммуникационного узла. Для одно!значной идентификации сокета его необходимо позиционировать в про!странстве имен данного коммуникационного домена.

В общем случае каж!дый коммуникационный канал определяется двумя узлами — источником иполучателем данных, и может быть охарактеризован пятью параметрами:1. Коммуникационным протоколом2. Локальным адресом3. Локальным процессом4. Удаленным адресом5. Удаленным процессомКак правило, адрес определяет операционную систему (или хост сети), апроцесс — конкретное приложение, получающее или передающее данные.Однако конкретные значения и формат этих параметров определяютсякоммуникационным доменом.www.books-shop.com268Глава 3.управления процессамиПоскольку при создании сокета указывается только один параметр —коммуникационный протокол, прежде чем передача данных между взаи!модействующими процессами станет возможной необходимо указать четы!ре дополнительных параметра для коммуникационного канала.

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

Взаимодействие между процессами при создании виртуального канала (спредварительным установлением соединения)www.books-shop.comмежду процессами269Рис. 3.22. Взаимодействие между процессами, основанное на датаграммах (безпредварительного установления соединения)Как видно из рисунков, фактической передаче данных предшествует началь!ная фаза связывания (binding) сокета, когда устанавливается дополнительнаяинформация, необходимая для определения коммуникационного узла. Связы!вание может быть осуществлено с помощью системного вызоваint bind(int sockfd, struct sockaddr *localaddr, intЗдесь s o c k f d является дескриптором сокета, полученным при его созда!нии; аргументопределяет локальный адрес, с которым необхо!димо связать сокет; параметр addrlen определяет размер адреса.

Заметим,что речь идет о связывании с локальным адресом, в общем случае опреде!ляющим два параметра коммуникационного канала (коммуникационныйузел): локальный адрес и локальный процесс.Как уже обсуждалось, адрес сокета зависит от коммуникационного доме!на, в рамках которого он определен. В общем случае адрес определяетсяследующим образом (в файле <sys/socket.h>):Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com270Глава 3.structуправления процессами{charПоле sa_family определяет коммуникационный домен (семейство прото!колов), a.— содержит собственно адрес, формат которого опреде!лен для каждого домена.Например, для внутреннего домена UNIX адрес выглядит следующим об!разом (определен вstruct sockaddr_un {shortchar/**/Поскольку в данном домене взаимодействующие процессы выполняютсяпод управлением одной операционной системы на одном и том же хосте,коммуникационный узел может быть однозначно определен одним пара!метром — локальным процессом.

В качестве адреса в домене UNIX ис!пользуются имена файлов.В отличие от локального межпроцессного взаимодействия, для сетевогообмена данными необходимо указание как локального процесса, так ихоста, на котором выполняется данный процесс. Для домена Internet (се!мейство протоколов TCP/IP) используется следующий формат адреса(определен в файле <netinet/in.h>):structshort{/* ==AF_INET */struct in_addrcharАдреса этого домена (IP!адреса) будут рассмотрены подробнее в главе 6.Пока лишь заметим, что адрес хоста представляет собой 32!разрядное це!лое число sin_addr, а процесс (приложение) адресуется 16!разряднымномером порта sin_port.На рис. 3.23 показаны рассмотренные форматы адресов сокетов.Итак, связывание необходимо для присвоения сокету локального адреса и,таким образом, для определения коммуникационного узла.

Можно выде!лить три случая использования для этого функции1. Сервер регистрирует свой адрес. Этот адрес должен быть заранее из!вестен клиентам, желающим "общаться" с сервером. Связывание необ!ходимо, прежде чем сервер будет готов к приему запросов от клиентов.2. При взаимодействии без предварительного установления связи и соз!дания виртуального канала клиент также должен предварительно за!www.books-shop.comрегистрировать свой адрес. Этот адрес должен быть уникальным врамках коммуникационного домена.

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

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

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

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

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