Bài giảng Truyền thông giữa các tiến trình (Inter-process communication)
lượt xem 27
download
Bài giảng Truyền thông giữa các tiến trình nêu các đặc trưng của IPC, truyền thông đồng bộ và bất đồng bộ. Biểu diễn dữ liệu ngoài và marshalling, truyền thông trong Client-Servev, truyền thông bên trong các dịch vụ được một nhóm server cung cấp. Truyền thông nhóm – IP multicast.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Truyền thông giữa các tiến trình (Inter-process communication)
- Truyền thông giữa các tiến trình (Inter-process communication)
- Các chủ đề chính – Các đặc trưng của IPC – Truyền thông đồng bộ và bất đồng bộ – Biểu diễn dữ liệu ngoài và marshalling • CORBA’s Common Data Representation • Java Object serialisation – Truyền thông trong Client-Server • Client-Server Communication • Truyền thông bên trong các dịch vụ được một nhóm server cung cấp – Truyền thông nhóm – IP multicast
- Nhắc lại: Tiếp cận lớp The OSI model Application Application A message, descends Presentation through the Presentation layers Session Session Transport Transport Then ascends Network through the Network layers at the receiver Data Data The network Physical Physical A HOST – A COMPUTER A HOST – A COMPUTER
- Bài này tập trung vào Middle ware Application: Applications, services RMI and RPC Middleware Request Reply Protocol (RRP) layers Marshalling and external data representation Transport: UDP and TCP Other lower lever layers…
- Các cơ sở của thông điệp • API (application programming interface) – Trong ngữ cảnh của bài này, nó đề cập đến một interface cho các lập trình viên ứng dụng sử dụng UDP hoặc TCP • Chuyển thông điệp có hai tác vụ chính – Gửi và nhận (Request and Reply) – một tiến trình gởi đến các người nhận khác – Một yêu cầu đơn giản là cả hai: các nơi nhận và các thông điệp liên quan đến đồng bộ hóa (synchronisation)
- Đồng bộ hóa – Đồng bộ (blocking) • Người gởi bị “khóa” nghĩa là bị “đóng băng” trong khi gởi cho đến khi có phản hồi từ người nhận • Người gởi và người nhận đồng bộ với nhau – Bất đồng bộ (non-blocking) • Người gởi có thể thực hiện xử lý một khi thông điệp đã được gởi – Các hệ thống hiện nay nhắm đến đồng bộ – Bất đồng bộ làm cho mã chương trình thêm phức tạp
- Đồng bộ (tt.) • Ví dụ – Blocking: • Yêu cầu rút tiền từ máy ATM • Máy ATM bị khóa cho đến khi nhận được xác nhận quyền truy xuất từ ngân hàng. – Non-blocking • Một DIS là non-blocking, nó cho pháp các xủa lý được thực hiện trong khi đợi trả lời • Email là một ví dụ trong thế giớ thực về thông điệp non-blocking • Bạn gởi một email và rồi làm chuyện khác trong khi chờ trả lời
- API & IP: truyền thông giữa các tiến trình • Nơi đến của thông điệp – Địa chỉ • Địa chỉ xác định duy nhất một phần cứng, có thể là một máy tính • Một cổng cục bộ là một nơi đến trên một máy tính – Một hoặc nhiều thông điệp có thể được gởi đến các cổng – Các tiến trình có thể sử dụng một hay nhiều cổng để nhận thông điệp 156.254.12.35:875 Address + port
- API & IP: truyền thông giữa các tiến trình • Các vấn đề cần quan tâm trong truyền thông giữa các tiến trình – Độ tin cậy (Reliability) • Các hệ thống có thể tin cậy không nên làm hư thông điệp ngay cả nếu các gói bị mất hay bị hủy – Tính thứ tự (Ordering) • Thông điệp được phân phối theo thứ tự gởi
- Truyền thông giữa các tiến trình ports ports Port: 1 Port: 1 client server Port: 671 Port: 771 A computer, IP address = 138.37.543.345 A computer, IP address = 138.37.53.349
- Truyền thông tiến trình và Sockets • Sockets – Là một sự trừu tượng theo đó tiến trình liên kết đến một socket có quan hệ đến một cổng – Gán một cổng cục bộ đến một tiến trình – Tiến trình trao đổi với socket – liên quan đến một cổng – Các tiến trình chỉ có thể truy xuất thông điệp từ các cổng liên kết đến socket của chúng
- Truyền thông giữa các tiên trình ports ports Socket maps to a port Socket maps to a port Port: 1 Port: 1 client server Port: 671 Port: 771 A computer, IP address = 138.37.543.345 A computer, IP address = 138.37.53.349
- Truyền thông theo UDP ◦ UDP và phương pháp Datagram Datagram được gởi từ một tiến trình đến tiến trình nhận Trước hết người gởi (the client) và người nhận (the server) phải được liên kết đến cùng một socket Client có thể liên kết đến bất kỳ cổng nào Server liên kết đến cổng bảng bá đã xác định để nhận thông điệp client gởi thông điệp của nó đến server bao gồm dịa chỉ nguwowgi gởi (để nhận trả lời) server nhận và xử lý server gởi trả lời cho client thông qua địa chỉ và cổng
- Truyền thông UDP (tt.) Phương thức send là non-blocking (asynchronous) ◦ như vậy chúng ta tự do khi đã gởi Phương thức nhận là blocking (synchronous), mặc dù các threads khác có thể được dùng để tiến hành các công việc khác. Nhận có thể dùng time-outs để giới hạn thời gian bị block. ◦ Tuy vậy việc xác định gia trị timeout tốt là khó Thông điệp nhận được được lưu trữ trong hàng đợi liên kết với socket. Người nhận kiểm tra socket liên kết để nhận thông điệp Các thông điệp nhận được có thể đến từ khắp nơi
- Truyền thông UDP ◦ Sử dụng UDP và phương pháp Datagram Hiệu quả khi không quan tâm đến sự cố và khả năng chịu lỗi i.e. naming services Hiệu quả vì giảm các truyền thông bắt tay để bảo đảm các phương thức phân phối
- Truyền thông UDP UDP và phương pháp Datagram ◦ Ví dụ về phương thức: aSocket.send(request) aSocket.recieve(reply) ở đây cả hai request và reply và các gói Datagram ◦ Các phương thức khác: setSoTimeout connect
- API & IP: truyền thông UDP • In Java • A DatagramPacket class contains: The message Length of message Internet address Port • i.e. 3432 543 4531 13 145.25.123.871 589 In Java a DatagramPacket is constructed: myPacket = new DatagramPacket(m,args[0].length(), aHost, serverPort); Note: the DatagramPacket contains the host address (aHost) and the host port (serverPort)
- API & IP: truyền thông UDP • Trong Java Trong Java, một DatagramPacket được gởi và nhận như sau: aSocket.send(myPacket); aSocket.recieve(myPacket); Ghi chú: aSocket là một thể hiện của lớp DatagramSocket .
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Mạng máy tính: LAN & MAC
66 p | 150 | 37
-
Bài giảng Mạng và truyền thông: Chương 2 - ThS. Lê Văn Hùng
34 p | 212 | 18
-
Bài giảng Mạng và truyền thông: Chương 4 - ThS. Lê Văn Hùng
134 p | 151 | 18
-
Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình (2008)
159 p | 127 | 16
-
Bài giảng Nhập môn mạng máy tính - ThS. Nguyễn Cao Đạt
46 p | 100 | 14
-
Bài giảng Mạng máy tính - Bài số 3: OSI protocol
38 p | 78 | 10
-
Bài giảng Hệ điều hành mạng nâng cao: Chương IV - TS. Hoàng Xuân Dậu
20 p | 110 | 9
-
Bài giảng Mạng máy tính: Truyền thông giữa hai máy nối trực tiếp - Nguyễn Hà Huy Cường
32 p | 14 | 7
-
Bài giảng Lập trình mạng: Chương 6 - ThS. Trần Bá Nhiệm
40 p | 65 | 7
-
Bài giảng Mạng máy tính - ThS. Nguyễn Cao Đạt
46 p | 144 | 7
-
Bài giảng Mạng máy tính: Mạng LAN - Nguyễn Hà Huy Cường
35 p | 17 | 6
-
Bài giảng Mạng máy tính - Bài 2: Kiến trúc phân tầng và mô hình OSI
28 p | 59 | 5
-
Bài giảng Chương 3: Tầng ứng dụng - Lương Ánh Hoàng
18 p | 68 | 4
-
Bài giảng Tác tử - Công nghệ phần mềm dựa tác tử: Liên lạc/Truyền thông trong hệ Agents
6 p | 49 | 4
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 2) - Nguyễn Hải Châu
6 p | 106 | 4
-
Bài giảng Chương 5: Tầng mạng - Lương Ánh Hoàng
28 p | 73 | 2
-
Bài giảng Lab5: Gửi nhận dữ liệu giữa Client-Server
4 p | 48 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn