Главная страница Взаимодействие нетривиальных процессов ках файловой системы (каналы 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 Использует рореп и 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 - продолжение Упражнения 1. На рис 1.1 изображены два процесса, обращающиеся к одному файлу. Если оба процесса только дописывают данные к концу файла (возможно, длинного), какой нужен будет тип синхронизации? 2. Изучите заголовочный файл <еггпо. h> в вашей системе и выясните, как определена еггпо. 3. Дополните табл. 1.3 используемыми вами функциями, поддерживаемыми Unix-системами. Таблица 1.7 (продолжение) Листинг Описание 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 А.ЗЗ Измерение производительности: блокировка между процессами с помощью взаимных исключений ГЛАВА 2 Posix IPC 2.1. Введение Из имеющихся типов IPC следующие три могут быгь отнесены к Posix IPC, то есть к методам взаимодействия процессов, соответствующим стандарту Posix: Ш очереди сообщений Posix (глава 5); ш семафоры Posix (глава 10); ш разделяемая память Posix (глава 13). Эти три вида IPC обладают общими свойствами, и для работы с ними используются похожие функции. В этой главе речь пойдет об общих требованиях к полным именам файлов, используемых в качестве идентификаторов, о флагах, указываемых при открытии или создании объектов IPC, и о разрещениях на доступ к ним. Полный список функций, используемых для работы с данными типами IPC, приведен в табл. 2.1. 2.2. Имена IPC в табл. 1.2 мы отметили, что три типа IPC стандарта Posix имеют идентификаторы (имена), соответствующие этому стандарту. Имя IPC передается в качестве первого аргумента одной из трех функций: iiK open, seffl open и shffl open, причем оно не обязательно должно соответствовать реальному файлу в файловой системе. Стандарт Posix.l накладывает на имена IPC следующие ограничения; ш Имя должно соответствовать существующим требованиям к именам файлов (не превышать в длину РАТН МАХ байтов, включая завершающий символ с кодом 0). ш Если имя начинается со слэша (/), вызов любой из этих функций приведет к обращению к одной и той же очереди. В противном случае результат зависит от реализации. ш Интерпретация дополнительных слэшей в имени зависит от реализации.
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |