Главная » Просмотр файлов » Ю. Вахалия - UNIX изнутри (2003)

Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 57

Файл №1114670 Ю. Вахалия - UNIX изнутри (2003) (Ю. Вахалия - UNIX изнутри (2003)) 57 страницаЮ. Вахалия - UNIX изнутри (2003) (1114670) страница 572019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Для этого пользователи объединяют две программы в конвейер при помощи оператора 1 ' В традиционных системах, например в БУй2, программные каналы реализованы в файловой системе. Они используют поля блоков прямой алресации в индексных лескрипторах файлов (1поде, см. раздел 9,2.2) для размепгения блоков данных в канале. Это ограничивает размер конвейера до десяти блоков. В современных системах 111Ч1Х остается такое ограничение несмотря на то, что реализация каналов в них иная.

6.2. Универсальные средства!РС 241 С точки зрения межпроцессного взаимодействия программные каналы являются эффективным способом передачи данных от одного процесса дру- гому. Однако они обладают несколькими ограничениями: + так как чтение данных из канала приводит к их удалению, он не может быть использован для щироковещательной передачи информации нескольким адресатам; + данные канала интерпретируются как поток байтов, границы сообщения заранее не известны. Если отправитель посылает через канал несколько объектов различной длины, получатель не имеет возможности определять, как много объектов ему было передано, он также не знает, где заканчивается один объект и начинается другой', + когда данные из канала считываются несколькими процессами, отправитель не в состоянии передать данные какому-то определенному получателю.

Точно так же при наличии нескольких отправителей не существует способа определения, какой из них отослал данные'. Реализация программных каналов может быть осуществлена различными способами. В традиционных вариантах (например, в БЪ'К2) для этого приме- няются механизмы файловой системы и ассоциация индексного дескриптора файла ((поде) и элемента таблицы файлов для каждого канала. Во многих реализациях системы, основанных на ВЯ), применяются сокеты. В ОС БЪ'К4 используются двунаправленные каналы БТКЕАМ8, которые будут описаны подробнее в следующем разделе.

В ОС Бузсет 'тг 1))х11Х и других коммерческих вариантах 1)Х1Х представ- лены файлы ЛгО, называемые также имегговаппыми каналами (пащег) р(ре). Они отличаются от обычных неименованных каналов способами создания и доступа. Пользователь создает файл НРО при помощи системного вызова шалой, передавая ему имя файла и режим его создания. Поле режима описы- вает тип файла 3 1Р1ГО и обычные правила доступа к нему. После этого процесс, обладающий соответствующими полномочиями, может откры- вать файл Р1ГО и производить с ним операции чтения и записи. Семанти- ка чтения-записи для файлов НРО похожа на аналогичные операции над программными неименованными каналами и будет более подробно описана в разделе 8.4,2.

Файл Р1РО существует до тех пор, пока не будет отсоединен принудительно, даже если у него не останется ни одного активного отправи- теля или получателя. Файлы НГО обладают несколькими преимуществами по сравнению с про- граммными каналами. Такие файлы могут быть доступны любым процессам. ' Взаимодействуюшие приложения могут договориться о протоколе, опиеываюшем границы пакета информации в каждом обьекте. г Еше раз повторим, что приложения могут определить соглашение по маркировке источника данных каждого объекта.

242 глава 6. Межпроцессное взаимодействие Они являются постоянными и, следовательно, могут быть использованы для хранения данных пользователей, уже не активных в системе. Они обладают определенным именем в пространстве имен файловой системы. Конечно, файлы НгО имеют и некоторые недостатки. По завершении использования их необходимо удалять принудительно.

Они менее защищены по сравнению с программными каналами, так как к ним может обращаться любой процесс, обладающий достаточными привилегиями. Программные каналы проще в создании и требуют меньшего количества ресурсов. 6.2.3. Каналы в системе 8ЧВ4 В системе БЪ'К4 как базовое средство работы с сетями и реализации каналов и 41айлов НгО применяются 5ТКГАМ5 (см. главу 17). Это дает возможность предоставления системой новых полезных средств конвейеризации'. В этом разделе будут описаны только новые возможности каналов.

