Засоби міжпроцесної взаємодії.

Матеріал з Wiki TNEU
Перейти до: навігація, пошук

Взаємодія між процесами — набір засобів обміну повідомленнями між процесами. Засоби IPC можуть використовуватись для взаємодії процесів: • які виконуються на одному комп'ютері (для багатомашинних систем — під управлінням однієї операційної системи), також відомі як власне IPC; • які виконуються на різних комп'ютерах (для багатомашинних систем — під управлінням окремих операційних систем), також відомі як засоби міжмашинної взаємодії; • для забезпечення взаємодії процеса з самим собою — наприклад, для синхронізації або обміну даними між різними нитями одного процесу. Для взаємодії процесів, що виконуються на одному комп'ютері (під управлінням однієї операційної системи) використовують (механізми взаємодії забезпечуються ядром операційної системи, в якій виконуються процеси): • сигнали — асинхронні (неочікувані) повідомлення, що не передають дані між процесами, а сповіщають про подію (надзвичайну ситуацію), на яку процес має відреагувати виконанням наперед визначеної дії (функції або команди в залежності від використаних засобів програмування); • неіменовані та іменовані канали (англ. pipes) передачі даних як синхронних (очікуваних) повідомлень; відправлення повідомлення відбувається подібно до операції запису в файл, отримання — подібно до читання даних з файлу, якщо канал порожній — процес, що очікує дані призупиняється до надходження даних в канал. • черги повідомлень — пакети даних, що передаються між процесами з увідомленням отримувача про надходження пакету; • сегменти подільної пам'яті — засіб, що дозволяє кільком процесам сумісно використовувати (поділяти) фрагмент оперативної пам'яті з метою обміну даними; відправлення даних відбувається шляхом запису в пам'ять, отримання — читанням з пам'яті. Взаємодія процесів дозволяє процесам синхронізувати свою роботу, сумісно і узгоджено використовувати спільні ресурси та спільно виконувати обробку даних. Взаємодія процесів забезпечується всіма підсистемами ядра ОС: підсистема управління введенням-виведенням забезпечує передачу даних між процесами; підсистема управління оперативною пам'яттю розподіляє під процеси спільну оперативну пам'ять, підсистема управління процесами забезпечує синхронізацію виконання процесів та впроваджує механізм обміну сигналів, за допомогою якого процеси повідомляються про виникнення в системі надзвичайних подій. Операційна система Microsoft Windows передбачає механізми, які полегшують обмін спільно використовувану інформацію і дані між додатками. У збірному значенні - це дії, що включають в роботу механізми, звані міжпроцесними взаємодіями (interprocess communications) (IPC). Як правило, прикладні програми можуть використовувати міжпроцесну взаємодію (IPC), поділене на категорії як клієнти або сервери. Клієнт (client) - прикладна програма або процес, який запитує системну службу від якої-небудь іншої прикладної програми або процесу. Сервер (server) - прикладна програма або процес, який відповідає на клієнтський запит. Механізми використання міжпроцесної взаємодії (IPC), які підтримуються Windows: • Буфер обміну: діє як центральне сховище для даних, спільно використовуваних прикладними програмами. • Модель компонентних об'єктів (COM): - це основа OLE. додатки, які використовують технологію зв'язування та вбудовування об'єктів (OLE), управляють складеними документами (compound documents) - тобто, документами, складеними з даних від безлічі різних додатків. Технологія OLE надає послуги, які допомагають додаткам звертатися до інших додатків для редагування даних. • Копіювання даних (Data Copy): копіювання даних дає можливість додатком відправити інформацію іншому додатку. • Динамічний обмін даними (DDE): це протокол, який дає можливість прикладним програмам обмінюватися даними в різному форматі. Програми можуть використовувати DDE для одноразових обмінів даними або для безперервного обміну, в якому прикладні програми модифікують один одного, у міру того, як нові дані стають доступними. • Відображення (проекція) файлу в пам'ять: дає можливість процесові обробляти вміст файлу, як ніби це блок пам'яті в адресному просторі процесу. • Поштові слоти (Mailslots): поштовий слот в ядрі Windows надає односторонню зв'язок. Будь-який процес, який створює поштову слот - це сервер поштового слота (mailslot server). Інші процеси, звані клієнтами поштового слота (mailslot clients), відправляють повідомлення сервера поштової слота, записуючи повідомлення в його поштовій скриньці. • Канали (Pipes): Є два типи каналів для двостороннього зв'язку: анонімні (неіменовані) і іменовані канали. Анонімні канали дають можливість спорідненим процесам передавати інформацію один одному. Іменовані канали використовуються для передачі даних між процесами, які є не пов'язаними процесами і між процесами на різних комп'ютерах. • Виклик віддаленої процедури (RPC): Технологія RPC дає можливість прикладним програмам викликати функції дистанційно. • Сокети Windows (Windows Sockets): незалежний від протоколу інтерфейс; кінцева точка зв'язку.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти