Відмінності між версіями «Засоби міжпроцесної взаємодії.»
(Створена сторінка: Взаємодія між процесами — набір засобів обміну повідомленнями між процесами. Засоби IPC ...) |
|||
(Одна проміжна версія одного користувача не показана) | |||
Рядок 11: | Рядок 11: | ||
Взаємодія процесів дозволяє процесам синхронізувати свою роботу, сумісно і узгоджено використовувати спільні ресурси та спільно виконувати обробку даних. | Взаємодія процесів дозволяє процесам синхронізувати свою роботу, сумісно і узгоджено використовувати спільні ресурси та спільно виконувати обробку даних. | ||
Взаємодія процесів забезпечується всіма підсистемами ядра ОС: підсистема управління введенням-виведенням забезпечує передачу даних між процесами; підсистема управління оперативною пам'яттю розподіляє під процеси спільну оперативну пам'ять, підсистема управління процесами забезпечує синхронізацію виконання процесів та впроваджує механізм обміну сигналів, за допомогою якого процеси повідомляються про виникнення в системі надзвичайних подій. | Взаємодія процесів забезпечується всіма підсистемами ядра ОС: підсистема управління введенням-виведенням забезпечує передачу даних між процесами; підсистема управління оперативною пам'яттю розподіляє під процеси спільну оперативну пам'ять, підсистема управління процесами забезпечує синхронізацію виконання процесів та впроваджує механізм обміну сигналів, за допомогою якого процеси повідомляються про виникнення в системі надзвичайних подій. | ||
+ | Операційна система 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): незалежний від протоколу інтерфейс; кінцева точка зв'язку. |
Поточна версія на 19:30, 6 грудня 2012
Взаємодія між процесами — набір засобів обміну повідомленнями між процесами. Засоби 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): незалежний від протоколу інтерфейс; кінцева точка зв'язку.