Giáo trình Hệ điều hành - Chương 4: Các cơ chế giao tiếp giữa các tiến trình phân tán - Hoàng Xuân Dậu

pdf 20 trang huongle 7990
Bạn đang xem tài liệu "Giáo trình Hệ điều hành - Chương 4: Các cơ chế giao tiếp giữa các tiến trình phân tán - Hoàng Xuân Dậu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_he_dieu_hanh_chuong_4_cac_co_che_giao_tiep_giua_c.pdf

Nội dung text: Giáo trình Hệ điều hành - Chương 4: Các cơ chế giao tiếp giữa các tiến trình phân tán - Hoàng Xuân Dậu

  1. HHệệ điđiềềuu hhàànhnh mmạạngng nângnâng caocao GiGiảảngng viên:viên: HoHoààngng XuânXuân DDậậuu Email:Email: dauhoang@vnn.vndauhoang@vnn.vn KhoaKhoa CôngCông nghnghệệ thôngthông tintin 11 HHọọcc viviệệnn CôngCông nghnghệệ BCBC VTVT
  2. IV.IV. CCáácc cơcơ chchếế giaogiao titiếếpp gigiữữaa ccáácc titiếếnn trtrììnhnh phânphân ttáánn HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 2
  3. MôMô hhììnhnh truytruyềềnn thôngthông gigiữữaa ccáácc titiếếnn trtrììnhnh HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 3
  4. CCáácc phươngphương ththứứcc truytruyềềnn thôngthông • Truyền thông giữa các tiến trình (Inter Process Communication - IPC) được hỗ trợ bởi HĐH mạng/HĐH phân tán theo 2 phương thức chủ yếu: – Truyền thông điệp (Message Passing) – Các cuộc gọi thủ tục từ xa (Remote Procedure Calls) HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 4
  5. MiddlewaresMiddlewares phphụụcc vvụụ truytruyềềnn thôngthông HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 5
  6. TruyTruyềềnn thôngthông điđiệệpp • Là phương thức truyền thông cơ sở được hỗ trợ bởi hệ điều hành • Cho phép một tiến trình trên một máy truyền môt gói dữ liệu hoặc một chuỗi bytes đến một tiến trình khác trên máy đó hoặc máy khác • Socket là một trong những kỹ thuật được dùng phổ biến nhất trong phương thức truyền thông điệp. HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 6
  7. SocketSocket vvàà PortsPorts Socket = Internet address + Port HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 7
  8. SocketsSockets (ti(tiếếp)p) • Các đặc điểm: – Là điểm giao tiếp trong truyền thông giữa các tiến trình – Các thông điệp được truyền giữa các sockets – Socket có thể tạo dựa trên giao thức TCP hoặc UDP – Mỗi tiến trình có thể sử dụng nhiều cổng để tạo nhiều sockets – Không thể chia sẻ các cổng, trừ trường hợp sử dụng IP multicast. • Cài đặt: – Socket được hỗ trợ bởi hầu hết các HĐH – Java sockets HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 8
  9. Sockets:Sockets: tươngtương ttáácc serverserver clientclient HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 9
  10. GGọọii ththủủ ttụụcc ttừừ xaxa RPCRPC • Là phương thức truyền thông giữa các tiến trình được thực hiện theo cơ chế gọi thủ tục/hàm. • Khác với gọi thủ tục cục bộ (trong một tiến trình), thủ tục được gọi từ xa được thực hiện trong ngữ cảnh của một tiến trình khác, và tiến trình đó có thể chạy ở máy khác. • RPC giúp đơn giản hoá lập trình truyền thông, do người lập trình không phải tự viết toàn bộ phần mã phục vụ truyền thông giữa các tiến trình. HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 10
  11. GGọọii ththủủ ttụụcc ttừừ xaxa (ti(tiếếp)p) HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 11
  12. CCáácc llớớp/nhp/nhóómm RPCRPC • RPC nhóm 1: – RPC được tích hợp vào ngôn ngữ lập trình – Ví dụ: Java RMI • RPC nhóm 2: – Một ngôn ngữ đặc biệt (Interface Definition Language - IDL) được sử dụng để định nghĩa giao diện giao tiếp – Độc lập với ngôn ngữ lập trình – Ví dụ: Sun RPC, CORBA HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 12
  13. RPCRPC đđồồngng bbộộ vvàà khôngkhông đđồồngng bbộộ (a) - RPC đồng bộ; (b) - RPC không đồng bộ HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 13
  14. CơCơ chchếế ththựựcc hihiệệnn RPCRPC Proxies, stubs, dispatchers được tạo ra tự động nhờ trình biên dịch IDL HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 14
  15. Client:Client: ccáácc ththàànhnh phphầầnn chchíínhnh • Proxies: – Đóng vai trò như phiên bản cục bộ của giao diện từ xa – Chuyển hướng tất cả các cuộc gọi đến client stub • Client stub: – Thực hiện marshalling các cuộc gọi và yêu cầu truyền lại thông điệp – Thực hiện unmarshalling các thông điệp trả lời. HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 15
  16. Server:Server: ccáácc ththàànhnh phphầầnn chchíínhnh • Dispatchers: – Tiếp nhận các thông điệp đến và chuyển chúng cho server stub phù hợp • Server stubs (skeletons): – Unmarshals các thông điệp và triệu gọi thực hiện các đoạn mã phù hợp – Marshals các thông điệp trả lời và khởi tạo việc gửi chúng cho client. HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 16
  17. RPCRPC VVíí ddụụ HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 17
  18. RPCRPC VVíí ddụụ HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 18
  19. RPCRPC VVíí ddụụ HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 19
  20. CơCơ chchếế ththựựcc hihiệệnn JavaJava RMIRMI HĐH mạng nâng cao IV. Cơ chế giao tiếp giữa các tiến trình 20