» » » Уильям Стивенс - UNIX: взаимодействие процессов


Авторские права

Уильям Стивенс - UNIX: взаимодействие процессов

Здесь можно купить и скачать "Уильям Стивенс - UNIX: взаимодействие процессов" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство Питер, год 2003. Так же Вы можете читать ознакомительный отрывок из книги на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Уильям Стивенс - UNIX: взаимодействие процессов
Рейтинг:
Название:
UNIX: взаимодействие процессов
Издательство:
неизвестно
Год:
2003
ISBN:
5-318-00534-9
Вы автор?
Книга распространяется на условиях партнёрской программы.
Все авторские права соблюдены. Напишите нам, если Вы не согласны.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "UNIX: взаимодействие процессов"

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



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

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






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

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

4. Вызов процедур (двери в Solaris, RPC Sun).

Мы рассматриваем взаимодействие как отдельных потоков одного процесса, так и нескольких независимых процессов.

Живучесть каждого типа IPC определяется либо процессом, либо ядром, либо файловой системой в зависимости от продолжительности его существования. При выборе типа IPC для конкретного применения нужно учитывать его живучесть.

Другим свойством каждого типа IPC является пространство имен, определяющее идентификацию объектов IPC процессами и потоками, использующими его. Некоторые объекты не имеют имен (каналы, взаимные исключения, условные переменные, блокировки чтения-записи), другие обладают именами в рамках файловой системы (каналы FIFO), третьи характеризуются тем, что в главе 2 названо «именами IPC стандарта Posix», а четвертые — еще одним типом имен, который описан в главе 3 (ключи или идентификаторы IPC стандарта System V). Обычно сервер создает объект IPC с некоторым именем, а клиенты используют это имя для получения доступа к объекту.

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

Стандарты IEEE Posix — Posix.1, определяющий основы интерфейса С в Unix, и Posix.2, определяющий основные команды, — это те стандарты, к которым движутся большинство производителей. Однако стандарты Posix в настоящее время быстро поглощаются (включаются в качестве части) и расширяются коммерческими стандартами, в частности The Open Group (Unix 98).


Таблица 1.5. Версии модели клиент-сервер  

Листинг Описание 4.1 Два канала между родительским и порожденным процессами 4.5 Использует popen и cat 4.6 Использует два канала FIFO между родительским и порожденным процессами 4.7 Два канала FIFO между независимым сервером и неродственным клиентом 4.10 Каналы FIFO между независимым последовательным сервером и несколькими клиентами 4.12 Программный канал или FIFO: формирование записей в потоке байтов 6.7 Две очереди сообщений System V 6.12 Одна очередь сообщений System V с несколькими клиентами 6.16 Одна очередь сообщений System V для каждого клиента; клиентов несколько 15.15 Передача дескриптора через дверь

Таблица 1.6. Версии модели производитель-потребитель

Листинг Описание 7.1 Взаимное исключение, несколько производителей, один потребитель 7.5 Взаимное исключение и условная переменная, несколько производителей, один потребитель 10.8 Именованные семафоры Posix, один производитель, один потребитель 10.11 Семафоры Posix в памяти, один производитель, один потребитель 10.12 Семафоры Posix в памяти, несколько производителей, один потребитель 10.15 Семафоры Posix в памяти, несколько производителей, несколько потребителей 10.18 Семафоры Posix в памяти, один производитель, один потребитель: несколько буферов

Таблица 1.7. Версии программы с увеличением последовательного номера

Листинг Описание 9.1 Индекс в файле, без блокировки 9.3 Индекс в файле, блокировка с помощью fcntl 9.9 Индекс в файле, блокировка с использованием функции open 10.10 Индекс в файле, блокировка с помощью именованного семафора Posix 12.2 Индекс в общей памяти mmap, блокировка с помощью именованного семафора Posix 12.3 Индекс в общей памяти mmap, блокировка с помощью семафора Posix в памяти 12.4 Индекс в неименованной общей памяти 4.4BSD, блокировка с помощью именованного семафора Posix 12.5 Индекс в общей памяти SVR4 /dev/zero, блокировка с помощью именованного семафора Posix 13.6 Индекс в общей памяти Posix, блокировка с помощью семафора Posix в памяти А.19 Измерение производительности: блокировка взаимным исключением между потоками А.22 Измерение производительности: блокировка чтения-записи между потоками А.23 Измерение производительности: блокировка между потоками с помощью семафоров Posix в памяти А.25 Измерение производительности: блокировка между потоками с помощью именованных семафоров Posix А.28 Измерение производительности: блокировка между потоками с помощью семафоров System V А.29 Измерение производительности: блокировка между потоками с помощью fcntl А.33 Измерение производительности: блокировка между процессами с помощью взаимных исключений

Упражнения

1. На рис 1.1 изображены два процесса, обращающиеся к одному файлу. Если оба процесса только дописывают данные к концу файла (возможно, длинного), какой нужен будет тип синхронизации?

2. Изучите заголовочный файл <errno.h> в вашей системе и выясните, как определена errno.

3. Дополните табл. 1.3 используемыми вами функциями, поддерживаемыми Unix-системами.

ГЛАВА 2

Posix IPC

2.1. Введение

Из имеющихся типов IPC следующие три могут быть отнесены к Posix IPC, то есть к методам взаимодействия процессов, соответствующим стандарту Posix:

■ очереди сообщений Posix (глава 5);

■ семафоры Posix (глава 10);

■ разделяемая память Posix (глава 13).

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

Полный список функций, используемых для работы с данными типами IPC, приведен в табл. 2.1.


Таблица 2.1. Функции Posix IPC

Очереди сообщений Семафоры Общая память Заголовочный файл <mqueue.h> <semaphore.h> <sys/mman.h> Функции для создания, открытия и удаления mq_open mq_close mq_unlink sem_open sem_close sem_unlink sem_init sem_destroy shm_open shm_unlink Операции управления mq_getattr mq_setattr ftruncate fstat Операции IPC mq_send mq_receive mq_notify sem_wait sem_trywait sem_post sem_getvalue mmap munmap

2.2. Имена IPC


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "UNIX: взаимодействие процессов"

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


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Уильям Стивенс

Уильям Стивенс - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

Отзывы о "Уильям Стивенс - UNIX: взаимодействие процессов"

Отзывы читателей о книге "UNIX: взаимодействие процессов", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.