UNIX: взаимодействие процессов

UNIX: взаимодействие процессов

Книга написана известным экспертом по операционной системе UNIX и посвящена описанию одной из форм межпроцессного взаимодействия, IPC, с использованием которой создается большинство сложных программ. В ней описываются четыре возможности разделения решаемых задач между несколькими процессами или потоками одного процесса: передача сообщений, синхронизация, разделяемая память, удаленный вызов процедур.

Книга содержит большое количество иллюстрирующих примеров и может использоваться как учебник по IPC, и как справочник для опытных программистов.

Жанры: ОС и Сети, Программирование
Серия: Мастер-класс
Всего страниц: 194
ISBN: 5-318-00534-9
Год издания: 2003
Формат: Фрагмент

UNIX: взаимодействие процессов читать онлайн бесплатно

Шрифт
Интервал

Предисловие

Введение

Большинство нетривиальных программ пишутся с использованием одной из форм межпроцессного взаимодействия (IPC — Interprocess Communication). Это естественное следствие принципа разработки, заключающегося в том, что лучше создавать приложение, состоящее из отдельных взаимодействующих элементов, чем одну большую программу. Исторически разработка приложений пережила следующие этапы развития:

1. Сначала были большие цельные программы, которые делали все необходимое. Отдельные части программы реализовывались в виде функций, обменивавшихся информацией через аргументы, возвращаемые значения и глобальные переменные.

2. Потом стали создаваться небольшие программы, взаимодействующие друг с другом посредством различных средств IPC. Многие стандартные утилиты Unix были разработаны именно таким образом, причем для передачи информации использовались каналы интерпретатора.

3. Наконец, сейчас появилась возможность писать цельные программы, состоящие из взаимодействующих между собой потоков. В данном случае мы все равно применяем термин IPC, хотя процесс имеется только один.

Комбинация последних двух вариантов также возможна: несколько процессов, каждый из которых состоит из нескольких потоков, вполне могут взаимодействовать между собой.

Мы описываем возможность разделения решаемых задач между несколькими процессами или даже между потоками одного процесса. В мультипроцессорной системе такое приложение сможет выполняться гораздо быстрее, поэтому разделение задач между процессами способно повысить его быстродействие.

В этой книге подробно описываются четыре формы IPC:

1. Передача сообщений (каналы, FIFO, очереди сообщений).

2. Синхронизация (взаимные исключения, условные переменные, блокировки чтения-записи, блокировка файлов и записей, семафоры).

3. Разделяемая память (неименованная и именованная).

4. Удаленный вызов процедур (двери, Sun RPC).

Здесь не рассматриваются вопросы написания программ, взаимодействующих по сети. Такая форма взаимодействия обычно подразумевает использование интерфейса сокетов и стека протоколов TCP/IP; эти темы были подробно разобраны в первом томе книги ([24]).

Нам могут возразить, что средства IPC, не предназначенные для взаимодействия по сети, вообще не следует использовать и что вместо этого следует изначально разрабатывать приложения с расчетом на использование в сети. Однако на практике средства IPC, работающие только в пределах одного узла, функционируют гораздо быстрее, чем сетевые, да и программы с их использованием оказываются проще. Разделяемая память и средства синхронизации обычно не могут использоваться по сети — они доступны только в пределах одного узла. Опыт и история показывают, что существует потребность в наличии как несетевых, так и сетевых форм IPC.

В этой книге используется материал первого тома и других моих книг:

■ UNIX Network Programming, том 1, 1998 [24];

■ Advanced Programming in the UNIX Environment, 1992 [21];

■ TCP/IP Illustrated, том 1, 1994 [22];

■ TCP/IP Illustrated, том 2, написанной в соавторстве с Гари Райтом (Gary Wright),1995, [27];

■ TCP/IP Illustrated, том 3, 1996 [23].

Может показаться странным, что я описываю средства IPC в книге, заглавие которой содержит слова «Network Programming». Замечу, что IPC часто используется и в сетевых приложениях. Как говорилось в предисловии к книге «UNIX Network Programming» 1990 года издания, «для понимания методов разработки сетевых приложений необходимо понимание средств межпроцессного взаимодействия (IPC)».

Изменения со времени первого издания

Этот том содержит полностью переписанные главы 3 и 18 книги «UNIX Network Programming» 1990 года издания. Если подсчитать количество слов, объем материала увеличился в пять раз. Ниже перечислены основные отличия данного издания:

■ В дополнение к трем формам System V IPC (очереди сообщений, семафоры, разделяемая память) рассматриваются более новые функции Posix, реализующие эти же три формы IPC. О стандартах Posix более подробно говорится в разделе 1.7. В будущем можно ожидать перехода к использованию функций Posix, обладающих определенными преимуществами по сравнению с аналогами System V.

■ Рассматриваются средства синхронизации Posix: взаимные исключения, условные переменные, блокировки чтения-записи. Эти средства могут использоваться для синхронизации потоков или процессов и часто привлекаются для обеспечения синхронизации доступа к разделяемой памяти.

■ В этом томе предполагается наличие поддержки потоков Posix (Pthreads), и многие примеры написаны с использованием многопоточного (а не многопроцессного) программирования.

■ Описание именованных и неименованных каналов и блокировок записей основано на их определениях в стандарте Posix.

■ В дополнение к описанию средств IPC и примерам их использования я также привожу примеры реализации очередей сообщений, блокировок чтения-записи и семафоров Posix (все это может быть скомпилировано в пользовательские библиотеки). Эти реализации задействуют множество разных средств одновременно. Например, одна из реализаций семафоров Posix использует взаимные исключения, условные переменные и отображение в память. В комментариях отмечаются важные моменты, которые следует учитывать при разработке приложений (ситуации гонок, обработка ошибок, утечка памяти, использование списков аргументов переменной длины). Понимание реализации какого-либо средства ведет к лучшему его использованию.


Еще от автора Уильям Ричард Стивенс
UNIX: разработка сетевых приложений

Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.


Рекомендуем почитать
Мистерии доктора Гора и другое…

На страницах книги поначалу кажутся несовместимыми сплетения документального и художественного, реальности и фантазии, риска и обыденности, философии и гротеска.Открывает книгу художественно-документальная повесть «Беглый Рачихин». Владимир Рачихин, помощник известного режиссера Бондарчука, бежавший с киносъемок в Мексике и обратившийся за политическим убежищем к американским властям…Книга включила в себя разделы «Сны Однопозова» и «Мистерии доктора Гора» — собрание разрозненных по сюжетной композиции, но единых по высшему, философскому замыслу великолепно выписанных коротких новелл.


БП. Между прошлым и будущим. Книга 2

Во втором томе трилогии «БП. Между прошлым и будущим» читатель встретит имена собеседников автора, определивших целую эпоху культурной и политической жизни нашего времени; в их числе, переводчик Сталина В.Бережков, директор Института США Г.Арбатов и А.Авторханов, за чьими книгам, нелегально попадавшими в СССР, охотился Комитет Госбезопасности. Писатели Б. Окуджава, А.Алексин, В.Аксенов, Ахмадулина, А.Гладилин, И.Губерман, Э.Лимонов и С.Соколов, С.Крамаров, режиссеры М.Розовский и А.Кончаловский, художники М.Шемякин, Б.Месерер… — беседы с многими из них, как и тексты разговоров автора с выдающимися музыкантами Р.Баршаем и О.Лундстремом, перепечатывались в российской и в американской периодике — с согласия автора, а бывало — и без.Книга представлена вступлением и послесловием ведущих литературных критиков и писателей.


Вечера в Колмове. Из записок Усольцева. И перед взором твоим...

Повесть о Глебе Успенском рассказывает о последних, самых драматических годах жизни замечательного русского писателя. Но вместе с тем она вмещает все его нравственные искания, сомнения, раздумья о русском народе и его судьбе. Написанная ярко, страстно, повесть заставляет сегодняшнего читателя обратиться К нравственным проблемам, связанным с судьбой народа. В книгу включены повесть о русском мореплавателе и писателе Василии Головнине, а также в сокращенном варианте «Дневник Усольцева», ранее печатавшиеся в издательстве «Молодая гвардия».


Соломенная Сторожка (Две связки писем)

Юрий Давыдов известен художественными исследованиями драматических страниц истории борьбы с самодержавием и, в особенности, тех ситуаций, где остро встают вопросы нравственные, этические. Его произведения основаны на документальных материалах, в значительной степени почерпнутых из отечественных архивов.В настоящем издании представлен полный текст романа, посвященного в основном выдающемуся русскому революционеру Герману Лопатину.


Яйцо кукушки или Преследуя шпиона в компьютерном лабиринте

