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

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

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

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

Это даетвозможность динамически изменять их, сохраняя при этомбазовые значения.Эта структура непосредственно не используется подсистемойSTREAMS. Однако модуль имеет возможность осуществлятьсбор разнообразной статистики своего участка потока с по%мощью полей этой структуры.СообщенияВ подсистеме STREAMS все данные передаются в виде сообщений. С по!мощью сообщений передаются данные от приложений к драйверу и об!ратно.

Сообщения используются для взаимодействия модулей между со!бой. Модули могут также генерировать сообщения для уведомления при!www.books-shop.comГлава 5.процесса или друг друга о возникновении ошибок или непредви!денных ситуаций. Таким образом, сообщения являются единственнымспособом передачи информации между различными компонентами потокаи потому занимают ключевое место в подсистеме STREAMS.Сообщение описывается двумя структурами данных:сообщенияmsgb (message block) и заголовком блока данных(data block).

Обе этиструктуры адресуют буфер данных, где находятся фактические данные со!общения.Заголовок сообщения msgb имеет следующие поля:b_prevЬИспользуются для формирования связанного списка со%общений и соответственно адресуют следующее и пре%дыдущее сообщение очередиУказывает на продолжение сообщения и используетсядля связывания различных частей одного сообщенияУказатель на заголовок блока данныхУказатели, определяющие расположение (начало и ко%нец) данных в буфере данныхСодержит ссылку на следующую структуру msgbЗаголовок блока данных datab используется для описания буфера и имеетследующие поля:Адрес начала буфераАдрес ячейки памяти, следующей непосредственноза буфером.

Таким образом, размер буфера равен— db_basedb_typedbТип сообщенияЧисло заголовков сообщения, адресующих этот блокИспользование этих структур данных для формирования очереди сообще!ний и сообщений, состоящих из нескольких частей, показано на рис.Полезаголовка сообщения позволяет объединять несколько бло!ков данных в одно сообщение. Эта возможность особенно полезна прииспользовании подсистемы STREAMS для реализации сетевых протоко!лов.

Сетевые протоколы имеют уровневую организацию. По мере передачиданных вниз по потоку, каждый последующий модуль (реализующий про!токол определенного уровня) добавляет собственную управляющую инфор!мацию. Поскольку протоколы верхнего уровня не имеют представления обархитектуре нижних, невозможно заранее зарезервироватьпамять под сообщение. Вместо того чтобы изменять размер буфера данныхсообщения, модуль может добавлять управляющую информацию в видеотдельных частей, связывая их с помощью указателяЭтот процесс,получивший название инкапсуляции данных, графически представлен нарис. 5.18.www.books-shop.comSTREAMS3595.17. Сообщения STREAMSПолезаголовка блока данных позволяет нескольким заголовкамсообщения совместно использовать один и тот же буфер.

При этом проис!ходит виртуальное копирование сообщения, каждая копия которого можетобрабатываться отдельно. Как правило, такой буфер используется совме!стно только для чтения, хотя сама подсистема STREAMS не накладываетникаких ограничений, возлагая всю ответственность за обработку данныхна модулиȾɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com360Глава б.Рис.

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

Вместо неэффективногофизического копирования, производится виртуальное дублирование сооб!щения, одна копия которого затем передается вниз по потоку (модулю IP),а вторая сохраняется до получения подтверждения. После отправлениясообщения драйвером сетевого адаптера, одна из копий будет уничтожена,www.books-shop.com361STREAMSчто выразится в уменьшении поля db_ref заголовка блока данных, но самблок данных сохранится, поскольку значение счетчика по!прежнему будетпревышать 0. И только после получения подтверждениястанетравным 0, и соответствующий буфер будет освобожден.Типы сообщенийКаждое сообщение принадлежит определенному типу, определяющемуназначение сообщения и его приоритет. В зависимости от типа сообщенияпопадают в одну из двух категорий: обычные сообщения и приоритетныесообщения.

