15. Механизмы межзадачного взаимодействия
Труба(Pipe) – универсальный инструмент передачи информации между процессами.
Это при условии, что в современных ОС программы изолированы друг от друга.
Pipe – временный файл, позволяющий общаться программам.
Pipe бывают двух видов:
-
безымянные (односторонние, только чтение и запись, строго последовательные)
-
именованные (двусторонние, операции создать, открыть, закрыть, читать, решать и т. д., если труба пустая, то заблокируется пока туда ничего не запишут) В этом виде существует проблема, что имена совпадут, но универсального способа борьбы с этим не существует.
Итак, труба – это основной механизм общения программ.
Кроме труб, существует ещё один вид взаимодействия: «почтовые ящики» (Unix – mailbox, Windows - mailslot)
«Почтовый ящик» – область ОП (32-64 Кб), поэтому быстрая, но маленькая. Используется, если нужно послать сообщение сразу многим. Если ящик полон, то при новом письме выталкиваем самое старое
Отличия:
- труба, доставка с гарантией
- почтовый ящик, без гарантий