Сетевое ПО Лекция 2 (Электронные лекции)
Описание файла
Файл "Сетевое ПО Лекция 2" внутри архива находится в следующих папках: Электронные лекции, 1 модуль СПО. PDF-файл из архива "Электронные лекции", который расположен в категории "". Всё это находится в предмете "сетевое программное обеспечение" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "сетевое программное обеспечение" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1Сетевое ПО. Лекция 2(2014г.)(Механизмы межпроцессноговзаимодействия(Inter-Process Communication, IPC) в сети.)Оглавление12345Способы взаимодействия между процессами в централизованных и сетевых системах............................ 1Формат сетевых сообщений ......................................................................................................................... 2Примитивы передачи сообщений .................................................................................................................3Синхронизация процессов при передачи сообщений ..................................................................................4Буферизация при передачи сообщений......................................................................................................65.1 Буферизация при синхронном взаимодействие процессов ....................................................................65.2 Буферизация при асинхронном взаимодействие процессов ..................................................................86 Способы адресации при передаче сообщений ...........................................................................................
107 Надежные и ненадежные примитивы передачи сообщений ...................................................................... 151 Способы взаимодействия между процессами вцентрализованных и сетевых системах.В централизованных системах связь между процессами, как правило,предполагает наличие разделяемой памяти. Типичный пример — задача«поставщик-потребитель». В этом случае один процесс пишет в разделяемыйбуфер, а другой читает из него. Даже наиболее простая форма синхронизации семафор - требует, чтобы хотя бы одно слово (переменная самого семафора)было разделяемым.Аналогичнымобразомпроисходитвзаимодействиемеждупользовательскими процессами, между приложением и операционной системой .Процесс в пользовательском режиме запрашивает у ОС выполнениянекоторой операции с помощью системного вызова, помещая в доступную емучасть оперативной памяти параметры этого системного вызова (например, имяфайла, смещение от его начала и количество байт, которые необходимопрочитать).
После этого модуль ядра ОС считывает эти параметры изпользовательской памяти (ядру в привилегированном режиме доступна всяпамять, как ее системная часть, так и пользовательская) и выполняет системныйвызов. Взаимодействие и в этом случае происходит за счет непосредственнодоступной обоим участникам области памяти.В распределенных системах не существует памяти, непосредственнодоступнойпроцессам,работающимнаразныхузлахсети.Поэтомувзаимодействие процессов (как пользовательских, так и в системных) можетосуществляться только путем передачи сообщений через сеть.2Сетевое ПО.
Лекция 2(2014г.)(Механизмы межпроцессноговзаимодействия(Inter-Process Communication, IPC) в сети.)В сообщениях переносятся запросы от клиентов некоторой службы ксоответствующим серверамПример. Запрос на просмотр содержимого определенного каталогафайловой системы, расположенной на сетевом сервере.
Сервер возвращает ответ- набор имен файлов и подкаталогов, входящих в данный каталог, такжепомещая его в сообщение и отправляя его по сети клиенту.2 Формат сетевых сообщенийСообщение — это блок информации, отформатированный процессомотправителем таким образом, чтобы он был понятен процессу-получателю.Сообщение состоит из заголовка(обычно фиксированной длины) набора данных определенного типа(переменной длины).В заголовке содержатся следующие элементы:Адрес - набор символов, уникально определяющих отправляющий иполучающий процессы.
Адресное поле, таким образом, состоит из двухчастей — адреса процесса-отправителя и адреса процесса-получателя.Адрес каждого процесса может, в свою очередь, иметь некоторую структуру,позволяющую найти нужный процесс в сети, состоящей из большогоколичества компьютеров.Последовательный номер, являющийся идентификатором сообщения.Используется для идентификации потерянных сообщений и дубликатовсообщений в случае отказов в сети.Структурированная информация, состоящая в общем случае изнескольких частей: поле типа данных(определяет, например, что данные являютсяцелым числом или же представляют собой строку символов (этополе может также содержать признак нерезидентности данных, тоесть указатель на данные, которые хранятся где-то вне данногосообщения),3Сетевое ПО.
Лекция 2(2014г.)(Механизмы межпроцессноговзаимодействия(Inter-Process Communication, IPC) в сети.) поле длины данных(определяет длину передаваемых в сообщенииданных (обычно в байтах), то есть размер следующего полясообщения ) поле значения данных (собственно данные).Сообщение может включать несколько элементов, состоящих из описанныхтрех полей.3 Примитивы передачи сообщенийВ любой сетевой ОС имеется подсистема передачи сообщений,называемая также транспортной подсистемой, которая содержит средства дляорганизации взаимодействия процессов по сети.
Назначение этой системы —скрыватьдеталисложныхсетевыхпротоколовотпрограммиста.Подсистема позволяет процессам взаимодействовать посредством достаточнопростых примитивов.В самом простом случае системные средства обеспечения связи могут бытьсведены к двум основным коммуникационным примитивам:send (отправить) — для посылки сообщенияreceive (получить) — для получения сообщения.На их базе могут быть построены более мощные средства сетевыхкоммуникаций, такие, как распределенная файловая система или службавызова удаленных процедур, которые, в свою очередь, также могут служитьосновой для работы других сетевых служб.В процесс выполнения примитивов send и receive вовлекаются средствавсех нижележащих коммуникационных протоколовНесмотря на концептуальную простоту примитивов send и receive,существуют различные варианты их реализации, от правильного выборакоторых зависит эффективность работы сети.Вопросы, решаемые при передаче: способа задания адреса получателя. В сети всегда имеется один получатель или их может быть4Сетевое ПО.
Лекция 2(2014г.)(Механизмы межпроцессноговзаимодействия(Inter-Process Communication, IPC) в сети.)несколько? Требуется ли гарантированная доставка сообщений? Должен лиотправитель дождаться ответа на свое сообщение, прежде чемпродолжать свою работу? Как отправитель, получатель и подсистема передачи сообщенийдолжны реагировать на отказы узла или коммуникационногоканала во время взаимодействия? Что нужно делать, если приемник не готов принять сообщение,нужно ли отбрасывать сообщение или сохранять его в буфере? Аесли сохранять, то как быть, если буфер уже заполнен? Разрешенолиприемникуизменятьпорядокобработкисообщений в соответствии с их важностью?Ответы на подобные вопросы составляют семантику конкретногопротокола передачи сообщений.4 Синхронизация процессов при передачи сообщенийЦентральный вопрос взаимодействия процессов в сети -способ ихсинхронизации,которыйполностьюопределяетсяиспользуемымивоперационной системе коммуникационными примитивами.В этом отношении коммуникационные примитивы делятся наблокирующие (синхронные)неблокирующие (асинхронные)При использовании блокирующего примитива send процесс, выдавшийзапрос на его выполнение, приостанавливается до момента получения по сетисообщения-подтверждения о том, что приемник получил отправленноесообщение.Авызовблокирующегопримитиваreceiveприостанавливаетвызывающий процесс до момента, когда он получит сообщение.При использовании блокирующего примитива send может возникнутьситуация, когда процесс-отправитель блокируется навсегда.
Например, если5Сетевое ПО. Лекция 2(2014г.)(Механизмы межпроцессноговзаимодействия(Inter-Process Communication, IPC) в сети.)процесс получатель потерпел крах или же отправленное сообщение былоутеряно из-за сетевой ошибки. Чтобы предотвратить такую ситуацию,блокирующий примитив send часто использует механизм тайм-аута.
То естьопределяется интервал времени, после которого операция send завершается состатусом «ошибка».Механизм тайм-аута может использоваться также блокирующимпримитивом receive для предотвращения блокировки процесса-получателя нанеопределенное время, когда процесс-отправитель потерпел крах илисообщение было потеряно вследствие сетевой ошибки.При использовании неблокирующих примитивов send и receiveуправление возвращается вызывающему процессу немедленно, сразу послетого, как ядру передается информация о том, где в памяти находится буфер, вкоторый нужно поместить сообщение, отправляемое в сеть или ожидаемое изсети.Преимуществом этой схемы является параллельное выполнениевызывающего процесса и процедур передачи сообщения (не обязательноработающих в контексте вызвавшего соответствующий примитив процесса).Важным вопросом при использовании неблокирующего примитиваreceive является выбор способа уведомления процесса-получателя о том, чтосообщение пришло и помещено в буфер.Обычно для этой цели требуется один из двух способов.1.