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
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:
- giao_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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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