Категория определяет порядок, в котором сообщения будутобрабатываться соответствующей процедуройПриоритет!ные сообщения всегда помещаются перед обычными сообщениями и по!тому обрабатываются в первую очередь.В подсистеме STREAMS определены следующие типы обычных сообще!ний:M_DATAСодержит обычные данные. Например, системные вызовыиwrite(2) осуществляют передачу данных в виде сообщений этого типа.Содержит управляющую информацию. Обычно сообщение этого типасодержит также несколько блоков типа M_DATA.

С помощью систем%ных вызовови getmsg(2) процесс имеет возможность от%правлять и получать как управляющую часть сообщения (блокM_PROTO), так и данные (блокиM_BREAKПосылается драйверу устройства для генерации команды break.Используется в каналах STREAMS (STREAMS pipe) для передачифайлового указателя от одного конца канала к другому.Генерируется модулями или драйверами и передается вверх по по%току головному модулю для отправления процессу сигнала.Передается драйверу устройства и указывает задержку между по%следовательно передаваемыми символами.

Как правило, использу%ется при работе с медленными устройствами во избежание пере%полнения их буферов.Используется для взаимодействия модулей потока друг с другом.Все сообщения этого типа уничтожаются головным модулем и, та%ким образом, не могут распространяться за пределы потока.M IOCTLФормируется головным модулем в ответ на управляющие команды,переданные процессом с помощью системного вызоваИЭтииспользуются для создания мультиплексированных потоков. По%следняя команда используется для управления модулями потока.M_SETOPTSИспользуется для задания различных характеристик головного мо%дуля.Зарезервировано для внутреннего использования.

Модули и драй%веры должны передавать его без изменений.www.books-shop.com362Глава 5.ввода/выводаКак мы увидим далее, на передачу обычных сообщений влияет механизмуправления потоком данных, который может быть реализован модулямипотока. Этот механизм не оказывает влияния на передачу приоритетныхсообщений. Сообщения этой категории будут переданы следующему моду!лю, независимо от того, насколько заполнена его очередь.

Эти сообщенияобеспечивают основное взаимодействие между компонентами потока. Пе!речисленные ниже сообщения являются высокоприоритетными:M_IOCNAKM_PCPROTOM_PCRSEПередается вверх по потоку головному модулю и указываетему скопировать данные от процесса для команды ioctl(2).Сообщение допустимо в интервале между получением сооб%щения M_IOCTL и сообщенияилиПередается вверх по потоку головному модулю и указываетему передать данные, связанные с вызовомпроцессу.Сообщение допустимо в интервале между получением сооб%щения M_IOCTL и сообщенийилиПередается вверх по потоку головному модулю и указываетна возникновение ошибки вниз по потоку. Последующие опе%рации с потоком будут заканчиваться ошибкой, за исключе%нием системных вызовов close(2) и poll(2).При получении этого сообщения модуль должен очиститьочередь (чтения, записи или обе) от сообщений.Передается вверх по потоку головному модулю и указывает,что драйвер не может передавать данные, обычно из%за об%рыва линии (связи с удаленнымПодтверждение предыдущего сообщенияВ ответголовной модуль возвратит необходимые данные процессу,сделавшему системный вызов ioctl(2).Если выполнение команды ioctl(2) закончилось неудачей, этосообщение передается вверх по потоку головному модулю, вответ на это последний возвратит процессу ошибку.Высокоприоритетная версия сообщенияВысокоприоритетная версия сообщенияЗарезервировано для внутреннего использования в подсис%теме.Сообщение передается вниз по потоку, когда от процессапоступает запрос на чтение, но в головном модуле отсутству%ют данные.Предписывает немедленно прекратить передачу.Предписывает продолжить передачу после останова, вызван%ного сообщениемПередачаКак уже обсуждалось, передача данных в потоке происходит в виде сооб!щений.

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

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

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

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