II.1 Trường hợp trao đổi giữa hai tiến trình:
Không mất tính tổng quát, ta giả sử tiến trình 1 là server, Không mất tính tổng quát, ta giả sử tiến trình 1 là server, còn tiến trình 2 là tiến trình yêu cầu. Ta có sơ đồ sau:
còn tiến trình 2 là tiến trình yêu cầu. Ta có sơ đồ sau:
Tiến trình 1 (server) Tiến trình 2 (client) Gui_thong_diep(Yều cầu) Kết quả = Cho_thong_diep
Yêu cầu = Cho_thong_diep ; xác định loại yêu cầu
; Tìm kết quả
II.1 Trường hợp trao đổi giữa hai tiến trình:
II.1 Trường hợp trao đổi giữa hai tiến trình:
Trong trường hợp chỉ có hai tiến trình thì không cần phải Trong trường hợp chỉ có hai tiến trình thì không cần phải kiểm tra định danh của tiến trình gửi mà chỉ xác định loại
kiểm tra định danh của tiến trình gửi mà chỉ xác định loại
yêu cầu. Như vậy, khi bên tiến trình 1 (server) nhận được
yêu cầu. Như vậy, khi bên tiến trình 1 (server) nhận được
yêu cầu, nó phải có một hàm cơ sở (nguyên thủy) để xác
yêu cầu, nó phải có một hàm cơ sở (nguyên thủy) để xác
định loại yêu cầu sau đó gửi trả lại kết quả cho tiến trình 2
định loại yêu cầu sau đó gửi trả lại kết quả cho tiến trình 2
(tiến trình yêu cầu)
(tiến trình yêu cầu)
Như vậy ta cần xây dựng lại hai hàm nguyên thuỷ như sau:Như vậy ta cần xây dựng lại hai hàm nguyên thuỷ như sau: - Hàm
- Hàm Cho_thong_diepCho_thong_diep là hàm chờ thông điệp của tiến là hàm chờ thông điệp của tiến
trình kia
trình kia
- Hàm
- Hàm Gui_thong_diep(X)Gui_thong_diep(X) là hàm gửi yêu cầu X cho là hàm gửi yêu cầu X cho
tiến trình còn lại
II.1 Trường hợp trao đổi giữa hai tiến trình:
II.1 Trường hợp trao đổi giữa hai tiến trình: