Книги автора: UNIX: разработка сетевых приложенийUNIX Network Programming
UNIX: взаимодействие процессовUNIX Network Programming. Volume 2 Second Edition. Interprocess Communications
/ Книги автора: UNIX: разработка сетевых приложенийUNIX Network Programming
UNIX: взаимодействие процессовUNIX Network Programming. Volume 2 Second Edition. Interprocess Communications
/ Книга: UNIX: взаимодействие процессов
Оглавление книги
- Предисловие
- ЧАСТЬ 1 ВВЕДЕНИЕ В IPC UNIX
- ГЛАВА 1 Обзор средств взаимодействия процессов Unix
- 1.1. Введение
- 1.2. Процессы, потоки и общий доступ к информации
- 1.3. Живучесть объектов IPC
- 1.4. Пространства имен
- 1.5. Действие команд fork, exec и exit на объекты IPC
- 1.6. Обработка ошибок: функции-обертки
- 1.7. Стандарты Unix
- 1.8. Комментарий к примерам IPC
- 1.9. Резюме
- Упражнения
- ГЛАВА 2 Posix IPC
- 2.1. Введение
- 2.2. Имена IPC
- 2.3. Создание и открытие каналов IPC
- 2.4. Разрешения IPC
- 2.5. Резюме
- Упражнения
- ГЛАВА 3 System V IPC
- ЧАСТЬ 2 ОБМЕН СООБЩЕНИЯМИ
- ГЛАВА 4 Именованные и неименованные каналы
- 4.1. Введение
- 4.2. Приложение типа клиент-сервер
- 4.3. Программные каналы
- 4.4. Двусторонние каналы
- 4.5. Функции popen и pclose
- 4.6. Именованные каналы (FIFO)
- 4.7. Некоторые свойства именованных и неименованных каналов
- 4.8. Один сервер, несколько клиентов
- 4.9. Последовательные и параллельные серверы
- 4.10. Потоки и сообщения
- 4.11. Ограничения программных каналов и FIFO
- 4.12. Резюме
- Упражнения
- ГЛАВА 5 Очереди сообщений Posix
- 5.1. Введение
- 5.2. Функции mq_open, mq_close, mq_unlink
- 5.3. Функции mq_getattr и mq_setattr
- 5.4. Функции mqsend и mqreceive
- 5.5. Ограничения очередей сообщений
- 5.6. Функция mq_notify
- Пример: простая программа с уведомлением
- Сигналы Posix: функции типа Async-Signal-Safe
- Пример: уведомление сигналом
- Пример: уведомление сигналом с отключением блокировки
- Пример: уведомление с использованием sigwait вместо обработчика
- Пример: очереди сообщений Posix и функция select
- Пример: запуск нового потока
- 5.7. Сигналы реального времени Posix
- 5.8. Реализация с использованием отображения в память
- Функция mq_open
- Функция mq_close
- Функция mq_unlink
- Функция mq_getattr
- Функция mq_setattr
- Функция mq_notify
- Функция mq_send
- Функция mq_receive
- 5.9. Резюме
- Упражнения
- ГЛАВА 6 Очереди сообщений System V
- 6.1. Введениеы
- 6.2. Функция msgget
- 6.3. Функция msgsnd
- 6.4. Функция msgrcv
- 6.5. Функция msgctl
- 6.6. Простые примеры
- 6.7. Пример программы клиент-сервер
- 6.8. Мультиплексирование сообщений
- 6.9. Использование select и poll с очередями сообщений
- 6.10. Ограничения, накладываемые на очереди сообщений
- 6.11.Резюме
- Упражнения
- ЧАСТЬ 3 СИНХРОНИЗАЦИЯ
- ГЛАВА 7 Взаимные исключения и условные переменные
- 7.1. Введение
- 7.2. Взаимные исключения: установка и снятие блокировки
- 7.3. Схема производитель-потребитель
- 7.4. Блокировка и ожидание
- 7.5. Условные переменные: ожидание и сигнализация
- 7.6. Условные переменные: время ожидания и широковещательная передача
- 7.7. Атрибуты взаимных исключений и условных переменных
- 7.8. Резюме
- Упражнения
- ГЛАВА 8 Блокировки чтения-записи
- 8.1. Введение
- 8.2. Получение и сброс блокировки чтения-записи
- 8.3. Атрибуты блокировки чтения-записи
- 8.4. Реализация с использованием взаимных исключений и условных переменных
- Тип данных pthread_rwlock_t
- Функция pthread_rwlock_init
- Функция pthread_rwlock destroy
- Функция pthread_rwlock_rdlock
- Функция pthread_rwlock_tryrdlock
- Функция pthread_rwlock_wrlock
- Функция pthread_rwlock_trywrlock
- Функция pthread_rwlock_unlock
- 8.5. Отмена выполнения потоков
- 8.6. Резюме
- Упражнения
- ГЛАВА 9 Блокирование записей
- 9.1. Введение
- 9.2. Блокирование записей и файлов
- 9.3. Блокирование записей с помощью fcntl по стандарту Posix
- 9.4. Рекомендательная блокировка
- 9.5. Обязательная блокировка
- 9.6. Приоритет чтения и записи
- Пример: блокировка на чтение при наличии в очереди блокировки на запись
- Пример: имеют ли приоритет запросы на запись перед запросами на чтение?
- 9.7. Запуск единственного экземпляра демона
- 9.8. Блокирование файлов
- 9.9. Блокирование в NFS
- 9.10. Резюме
- Упражнения
- ГЛАВА 10 Семафоры Posix
- 10.1.Введение
- 10.2. Функции sem_open, sem_close и sem_unlink
- 10.3. Функции sem_wait и sem_trywait
- 10.4. Функции sem_post и sem_getvalue
- 10.5. Простые примеры
- Программа semcreate
- Программа semunlink
- Программа semgetvalue
- Программа semwait
- Программа sempost
- Примеры
- 10.6. Задача производителей и потребителей
- 10.7. Блокирование файлов
- 10.8. Функции sem_init и sem_destroy
- 10.9. Несколько производителей, один потребитель
- 10.10. Несколько производителей, несколько потребителей
- 10.11. Несколько буферов
- 10.12. Использование семафоров несколькими процессами
- 10.13. Ограничения на семафоры
- 10.14. Реализация с использованием FIFO
- 10.15. Реализация с помощью отображения в память
- Функция sem_open
- Функция sem_close
- Функция sem_unlink
- Функция sem_post
- Функция sem_wait
- Функция sem_trywait
- Функция sem_getvalue
- 10.16. Реализация с использованием семафоров System V
- Функция sem_open
- Функция sem_close
- Функция sem_unlink
- Функция sem_post
- Функция sem_wait
- Функция sem_trywait
- Функция sem_getvalue
- 10.17. Резюме
- Упражнения
- ГЛАВА 11 Семафоры System V
- ЧАСТЬ 4 РАЗДЕЛЯЕМАЯ ПАМЯТЬ
- ГЛАВА 12 Введение в разделяемую память
- 12.1. Введение
- 12.2. Функции mmap, munmap и msync
- 12.3. Увеличение счетчика в отображаемом в память файле
- 12.4. Неименованное отображение в память в 4.4BSD
- 12.5. Отображение в память в SVR4 с помощью /dev/zero
- 12.6. Обращение к объектам, отображенным в память
- 12.7. Резюме
- Упражнения
- ГЛАВА 13 Разделяемая память Posix
- 13.1. Введение
- 13.2. Функции shm_open и shm_unlink
- 13.3. Функции ftruncate и fstat
- 13.4. Простые программы
- 13.5. Увеличение общего счетчика
- 13.6. Отправка сообщений на сервер
- 13.7. Резюме
- Упражнения
- ГЛАВА 14 Разделяемая память System V
- ЧАСТЬ 5 УДАЛЕННЫЙ ВЫЗОВ ПРОЦЕДУР
- ГЛАВА 15 Двери
- 15.1. Введение
- 15.2. Функция door_call
- 15.3. Функция door_create
- 15.4. Функция door_return
- 15.5. Функция door_cred
- 15.6. Функция door_info
- 15.7. Примеры
- Функция door_info
- Буфер результатов слишком мал
- Функция door_cred и информация о клиенте
- Автоматическое управление потоками сервера
- Автоматическое управление потоками сервера: несколько процедур
- Атрибут DOOR_UNREF для серверов
- 15.8. Передача дескрипторов
- Пример
- 15.9. Функция door server_create
- 15.10. Функции door_bind, door unbind и door_revoke
- 15.11. Досрочное завершение клиента или сервера
- Досрочное завершение сервера
- Непрерываемость системного вызова door_call
- Идемпотентные и неидемпотентные процедуры
- Досрочное завершение клиента
- 15.12. Резюме
- Упражнения
- ГЛАВА 16 Пакет Sun RPC
- 16.1. Введение
- 16.2. Многопоточность
- 16.3. Привязка сервера
- 16.4. Аутентификация
- 16.5. Тайм-аут и повторная передача
- 16.6. Семантика вызовов
- 16.7. Досрочное завершение сервера или клиента
- 16.8. XDR: представление внешних данных
- Пример: использование XDR без RPC
- Пример: вычисление размера буфера
- Пример: необязательные данные
- Пример: обработка связного списка
- 16.9. Форматы пакетов RPC
- 16.10. Резюме
- Упражнения
- Эпилог
- ПРИЛОЖЕНИЕ А Измерение производительности
- А.1. Введение
- А.2. Результаты
- Результаты измерения полосы пропускания сообщений
- Результаты измерения задержки
- Результаты синхронизации потоков
- Результаты синхронизации процессов
- А.З. Измерение полосы пропускания: программы
- Измерение полосы пропускания канала
- Измерение полосы пропускания очереди сообщений Posix
- Программа измерения полосы пропускания очереди System V
- Программа измерения полосы пропускания дверей
- Программа определения полосы пропускания Sun RPC
- А.4. Измерение задержки передачи сообщений: программы
- Программа измерения задержки канала
- Программа измерения задержки очередей сообщений Posix
- Измерение задержки очередей сообщений System V
- Программа измерения задержки интерфейса дверей
- Программа измерения времени задержки Sun RPC
- А.5. Синхронизация потоков: программы
- Взаимные исключения Posix
- Блокировки чтения-записи
- Семафоры Posix, размещаемые в памяти
- Именованные семафоры Posix
- Семафоры System V
- Блокировка записей fcntl
- А.6. Синхронизация процессов: программы
- ПРИЛОЖЕНИЕ Б Основы многопоточного программирования
- ПРИЛОЖЕНИЕ В Вспомогательные исходные коды
- В.1. Заголовочный файл unpipc.h
- B.2. Заголовочный файл config.h
- В.З. Стандартные функции вывода сообщений об ошибках
- ПРИЛОЖЕНИЕ Г Решения некоторых упражнений
- Глава 1
- Глава 2
- Глава 3
- Глава 4
- Глава 5
- Глава 6
- Глава 7
- Глава 9
- Глава 10
- Глава 11
- Глава 12
- Глава 13
- Глава 14
- Глава 15
- Глава 16
- Литература
- Сноски из книги
- Содержание книги
- Популярные страницы
Оглавление статьи/книги
- Предисловие
- ЧАСТЬ 1 ВВЕДЕНИЕ В IPC UNIX
- ЧАСТЬ 2 ОБМЕН СООБЩЕНИЯМИ
- ЧАСТЬ 3 СИНХРОНИЗАЦИЯ
- ЧАСТЬ 4 РАЗДЕЛЯЕМАЯ ПАМЯТЬ
- ЧАСТЬ 5 УДАЛЕННЫЙ ВЫЗОВ ПРОЦЕДУР
- Эпилог
- ПРИЛОЖЕНИЕ А Измерение производительности
- ПРИЛОЖЕНИЕ Б Основы многопоточного программирования
- ПРИЛОЖЕНИЕ В Вспомогательные исходные коды
- ПРИЛОЖЕНИЕ Г Решения некоторых упражнений
- Литература
- Сноски из книги
- Содержание книги
- Популярные страницы
Похожие страницы
- ЧАСТЬ 1 ВВЕДЕНИЕ В IPC UNIX
- UNIX: взаимодействие процессов
- Глава 7 Чего нужно опасаться при моделировании бизнес-процессов. Проектные риски моделирования бизнеспроцессов
- Эффективное взаимодействие процессов архитектуры Classic Server
- Глава 1 UNIX для начинающих
- 1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- Взаимодействие Xalan с Java
- 3.4.2. Остановка процессов
- 3.4.3. Просмотр процессов
- Лекция 16. Взаимодействие процессов
- 1.1.3. Уязвимости процессов накопления знаний (самообучения)
- Using the Common UNIX Printing System GUI