Giao tiếp liên tiến trình (IPC) trong hệ điều hành
⚡ Tóm tắt thông minh
Giao tiếp giữa các tiến trình (IPC) là một tập hợp các cơ chế của hệ điều hành cho phép các tiến trình và luồng trao đổi dữ liệu, phối hợp các hoạt động và đồng bộ hóa các hành động, cho dù chúng chạy trên một máy tính hay trên nhiều máy được kết nối bởi mạng.

Truyền thông giữa các quá trình là gì?
Giao tiếp giữa các quá trình (IPC) Giao tiếp liên tiến trình (IPC) được sử dụng để trao đổi dữ liệu giữa nhiều luồng trong một hoặc nhiều tiến trình hoặc chương trình. Các tiến trình có thể chạy trên một máy tính duy nhất hoặc trên nhiều máy tính được kết nối với nhau qua mạng. IPC là viết tắt của inter-process communication (giao tiếp giữa các tiến trình).
Nó là một tập hợp các giao diện lập trình cho phép lập trình viên điều phối các hoạt động giữa nhiều tiến trình chương trình khác nhau, có thể chạy đồng thời trong một hệ điều hành. Điều này cho phép một chương trình duy nhất xử lý nhiều yêu cầu của người dùng cùng một lúc.
Vì mỗi yêu cầu của người dùng có thể dẫn đến nhiều tiến trình chạy trong hệ điều hành, nên các tiến trình này có thể cần giao tiếp với nhau. Mỗi phương pháp giao tiếp giữa các tiến trình (IPC) đều có những ưu điểm và hạn chế riêng, vì vậy không có gì lạ khi một chương trình duy nhất sử dụng nhiều phương pháp IPC khác nhau.
Các phương pháp tiếp cận giao tiếp giữa các quá trình
Dưới đây là một vài phương pháp quan trọng để giao tiếp giữa các tiến trình:
Phương pháp giao tiếp giữa các quá trình
Ống
Đường ống được sử dụng rộng rãi để liên lạc giữa hai tiến trình có liên quan. Đây là phương pháp bán song công, do đó tiến trình thứ nhất liên lạc với tiến trình thứ hai. Tuy nhiên, để đạt được liên lạc song công hoàn toàn, cần thêm một đường ống khác.
Thông qua
Đây là một cơ chế cho phép các tiến trình giao tiếp và đồng bộ hóa. Bằng cách sử dụng truyền thông điệp, các tiến trình giao tiếp với nhau mà không cần dùng đến các biến dùng chung.
Cơ chế IPC cung cấp hai thao tác:
- Gửi (tin nhắn) — kích thước tin nhắn có thể cố định hoặc thay đổi
- Nhận (tin nhắn)
Hàng đợi tin nhắn
Hàng đợi tin nhắn là một danh sách liên kết các tin nhắn được lưu trữ trong hạt nhân. Nó được xác định bằng một mã định danh hàng đợi tin nhắn. Phương pháp này cung cấp khả năng giao tiếp giữa một hoặc nhiều quy trình với khả năng song công toàn phần.
Truyền thông trực tiếp
Trong kiểu giao tiếp giữa các tiến trình này, các tiến trình phải nêu tên nhau một cách rõ ràng. Trong phương pháp này, một liên kết được thiết lập giữa một cặp tiến trình giao tiếp, và giữa mỗi cặp, chỉ tồn tại một liên kết duy nhất.
Truyền thông gián tiếp
Giao tiếp gián tiếp chỉ được thiết lập khi các tiến trình chia sẻ một hộp thư chung. Mỗi cặp tiến trình có thể chia sẻ nhiều liên kết giao tiếp, và một liên kết duy nhất có thể giao tiếp với nhiều tiến trình. Liên kết có thể là hai chiều hoặc một chiều.
Bộ nhớ dùng chung
Bộ nhớ dùng chung là một vùng bộ nhớ được chia sẻ giữa hai hoặc nhiều tiến trình. Vùng bộ nhớ này phải được bảo vệ khỏi sự truy cập đồng thời bằng cách đồng bộ hóa các tiến trình sử dụng nó.
FIFO
FIFO được sử dụng để liên lạc giữa hai tiến trình không liên quan. Đây là phương pháp song công toàn phần, có nghĩa là tiến trình thứ nhất có thể giao tiếp với tiến trình thứ hai và ngược lại.
Tại sao lại là IPC?
Dưới đây là những lý do sử dụng giao thức truyền thông giữa các tiến trình để chia sẻ thông tin:
- Nó giúp tăng tốc độ xây dựng mô-đun.
- Tăng tốc độ tính toán.
- Phân tách đặc quyền.
- Tiện.
- Nó giúp các tiến trình và hệ điều hành giao tiếp và đồng bộ hóa hoạt động của chúng.
Điều khoản được sử dụng trong IPC
Sau đây là một số thuật ngữ quan trọng được sử dụng trong IPC:
Semaphores: Semaphore là một cơ chế báo hiệu. Phương pháp hệ điều hành này cho phép hoặc không cho phép truy cập vào một tài nguyên, tùy thuộc vào cách thiết lập của nó.
Signals: Tín hiệu là một phương pháp giao tiếp giữa nhiều tiến trình thông qua việc phát tín hiệu. Tiến trình nguồn gửi một tín hiệu, được nhận dạng bằng một con số, và tiến trình đích xử lý tín hiệu đó.
Đề xuất Đọc: Là gì Semaphore? Các loại nhị phân, đếm có ví dụ
Điều gì giống FIFOS và điều gì không giống FIFOS
Bảng sau đây so sánh các FIFO giống nhau và không giống nhau:
| Giống như FIFOS | Không giống FIFOS |
|---|---|
| Nó tuân theo phương pháp FIFO (vào trước ra trước). | Nó sử dụng một phương pháp để ưu tiên hiển thị các tin nhắn khẩn cấp cụ thể trước khi chúng được chuyển đến đầu danh sách. |
| FIFO tồn tại độc lập với cả quá trình gửi và quá trình nhận. | Luôn sẵn sàng, nên không cần phải mở hay đóng. |
| Cho phép truyền dữ liệu giữa các tiến trình không liên quan. | Không có bất kỳ vấn đề đồng bộ nào giữa quá trình mở và đóng. |

