Книга: UNIX: взаимодействие процессов
4.1. Введение
4.1. Введение
Неименованные каналы — это самая первая форма IPC в Unix, появившаяся еще в 1973 году в третьей версии (Third Edition [17]). Несмотря на полезность во многих случаях, главным недостатком неименованных каналов является отсутствие имени, вследствие чего они могут использоваться для взаимодействия только родственными процессами. Это было исправлено в Unix System III (1982) добавлением каналов FIFO, которые иногда называются именованными каналами. Доступ и к именованным каналам, и к неименованным организуется с помощью обычных функций read и write.
ПРИМЕЧАНИЕ
Программные (неименованные) каналы в принципе могут использоваться неродственными процессами, если предоставить им возможность передавать друг другу дескрипторы (см. раздел 15.8 этой книги или раздел 13.7 [24]). Однако на практике эти каналы обычно используются для осуществления взаимодействия между процессами, у которых есть общий предок.
В этой главе описываются детали, касающиеся создания и использования программных каналов и каналов FIFO. Мы рассмотрим пример простейшего сервера файлов, а также обратим внимание на некоторые детали модели клиент-сервер, в частности постараемся определить количество требуемых каналов IPC, сравним последовательные серверы с параллельными и неструктурированные потоки байтов с сообщениями.
- 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. Резюме
- Упражнения