Уильям Ричард Стивенс - UNIX: взаимодействие процессов
Название: | UNIX: взаимодействие процессов | |
Автор: | Уильям Ричард Стивенс | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Unix, Параллельное и распределенное программирование | |
Изадано в серии: | Мастер-класс | |
Издательство: | Питер | |
Год издания: | 2003 | |
ISBN: | 5-318-00534-9 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "UNIX: взаимодействие процессов"
Книга написана известным экспертом по операционной системе UNIX и посвящена описанию одной из форм межпроцессного взаимодействия, IPC, с использованием которой создается большинство сложных программ. В ней описываются четыре возможности разделения решаемых задач между несколькими процессами или потоками одного процесса: передача сообщений, синхронизация, разделяемая память, удаленный вызов процедур.
Книга содержит большое количество иллюстрирующих примеров и может использоваться как учебник по IPC, и как справочник для опытных программистов.
Читаем онлайн "UNIX: взаимодействие процессов" (ознакомительный отрывок). [Страница - 5]
В этой книге описано взаимодействие между процессами и между потоками. Мы предполагаем наличие среды, в которой поддерживается многопоточное программирование, и будем использовать выражения вида «если канал пуст, вызывающий поток блокируется до тех пор, пока какой-нибудь другой поток не произведет запись в канал». Если система не поддерживает потоки, можно в этом предложении заменить «потоки» на «процессы» и получится классическое определение блокировки в Unix, возникающей при считывании из пустого канала командой read. Однако в системе, поддерживающей потоки, блокируется только поток, запросивший данные из пустого канала, а все остальные потоки процесса будут продолжать выполняться. Записать данные в канал сможет другой поток этого же процесса или какой-либо поток другого процесса.
В приложении Б сведены некоторые основные характеристики потоков и дано описание пяти основных функций Pthread, используемых в программах этой книги.
1.3. Живучесть объектов IPC
Можно определить живучесть (persistence) любого объекта IPC как продолжительность его существования. На рис. 1.2 изображены три возможные группы, к которым могут быть отнесены объекты по живучести.Рис. 1.2. Живучесть объектов IPC
1. Объект IPC, живучесть которого определяется процессом (process-persistent), существует до тех пор, пока не будет закрыт последним процессом, в котором он еще открыт. Примером являются неименованные и именованные каналы (pipes, FIFO).
2. Объект IPC, живучесть которого определяется ядром (kernel-persistent), существует до перезагрузки ядра или до явного удаления объекта. Примером являются очереди сообщений стандарта System V, семафоры и разделяемая память. Живучесть очередей сообщений Posix, семафоров и разделяемой памяти должна определяться по крайней мере ядром, но может определяться и файловой системой в зависимости от реализации.
3. Объект IPC, живучесть которого определяется файловой системой (filesystem-persistent), существует до тех пор, пока не будет удален явно. Его значение сохраняется даже при перезагрузке ядра. Очереди сообщений Posix, семафоры и память с общим доступом обладают этим свойством, если они реализованы через отображаемые файлы (так бывает не всегда).
Следует быть аккуратным при определении живучести объекта IPC, поскольку она не всегда очевидна. Например, данные в канале (pipe) обрабатываются ядром, но живучесть каналов определяется процессами, а не ядром, потому что после того, как последний процесс, которым канал был открыт на чтение, закроет его, ядро сбросит все данные и удалит канал. Аналогично, хотя каналы FIFO и обладают именами в файловой системе, живучесть их также определяется процессами, поскольку все данные в таком канале сбрасываются после того, как последний процесс, в котором он был открыт, закроет его.
В табл. 1.1 сведена информация о живучести перечисленных ранее объектов IPC.
Таблица 1.1. Живучесть различных типов объектов IPC
Книги схожие с «UNIX: взаимодействие процессов» по жанру, серии, автору или названию:
Олег Иванович Цилюрик, Егор Горошко, Владимир Зайцев - QNX/UNIX: Анатомия параллелизма Жанр: Современные российские издания Год издания: 2006 Серия: high tech |
Евгений Эммануилович Фельдштейн, Михаил Анисимович Корниевич - Автоматизация производственных процессов в машиностроении: учебное пособие Жанр: Учебники и пособия для среднего и специального образования Год издания: 2011 Серия: Среднее профессиональное образование |
Вадим Николаевич Пустовойтов - Гипсокартон: шаг за шагом Жанр: Руководства и инструкции Год издания: 2009 Серия: Мастер-класс |
Уильям Ричард Стивенс, Билл Феннер, Эндрю М Рудофф - UNIX: разработка сетевых приложений Жанр: Сети Год издания: 2007 Серия: Мастер-класс |
Другие книги из серии «Мастер-класс»:
Дмитрий Михайлович Липскеров - Осени не будет никогда Жанр: Современная проза Год издания: 2005 Серия: Мастер-класс |
Александра С Клюшина - Оригинальные изделия из кожи своими руками. Секреты изготовления Жанр: Современные российские издания Год издания: 2010 Серия: Мастер-класс |
Владимир Онищенко - Соление, вяление, сушка и копчение рыбы Жанр: Кулинария Год издания: 2009 Серия: Мастер-класс |
Владимир Онищенко - Копчение, вяление и соление мяса Жанр: Кулинария Год издания: 2009 Серия: Мастер-класс |