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

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

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

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

Иначе дело об!стоит при вызове удаленной процедуры. Невозможно установить, когдаконкретно будет выполняться процедура, будет ли она выполнена вообще,а если будет, то какое число раз? Например, если запрос будет полученудаленной системой после аварийного завершения программы сервера,процедура не будет выполнена вообще. Если клиент при неполучении от!клика после определенного промежутка времени (тайм!аута) повторно по!сылает запрос, то может создаться ситуация, когда отклик уже передаетсяпо сети,повторный запрос вновь принимается на обработку удаленнойпроцедурой.

В этом случае процедура будет выполнена несколько раз.Таким образом, выполнение удаленной процедуры можно характеризоватьследующей семантикой:Один и толькораз. Данного поведения (в некоторых случаях наибо!лее желательного) трудно требовать ввиду возможных аварий сервера.Максимум раз. Это означает, что процедура либоне была вы!полнена, либо была выполнена только один раз. Подобноеможно сделать при получении ошибки вместо нормального отклика.Хотя бы раз.

Процедура наверняка была выполнена один раз, но воз!и больше. Дляработы в такой ситуацииwww.books-shop.comПрограммные445процедура должна обладать свойствомЭтимобладаетмногократное вы!которой не вызывает кумулятивных изменений. Например,чтение файлаа добавление текста в файл — нет.Представление данныхКогда клиент и сервер выполняются в одной системе на одном компьюте!ре, проблем с несовместимостью данных не возникает. И для клиента идля сервера данные в двоичном виде представляются одинаково.

В случаеудаленного вызова дело осложняется тем, что клиент и сервер могут вы!полняться на системах с различной архитектурой, имеющих различноепредставление данных (например, представление значения с плавающейточкой, порядок следования байтов и т. д.)Большинство реализаций системы RPC определяют некоторые стандарт!ные виды представления данных, к которым должны быть преобразованывсе значения, передаваемые в запросах и откликах.Например, формат представления данных в RPC фирмы Sun Microsystemsследующий:Порядок следования байтовПредставление значений с плавающей точкойПредставление символаСтарший — последнийIEEEASCIIСетьПо своей функциональности система RPC занимает промежуточное местомежду уровнем приложения и транспортным уровнем.

В соответствии смодельюэтому положению соответствуют уровни представления и се!анса. Таким образом, RPC теоретически независим от реализации сети, вчастности, от сетевых протоколов транспортного уровня.Программные реализации системы, как правило, поддерживают один илидва протокола.системаразработки фирмы SunMicrosystems поддерживает передачу сообщений с использованием прото!колов TCP иВыбор того или иного протокола зависит от требова!ний приложения. Выбор протокола UDP оправдан дляобла!дающих следующими характеристиками:Вызываемые процедурыОРазмер передаваемых аргументов и возвращаемого результата мень!ше размера пакета— 8 Кбайт.Сервер обеспечивает работу с несколькими сотнями клиентов. По!скольку при работе с протоколами TCP сервер вынужден поддержи!вать соединение с каждым из а к т и в н ы х клиентов, это занимаетwww.books-shop.com446Глава 6.часть его ресурсов.

Протоколляется менее ресурсоемкимсети всистемев этом отношении яв!С другой стороны, TCP обеспечивает эффективную работу приложений соследующими характеристиками:Приложению требуется надежный протокол передачиВызываемые процедурыРазмер аргументов или возвращаемого результата превышает 8 КбайтВыбор протокола обычно остается за клиентом, и система по!разному ор!ганизует формирование и передачу сообщений. Так, при использованиипротокола TCP, для которого передаваемые данные представляют собойпоток байтов, необходимо отделить сообщения друг от друга. Для этого,например, применяется протоколзаписей, описанный вRemote Procedure Call Protocolversion 2", прикотором в начале каждого сообщения помещается 32!разрядное целое чис!ло, определяющее размер сообщения в байтах.По!разному обстоит дело и с семантикой вызова.

Например, есливыполняется с использованием ненадежного транспортного протоколасистема выполняет повторную передачу сообщения через короткиепромежутки времени (тайм!ауты). Если приложение!клиент не получаетотклик, то с уверенностью можно сказать, что процедура была выполненаноль или большее число раз. Если отклик былприложение мо!жет сделать вывод, что процедура была выполнена хотя бы однажды. Прииспользовании надежного транспортного протокола (TCP) в случае полу!ч е н и я отклика можно сказать, что процедура была выполнена один раз.Если же отклик не получен, определенно сказать, что процедура выполне!на не была,Как это работает?Пособственно система RPC является встроенной в программу!клиент и программу!сервер.

Отрадно, что при разработке распределенныхприложений, не придется вникать в подробности протокола RPC илипрограммировать обработку сообщений. Система предполагает существо!вание соответствующей среды разработки, которая значительно облегчаетжизнь создателям прикладного программного обеспечения. Одним изключевых моментов в RPC является то, что разработка распределенногоприложения начинается с определения интерфейса— формаль!ного описания функций сервера, сделанного на специальном языке. Наосновании этого интерфейса затем автоматически создаются заглушкиДаже при использовании надежных транспортных протоколов в случае аварийногошения работытребуютсясвязии повторнаяВ этом случаетакже меняется.www.books-shop.comПрограммные447клиента и сервера.

Единственное, что необходимо сделать после этого, —написать фактический код процедуры.В качестве примера рассмотрим RPC фирмы Sun Microsystems.Система состоит из трех основных частей:rpcgen(l) —который на основании описания ин!терфейса удаленной процедуры генерирует заглушки клиента и сер!вера в виде программ на языке С.Библиотека XDRData Representation), которая содержитфункции для преобразования различных типов данных в машинно!независимый вид, позволяющий производить обмен информациеймежду разнородными системами.Библиотека модулей, обеспечивающих работу системы в целом.Рассмотрим пример простейшего распределенного приложения для веде!ния журнала событий. Клиент при запуске вызывает удаленную процедурузаписи сообщения в файл журнала удаленного компьютера.Для этого придется создать как минимум три файла: спецификацию ин!терфейсов удаленных процедур(на языке описания интерфейса),собственно текст удаленных процедури текст головной программыклиента main—(на языке С) .Компиляторна основании спецификации log.x создает три фай!ла: текст заглушек клиента и сервера на языке Сиифайл описанийиспользуемый обеими заглушками.Итак, рассмотрим исходные тексты программ.log.xВ этом файле указываются регистрационные параметры удаленной про!цедуры — номера программы, версии и процедуры, а также определяетсяинтерфейс вызова — входные аргументы и возвращаемые значения.

Такимобразом, определена процедура RLOG, в качестве аргумента принимаю!щая строку (которая будет записана в журнал), азначениестандартно указывает на успешное или неудачное выполнение заказаннойоперации.program LOG_PROG {version LOG_VER (RLOG (string)1;} = i;} =Компилятор rpcgen(l) создает файл заголовков log.h, где, в частности, оп!ределены процедуры:www.books-shop.com448Глава 6.сети в операционной системе UNIX/** Please do not edit this file.* It was generated using rpcgen.ttifndef<rpc/rpc.h>ftdefineftdefineRLOGextern intlong)/*Внутренняя процедура — нам ее использовать неextern int/**/Рассмотрим этот файл внимательно. Компилятор транслирует имя RLOG,определенное в файле описания интерфейса, взаменяя пропис!ные символы на строчные и добавляя номер версии программы с подчер!киванием. Тип возвращаемого значения изменился сна intТаковоправило — RPC позволяет передавать и получать только адреса объявлен!ных при описании интерфейса параметров.

Это же правило касается и пе!редаваемой в качестве аргумента строки. Хотя из файлаэто не сле!дует, на самом деле в качестве аргумента функциитакже пере!дается адрес строки.Помимо файла заголовков компиляторклиента и заглушки сервера. Повесь код удаленного вызова.создает модули заглушкив тексте этих файлов заключенЗаглушка сервера является головной программой,всесетевое взаимодействие с клиентом (точнее, с его заглушкой). Для выпол!нения операции заглушка сервера производит локальный вызов ф у н к ц и и ,текст которой необходимо написать:log. с<rpc/rpc.h>#include<sys/stat.h>значение должно определяться какstatic int result;intдескрипторintwww.books-shop.comПрограммные интерфейсы449result =файл журналаесли он неслучае неудачи вернем код ошибки result ==!,j! 0 APPEND); < 0! returnв=if!= len!result =elseresult0;результат — адрес}Заглушка клиента принимает аргумент, передаваемый удаленнойре, делает необходимые преобразования, формирует запрос на серверобменивается данными с сервером удаленной процедуры и,наконец, передает возвращаемое значение клиенту.

Для клиента вызовудаленной процедуры сводится к вызову заглушки и ничем не отличаетсяот обычного локального вызова.client.cargc, char{CLIENTchar*server,time tserver =В случае неудачи — сообщим оневозможности установления связи сif (rȾɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com450Глава 6. Поддержка сети в операционной системе UNIX/*Выделим буфер для строки*/mystring = (char *)malloc(100);/*0пределим время события*/bintime = time((time_t *)NULL);clnttime = ctime(&bintime );sprintf (mystring, "%s — Клиент запущен",clntime);/*Передадим сообщение для журнала — время начала работы клиента.В случае неудачи — сообщим об ошибке*/if ( ( r e s u l t = rlog_l(&mystring, cl)) == NULL) {fprintf(stderr, "error2\n");clnt_perror(cl, server);exit (3) ;}/*B случае неудачи на удаленном компьютере сообщим об ошибке*/if (*result !=0 )fprintf(stderr, "Ошибка записи в журнал\п"!;/"Освободим дескриптор*/clnt_destroy(cl);exit(0);Заглушка клиентакомпилируется с модулемисполняемой программы клиента.для получе!оЗаглушка сервераиния исполняемой программы сервера.окомпилируются для получе!log svc.eТеперь на некотором хосте server.nowhere.ru необходимо запустить сервер!ный$ loggerПосле чего при запуске клиента Hog на другой машине сервер добавит со!ответствующую запись в файл журнала.Схема работы RPC в этом случае приведена на рис.

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

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

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

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