[Bài 04][Câu 06] Trình bày khái niệm IQC với cơ chế gửi nhận thông điệp giữa các tiến trình?

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

[Bài 04][Câu 06] Trình bày khái niệm IQC với cơ chế gửi nhận thông điệp giữa các tiến trình?

Bài gửi  Quang_11H1010104 on 14/3/2012, 23:30

- IPC là chữ viết tắt của "Inter-Process Communication" là hệ thống cho phép các tiến trình liên lạc với nhau bằng cách "gởi nhận thông điệp" và đồng bộ các hoạt động của chúng thông qua sự quản lý của HĐH.
VD: Học sinh trong lớp là các tiến trình. HS muốn gửi thư tay cho nhau thì sẽ phải gửi qua thầy giáo (HĐH) rồi thầy mới gửi tiếp những thư tay đó sang cho đối tượng cần nhận.

- IPC đặc biệt hữu ích trong môi trường phân tán, vì các tiến trình trên các máy khác nhau có thể liên lạc được với nhau thông qua mạng.
VD: Khi một máy được khởi động và log vào mạng, HĐH sẽ tạo 1 chia sẻ ngầm định tên là IPC$. Nó sẽ giúp cho các máy khác có thể nhìn thấy và kết nối đến các chia sẻ trên máy này.

- IPC chuẩn cung cấp hai hàm cơ bản:
• Send(message) : gởi một thông điệp
• Receive(message) : nhận một thông điệp
Nếu hai tiến trình P và Q muốn liên lạc với nhau, cần phải thiết lập một mối liên kết giữa hai tiến trình, sau đó P, Q sử dụng các hàm IPC thích hợp để trao đổi thông điệp, cuối cùng khi sự liên lạc chấm dứt mối liên kết giữa hai tiến trình sẽ bị hủy

1. Liên lạc trực tiếp (Direct Communications)
• Theo địa chỉ đối xứng (Symmetric Scheme)
Send (P, Message) - Gửi thông điệp cho P
Receive (Q, Message) - Nhận thông điệp từ Q
Đặc điểm:
+ Liên kết được thiết lập tự động giữa mỗi cặp tiến trình.
+ Liên kết chỉ giữa 2 tiến trình.
+ Chỉ có 1 liên kết giữa mỗi cặp.
+ Tính đối xứng của liên lạc (2 bên đều biết đích xác tên của nhau khi Gửi/Nhận).

• Theo địa chỉ phi đối xứng (Asymmetric Scheme)
Send (P, Message) - Gửi thông điệp cho P
Receive (id, Message) - Nhận thông điệp từ tiến trình bất kỳ, Biến id chứa số hiệu tiến trình gửi

2. Liên lạc gián tiếp (Indirect Communications)
Qua các Hộp thư (Mailboxes) hoặc Cổng (Ports).
Hộp thư là một thực thể qua đó thông điệp được gửi đến và lấy ra.
Mỗi hộp thư có định danh riêng.
Hai tiến trình phải chung nhau một hộp thư nào đó.
Hai loại hộp thư:
+ Hộp thư tiến trình (Process Mailbox): Nằm trong vùng địa chỉ của một tiến trình nào đó.
+ Hộp thư hệ điều hành (OS Mailbox): Nằm trong vùng địa chỉ của HĐH

3. Đồng bộ hoá gửi nhận thông điệp
- Giao tiếp giữa hai quá trình xảy ra bởi lời gọi hàm cơ sở send và receive. Có các tùy chọn thiết kế khác nhau cho việc cài đặt mỗi hàm cơ sở. Truyền thông điệp có thể là nghẽn (block) hay không nghẽn (nonblocking)-cũng được xem như đồng bộ và bất đồng bộ.
• Hàm send nghẽn: quá trình gởi bị nghẽn cho đến khi thông điệp được nhận bởi quá trình nhận hay bởi hộp thư.
• Hàm send không nghẽn: quá trình gởi gởi thông điệp và thực hiện tiếp hoạt động
• Hàm receive nghẽn: người nhận nghẽn cho đến khi thông điệp sẳn dùng
• Hàm receive không nghẽn: người nhận nhận lại một thông điệp hợp lệ hay rỗng
Sự kết hợp khác nhau giữa send và receive là có thể. Khi cả hai send và receive là nghẽn chúng ta có sự thống nhất giữa người gởi và người nhận.

Quang_11H1010104

Tổng số bài gửi : 2
Join date : 15/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết