Зв'язок між процесами (IPC) в ОС
Що таке комунікація між процесами?
Зв'язок між процесами (IPC) використовується для обміну даними між кількома потоками в одному або кількох процесах або програмах. Процеси можуть працювати на одному чи кількох комп’ютерах, з’єднаних мережею. Повною формою IPC є міжпроцесна комунікація.
Це набір інтерфейсів програмування, які дозволяють програмісту координувати дії між різними програмними процесами, які можуть виконуватися одночасно в операційній системі. Це дозволяє певній програмі обробляти багато запитів користувачів одночасно.
Оскільки кожен окремий запит користувача може призвести до запуску кількох процесів в операційній системі, процес може потребувати зв’язку один з одним. Кожен підхід до протоколу IPC має свої переваги та обмеження, тому нерідко одна програма використовує всі методи IPC.
Підходи до міжпроцесної комунікації
Ось кілька важливих методів міжпроцесного зв’язку:

Труби
Труба широко використовується для зв'язку між двома пов'язаними процесами. Це напівдуплексний метод, тому перший процес спілкується з другим процесом. Однак для досягнення повного дуплексу потрібна інша труба.
Повідомлення проходить
Це механізм для спілкування та синхронізації процесу. Використовуючи передачу повідомлень, процес спілкується один з одним, не вдаючись до спільних змінних.
Механізм IPC забезпечує дві операції:
- Надіслати (повідомлення) - розмір повідомлення фіксований або змінний
- Отримано (повідомлення)
Черги повідомлень
Черга повідомлень – це пов’язаний список повідомлень, які зберігаються в ядро. Він ідентифікується ідентифікатором черги повідомлень. Цей метод забезпечує зв’язок між одним або кількома процесами з повнодуплексною здатністю.
прямий зв'язок
У цьому типі процесу міжпроцесного зв’язку слід чітко називати один одного. У цьому методі зв’язок встановлюється між однією парою взаємодіючих процесів, і між кожною парою існує лише один зв’язок.
Непряме спілкування
Непрямий зв’язок встановлюється лише тоді, коли процеси спільно використовують спільну поштову скриньку, кожна пара процесів має декілька каналів зв’язку. Посилання може спілкуватися з багатьма процесами. Посилання може бути двонаправленим або однонаправленим.
Спільна пам'ять
Спільна пам'ять — це пам'ять, яку спільно використовують два або більше процесів, які встановлюються за допомогою спільної пам'яті між усіма процесами. Цей тип пам’яті вимагає захисту один від одного шляхом синхронізації доступу між усіма процесами.
FIFO
Зв'язок між двома непов'язаними процесами. Це повнодуплексний метод, що означає, що перший процес може спілкуватися з другим процесом, і може статися навпаки.
Чому IPC?
Ось причини використання міжпроцесного протоколу зв’язку для обміну інформацією:
- Це допомагає прискорити модульність
- обчислювальний
- Розмежування привілеїв
- Зручність
- Допомагає операційній системі спілкуватися один з одним і синхронізувати свої дії.
Терміни, що використовуються в МПК
Нижче наведено кілька важливих термінів, які використовуються в IPC:
Semaphores: Семафор - техніка сигнального механізму. Цей метод ОС дозволяє або забороняє доступ до ресурсу, залежно від того, як його налаштовано.
Signals: Це спосіб спілкування між кількома процесами за допомогою сигналізації. Процес-джерело надішле сигнал, який розпізнається за номером, а процес-одержувач обробить його.
Пропозиція щодо читання: - Що таке Semaphore? Двійкові, типи підрахунку з прикладом
Що таке FIFOS і чим відрізняється від FIFOS
Як FIFOS | На відміну від FIFOS |
---|---|
Це слідує методу FIFO | Спосіб отримання певних термінових повідомлень до того, як вони потраплять на передню частину |
FIFO існує незалежно від процесів надсилання та отримання. | Завжди готовий, тому не потрібно відкривати чи закривати. |
Дозволяє передавати дані між непов’язаними процесами. | Немає проблем із синхронізацією між відкриттям і закриттям. |
Підсумки
- Визначення: Зв’язок між процесами використовується для обміну даними між кількома потоками в одному або кількох процесах або програмах.
- Труба широко використовується для зв'язку між двома пов'язаними процесами.
- Передача повідомлень — це механізм обміну даними та синхронізації процесу.
- Черга повідомлень — це пов’язаний список повідомлень, які зберігаються в ядрі
- Прямий процес — це тип процесу зв’язку між процесами, який має чітко називати один одного.
- Непрямий зв’язок встановлюється лише тоді, коли процеси спільно використовують спільну поштову скриньку, кожна пара процесів має декілька каналів зв’язку.
- Спільна пам'ять — це пам'ять, яку спільно використовують два або більше процесів, які встановлюються за допомогою спільної пам'яті між усіма процесами.
- Метод Inter Process Communication допомагає прискорити модульність.
- Семафор - техніка сигнального механізму.
- Signaling — це метод зв’язку між декількома процесами за допомогою сигналізації.
- Подібно до FIFO слідує методу FIFO, тоді як, на відміну від FIFO, використовуйте метод для отримання конкретних термінових повідомлень, перш ніж вони досягнуть передньої частини.