Частина тексту файла (без зображень, графіків і формул):
Конвеєри (програмні канали) і черги повідомлень.
Конвеєр – це програмний канал або транспортер – це засіб прогр. За допомогою якого можна виконувати обмін даними між процесами. Процес який передає інформацію працює так нібито він записує дані у файл, в той час як задача для якої призначена ця інформація читає її з цього файла, тобто конвеєр – це потік даних між двома або більше процесами. Це не файл на диску, а буферна пам'ять яка працює за принципом FIFO. Конвеєр має певний розмір і працює циклічно як кільцевий буфер. В початковий момент обидва покажчики рівні 0. коли додаємо самий перший елемент у пусту чергу це приводить до того , що покажчики head i tail приймають значення 1. В масиві з’являється перший елемент. Потім додавання нового елемента викликає зміну значення другого покажчика, оскільки він відмічає розташування останнього елемента в черзі. Читання та вилучення елементів приводить до необхідності модифікувати значення head, в результаті читання і запису покажчики будуть переміщатись від початкового масиву до його кінця. Після досягнення покажчиком індексу останнього елемента масива значень покажчика рівна 1. Конвеєр – це системний ресурс, щоб почати роботу з конвеєром. Процес повинен зробити запит у ОС і отримати в його розпорядження. Процеси які знають ідентифікатор конвеєра можуть обмінюватись через нього даними.
Черги повідомлень.
Це більш складний метод зв’язку між взаємодіючими процесами в порівнянні з програмними каналами. За допомогою черг можна з одної або декількох задач незалежним чином послати повідомлення деякій задачі – приймачу, причому тільки процес приймач може приймати і вилучати повідомлення з черг, а процеси клієнти мають право тільки розміщати в чергу свої повідомлення. Таким чином черга працює лише в одному напрямку, якщо потрібно двосторонній зв’язок, потрібно створити дві черги. Відмінність черг від програмного каналу або конвеєра така:
1) а) черги повідомлень надають можливість використовувати декілька дисциплін обробк повідомлень.
б) пріоритетне обслуговування.
в) довільний доступ, який дозволить читати довільні повідомлення, в той час як конвеєр забезпечує тільки FIFO.
2) якщо при читанні повідомлення з конвеєра воно вилучається з нього, то при читанні повідомлення з черги може бути прочитане ще раз.
3) в чергах знаходяться не безпосередньо самі повідомлення, а лише їх адреси в пам’яті та розмір. Ця інформація розміщується в елементі памяті який доступний для всіх задач, які спілкується за допомогою даної черги.