Детали их организации обсуждаются в разделе 17.9. В системе 5Ъ'К4 каналы двунаправлены. Вызов р]ре возвращает, как и ранее, два дескриптора, однако теперь они оба открыты как для чтения, так и для записи. Синтаксис вызова (совпадающий с традиционным) приведен ниже: з1асцз = р1ре(!п1 Т11цезг2]); В 5'тгК4 вызов р1ре создает два независимых канала ввода-вывода, работающих по принципу «первым вошел, первым вышел» и представленных двумя дескрипторами.

Данные, записанные в ЙЫез[1), могут быть прочитаны из ВЫез[0), а данные, записанные в ВЫез[0), могут быть прочитаны из ВЫез[1). Такой подход является очень удобным, поскольку многие приложения требуют от системы возможности двухсторонних коммуникаций, для чего в предгядущих версиях 5Ъ'К необходимо было открывать два отдельных канала Операционная система 5'ьгК4 может позволить процессу присоединить к объекту файловой системы любой дескриптор 4>айда 5ТК6АМ5 [10).

Приложение создает канал посредством вызова р]ре и затем связывает его дескрипторы с именем файла при помощи конструкции зса1цз - ТаС1аспыпт 111г)ез, сваг *расп); где раси — путь к объекту файловой системы, обладателем которого является вызывающий процесс'.

Такой объект может быть обычным файлом, каталогом или специальным файлом. Он не может быть точкой монтирования (то есть на него пе должна монтироваться файловая система) илн объектом удаленной файловой системы. Он также не присоединяется к другому дескрнп- ' Новые средства представлены только лля программнык каналов. Реализация файлов Р1РО в ОС о'т'й«почти совпадает с традиционной.

з В ином случае вызывакиций процесс должен являться привилегированным. б.2. Универсальные средства!РС 243 тору файла 51кЕАМ5. Существует возможность связать дескриптор с несколькими путями, ассоциируя с ними несколько имен. После присоединения все последующие операции над ратЬ будут на самом деле производиться над файлом 51КЕАМ5 до тех тор, пока дескриптор не будет отключен от раЬЬ через вызов Ыегасй.

Используя описанную возможность, процесс может создавать канал и затем дать доступ к нему другим процессам системы. Пользователь может поместить модули 51йсАМ5 в канал или файл Е1ЕО. Такие модули перехватывают проходящие через канал данные и производят над ними различные действия. Так как эти модули функционируют внутри ядра системы, они умеют выполнять действия, недоступные пользовательским приложениям. Только привилегированные пользователи обладают правом добавлять в систему модули, но всем пользователям доступна возможность помещения модулей в открытые ими потоки.

6.2.4. Трассировка процессов Системный вызов рггасе предлагает базовый набор средств трассировки процессов. Обычно он применяется различными отладчиками, например аоЬ или йх. При помощи ргтасе процесс может управлять выполнением своего потомка. Он может контролировать и несколько потомков сразу, но такое редко применяется на практике. Синтаксис ргтасе следующий: рГгасе 1сес', р1с, ассг. бата); где рЫ вЂ” идентификатор трассируемого процесса, адбт — ссылка на его адресное пространство.

Интерпретация аргумента сага зависит от се~а. Аргумент св6 позволяет процессу-предку осуществлять следующие действия: + записывать или считывать слово из адресного пространства потомка; + записывать или считывать слово из области а потомка; + считывать или писать в общецелевые регистры потомка; + перехватывать определенные сигналы. Если перехватываемый сигнал генерируется для потомка, ядро приостановит его работу и уведомит его предка о возникновении события; + устанавливать или удалять точки наблюдения в адресном пространстве потомка; + возобновлять выполнение приостановленного потомка; + осуществлять пошаговое выполнение потомка: прервать его работу, затем позволить ему выполнить одну инструкцию, после чего снова приостановить его функционирование; + завершить работу потомка.

244 Глава 6. Межпроцессное взаимодействие Одна из команд (сшг1 0) зарезервирована для потомка. Она применяется для информирования ядра системы о том, что потомок будет подвергнут трассировке своим предком. После этого ядро устанавливает для него флаг ?гасео (в структуре ргос), который влияет на обработку потомком сигналов, Если сигнал генерируется для трассируемого процесса, ядро приостанавливает его выполнение и уведогиляет об этом его процесс-предок при помощи сигнала 516СНЮ (вместо загрузки обработчика сигнала). Это позволяет родительскому процессу перехватить сигнал и произвести соответствующие действия, Флаг ггасе6 также изменяет выполнение системного вызова ехес.

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

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

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

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