Взаємодія між процесами (англ. Inter-Process Communication, скорочено англ. IPC) — набір засобів обміну повідомленнями між процесами.
Засоби IPC можуть використовуватись для взаємодії процесів:
- які виконуються на одному комп'ютері (для багатомашинних систем — під управлінням однієї операційної системи), також відомі як власне IPC;
- які виконуються на різних комп'ютерах (для багатомашинних систем — під управлінням окремих операційних систем), також відомі як ;
- для забезпечення взаємодії процесу з самим собою — наприклад, для синхронізації або обміну даними між різними нитками одного процесу.
Взаємодія процесів в межах однієї машини
Для взаємодії процесів, що виконуються на одному комп'ютері (під управлінням однієї операційної системи) використовують (механізми взаємодії забезпечуються ядром операційної системи, в якій виконуються процеси):
- сигнали — асинхронні (неочікувані) повідомлення, що не передають дані між процесами, а сповіщають про подію (надзвичайну ситуацію), на яку процес має відреагувати виконанням наперед визначеної дії (функції або команди залежно від використаних засобів програмування);
- неіменовані та іменовані канали (англ. pipes) передачі даних як синхронних (очікуваних) повідомлень; відправлення повідомлення відбувається подібно до операції запису в файл, отримання — подібно до читання даних з файлу, якщо канал порожній — процес, що очікує дані призупиняється до надходження даних в канал.
- черги повідомлень — пакети даних, що передаються між процесами з повідомленням отримувача про надходження пакету;
- сегменти подільної пам'яті — засіб, що дозволяє кільком процесам сумісно використовувати (поділяти) фрагмент оперативної пам'яті з метою обміну даними; відправлення даних відбувається шляхом запису в пам'ять, отримання — читанням з пам'яті.
Взаємодія процесів, що виконуються на різних машинах
Взаємодія процесів, що виконуються на різних комп'ютерах — під управлінням окремих операційних систем, міжмашинна взаємодія — забезпечується через спеціальну абстракцію — сокет. Залежно від рівня використання сокетів, існують наступні засоби міжмашинної взаємодії процесів (механізми взаємодії узгоджено забезпечуються ядрами операційних систем, в яких виконуються процеси):
- пряме використання сокетів — технологія, що вимагає програмування на низькому рівні і реалізації протокола передачі даних;
- RPC (Remote Procedure Call), віддалений виклик процедур — технологія, що забезпечує взаємодію між процесами подібно до виклику функцій, дані в один бік передаються як аргументи функцій (віддалених процедур), в іншому — як результати виконання функцій (віддалених процедур).
- CORBA — технологія, що передбачає можливість взаємодії між процесами як між об'єктами CORBA, є подальшим розвитком технології RPC.
Також існують і інші технології, які здебільшого є модифікаціями існуючих: XML-RPC, SOAP тощо. Окрім того, сокети можуть використовуватись також для взаємодії процесів в межах однієї машини, так наприклад працює x.Org.
Додаткові відомості
Засоби міжмашинної взаємодії також можуть використовуватись для забезпечення процесів, що виконуються на одній машині, всі означені засоби також можуть використовуватись для обміну даних різних нитей одного процесу.
Одним з елегантно реалізованих засобів IPC є конвеєр команд операційних систем UNIX (базується на механізмі неіменованих каналів передачі даних).
Див. також
Література
- Ч. Хоар (1989). Взаимодействующие последовательные процессы. Мир. ISBN .
Ця стаття потребує додаткових для поліпшення її . (січень 2016) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Vzayemodiya mizh procesami angl Inter Process Communication skorocheno angl IPC nabir zasobiv obminu povidomlennyami mizh procesami Zasobi IPC mozhut vikoristovuvatis dlya vzayemodiyi procesiv yaki vikonuyutsya na odnomu komp yuteri dlya bagatomashinnih sistem pid upravlinnyam odniyeyi operacijnoyi sistemi takozh vidomi yak vlasne IPC yaki vikonuyutsya na riznih komp yuterah dlya bagatomashinnih sistem pid upravlinnyam okremih operacijnih sistem takozh vidomi yak dlya zabezpechennya vzayemodiyi procesu z samim soboyu napriklad dlya sinhronizaciyi abo obminu danimi mizh riznimi nitkami odnogo procesu Vzayemodiya procesiv v mezhah odniyeyi mashiniDlya vzayemodiyi procesiv sho vikonuyutsya na odnomu komp yuteri pid upravlinnyam odniyeyi operacijnoyi sistemi vikoristovuyut mehanizmi vzayemodiyi zabezpechuyutsya yadrom operacijnoyi sistemi v yakij vikonuyutsya procesi signali asinhronni neochikuvani povidomlennya sho ne peredayut dani mizh procesami a spovishayut pro podiyu nadzvichajnu situaciyu na yaku proces maye vidreaguvati vikonannyam napered viznachenoyi diyi funkciyi abo komandi zalezhno vid vikoristanih zasobiv programuvannya neimenovani ta imenovani kanali angl pipes peredachi danih yak sinhronnih ochikuvanih povidomlen vidpravlennya povidomlennya vidbuvayetsya podibno do operaciyi zapisu v fajl otrimannya podibno do chitannya danih z fajlu yaksho kanal porozhnij proces sho ochikuye dani prizupinyayetsya do nadhodzhennya danih v kanal chergi povidomlen paketi danih sho peredayutsya mizh procesami z povidomlennyam otrimuvacha pro nadhodzhennya paketu segmenti podilnoyi pam yati zasib sho dozvolyaye kilkom procesam sumisno vikoristovuvati podilyati fragment operativnoyi pam yati z metoyu obminu danimi vidpravlennya danih vidbuvayetsya shlyahom zapisu v pam yat otrimannya chitannyam z pam yati Vzayemodiya procesiv sho vikonuyutsya na riznih mashinahVzayemodiya procesiv sho vikonuyutsya na riznih komp yuterah pid upravlinnyam okremih operacijnih sistem mizhmashinna vzayemodiya zabezpechuyetsya cherez specialnu abstrakciyu soket Zalezhno vid rivnya vikoristannya soketiv isnuyut nastupni zasobi mizhmashinnoyi vzayemodiyi procesiv mehanizmi vzayemodiyi uzgodzheno zabezpechuyutsya yadrami operacijnih sistem v yakih vikonuyutsya procesi pryame vikoristannya soketiv tehnologiya sho vimagaye programuvannya na nizkomu rivni i realizaciyi protokola peredachi danih RPC Remote Procedure Call viddalenij viklik procedur tehnologiya sho zabezpechuye vzayemodiyu mizh procesami podibno do vikliku funkcij dani v odin bik peredayutsya yak argumenti funkcij viddalenih procedur v inshomu yak rezultati vikonannya funkcij viddalenih procedur CORBA tehnologiya sho peredbachaye mozhlivist vzayemodiyi mizh procesami yak mizh ob yektami CORBA ye podalshim rozvitkom tehnologiyi RPC Takozh isnuyut i inshi tehnologiyi yaki zdebilshogo ye modifikaciyami isnuyuchih XML RPC SOAP tosho Okrim togo soketi mozhut vikoristovuvatis takozh dlya vzayemodiyi procesiv v mezhah odniyeyi mashini tak napriklad pracyuye x Org Dodatkovi vidomostiZasobi mizhmashinnoyi vzayemodiyi takozh mozhut vikoristovuvatis dlya zabezpechennya procesiv sho vikonuyutsya na odnij mashini vsi oznacheni zasobi takozh mozhut vikoristovuvatis dlya obminu danih riznih nitej odnogo procesu Odnim z elegantno realizovanih zasobiv IPC ye konveyer komand operacijnih sistem UNIX bazuyetsya na mehanizmi neimenovanih kanaliv peredachi danih Div takozhPi chislennya Cherga povidomlen CORBA Konveyer Unix Obmin povidomlennyami Vzayemne blokuvannyaLiteraturaCh Hoar 1989 Vzaimodejstvuyushie posledovatelnye processy Mir ISBN 5 03 001043 2 Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2016