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

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


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

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


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

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


Это ваше Fido

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


Безопасность информационных систем

В пособии излагаются основные тенденции развития организационного обеспечения безопасности информационных систем, а также подходы к анализу информационной инфраструктуры организационных систем и решению задач обеспечения безопасности компьютерных систем.Для студентов по направлению подготовки 230400 – Информационные системы и технологии (квалификация «бакалавр»).


UNIX — универсальная среда программирования

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.


QNX/UNIX: Анатомия параллелизма

Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.


Виртуальные  машины: несколько компьютеров в  одном

Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.


Недокументированные и малоизвестные возможности Windows XP

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.


Осени не будет никогда

Новое произведение известного писателя Дмитрия Липскерова убеждает — перед нами особая форма русского романа. Писатель смело экспериментирует с жанрами, сочетая латиноамериканский сюжет с русским фольклором. Гротеск и фантасмагория размывают границы обыденной жизни, и главные герои — московские менты, красавица-психиатр, фээсбешный полковник и художник с мировым именем — оказываются вовлечены в водоворот невероятных событий. Трагикомизм, гротеск, оригинальность и жизненность каждого действующего лица сближают творчество Д.Липскерова с такими литературными именами, как Г.Г.Маркес, М.Павич.


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

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


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

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


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

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