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