В отличие от плохого танцора, хорошему сисадмину мешают только кукушкины яйца. Их откладывают в его компьютер злобные хакеры, чтобы из них вылупились программы, делающие своего папу-кукушку суперпользователем. Но сколько кабелю не виться — а кончику быть: бравый сисадмин не дремлет и за годик-другой выводит злоумышленников на чистую воду: на этот раз хакерская тусовка круто пролетела. Такого предельно краткое содержание классической книги эксперта по компьютерной безопасности Клиффа Столла «Яйцо кукушки».



Разработка приложений в среде Linux

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет собой отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из других операционных систем. Подробно рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование свободно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек.


Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003

Книга предназначена для читателей, хорошо знакомых с компьютерными системами и индустрией информационных технологий и желающих расширить познания в области систем хранения данных и архитектуры Windows NT, непосредственно связанной с подобными системами. В книге описываются корпоративные системы хранения данных, в то время как системам потребительского уровня уделяется меньше внимания. В этом издании сделана попытка поддержать интересы специалистов по программному обеспечению, мало знакомых с технологиями хранения данных, и профессионалов в области систем хранения данных, которые стремятся получить дополнительные знания по архитектуре обработки и хранения данных в Windows NT.


Перспективы свободного программного обеспечения в сфере государственного управления и бюджетном секторе

n1`Глава 2 из отчета Фонда Новая экономика Министерству экономического развития и торговли по теме «Анализ результатов и разработка предложений по созданию механизмов поддержки (в том числе за счет средств федерального бюджета) проектов по использованию ИКТ в экономике, социальной сфере, государственном управлении на региональном и муниципальном уровнях власти». Работа выполнена в рамках ФЦП «Электронная Россия». Дается очерк перспектив модели коммерческого программного обеспечения, известной как свободное программное обеспечение (СПО), в части удовлетворения потребности государственных органов и организаций в компьютерных программах, в сравнении с альтернативной (несвободной) моделью.


64 килобайта о Фидо

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Секреты кроя и шитья без примерок и подгонок

На страницах этой книги вы найдете подробные описания и пояснения к разбору моделей и основным законам конструирования и моделирования, начиная со снятия мерок и кончая созданием завершенного варианта чертежа выкройки. Автор виртуозно привязывает каждое изделие к индивидуальной фигуре с ее неповторимым рельефом. Благодаря советам Галии Злачевской вы сможете понять и повторить ее действия и в итоге комфортно и красиво одеть любую фигуру. Цель работы автора – практическое воплощение предлагаемой идеи в одежду на конкретного человека.


Первичная консультация. Установление контакта и завоевание доверия

В руководстве, написанном известными специалистами, психологом Сарой Файн и социальным работником Полом Глассером, рассматриваются закономерности и особенности начального этапа взаимодействия консультанта и клиента. Детально описаны динамика психотерапевтического процесса и приемы установления контакта и завоевания доверия во время первичной консультации различных групп клиентов, как добровольных, так и недобровольных.Книга предназначена как для начинающих, так и для опытных специалистов, в задачи которых входит оказание помощи другим людям: психологам, социальным работникам, юристам, педагогам и т. д.


Оригами

Если вы любознательны, наделены фантазией и любите создавать что-либо своими руками, то эта книга для вас. Оригами – уникальное японское искусство складывания бумажных фигурок – вот уже в течение многих веков привлекает людей разных возрастов и национальностей. И действительно, в обычном листе кроются неограниченные комбинаторские возможности. В этом вы убедитесь, воспользовавшись приведенными в этой книге советами и рекомендациями, макетами классических и авторских моделей, многочисленными рисунками, подробно разъясняющими, как овладеть техникой оригами.


Лучшие модели на любую фигуру без примерок и подгонок

Книга представляет собой сборник, который содержит схемы построения чертежей из двух предыдущих бестселлеров автора, а также предлагает ряд новых моделей. Галия Злачевская – автор эксклюзивной методики конструирования швейных изделий. Особенность ее метода в том, что вариант построения модели подбирается с учетом особенностей силуэта фигуры, поэтому крой сразу получается точным. И главное – больше никаких примерок и подгонок! Следуя простым рекомендациям автора, вы легко сможете «шаг за шагом» освоить эту методику и в итоге – получите идеально сидящую вещь.Вы научитесь создавать современные, неповторимые и оригинальные модели для мужчин, женщин, детей и даже малышей до 3 лет с минимальными затратами времени и сил.