Bài giảng Hệ điều hành - Chương 3: Liên lạc giữa các tiến trình - Trần Hạnh Nhi

pdf 29 trang huongle 2910
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 3: Liên lạc giữa các tiến trình - Trần Hạnh Nhi", để 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:

  • pdfbai_giang_he_dieu_hanh_chuong_3_lien_lac_giua_cac_tien_trinh.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 3: Liên lạc giữa các tiến trình - Trần Hạnh Nhi

  1. BÀI GIẢNG 3 : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH CƠCƠ CHECHẾÁ ?? TRAOTRAO ĐĐOỔIÅI THÔNGTHÔNGVAVẤNÁN TINTIN ĐĐEE GIGIÀÀ ??ƯỮÃA CACÁCÙC TIETIẾÁNN TRÌNHTRÌNH GGỈỈAIAI PHAPHÁPÙP ?? 10/28/2005 Trần Hạnh Nhi 1
  2. NhuCầuLiênLạc Q ƒ Chia sẻ thông tin L P R ƒ Phối hợp xử lý JOB P R1 L Q R2 10/28/2005 Trần Hạnh Nhi 2
  3. Các cơ chế liên lạc „ Chia sẻ tài nguyên chung „ Signal „ Pipe „ Shared Memory „ Trao đổi thông điệp „ Message „ Socket 10/28/2005 Trần Hạnh Nhi 3
  4. IPC theo nguyên tắc chia sẻ tài nguyên chung User Process User Process shared resources OS - Kernel „Các tiến trình chia sẻ „Memory „File System Space „Communication Facilities, Common communication protocol 10/28/2005 Trần Hạnh Nhi 4
  5. Signal „ Signal „ Meaning „ Handler „ Định nghĩa trước khi thực hiện liên lạc OS „ SIGINT, SIGSTOP „ SIGUSR1, SIGUSER2 Signal „ Hỗ trợ liên lạc „ Kernel với User Process Signal handler „ Process Error „ Timer „ Child Process kết thúc Signal Action „ User process vơí nhau „ Terminate Process Process „ Suspend, Resume 10/28/2005 Trần Hạnh Nhi 5
  6. Name Value Function SIGHUP 1 Terminal hangup SIGINT 2 Interrupt by user: generated by SIGQUIT 3 Quit by user: generated by SIGFPE 8 Floating point error such as divide by zero SIGKILL 9 Kill the process SIGUSR1 10 User defined signal 1 SIGSEGV 11 Segment violation: process has tried to access memory not assigned to it SIGUSR2 12 User defined signal 2 SIGALRM 14 Timer set with alarm() function has timed out SIGTERM 15 Termination request SIGCHLD 17 Child process termination signal SIGCONT 18 Continue after a SIGSTOP or SIGSTP signal SIGSTOP 19 Stop the process SIGTSTP 20 Terminal stop: generated by SIGWINCH 28 Change of window size
  7. Nhận xét Signals „ Liên lạc không đồng bộ L „ Không biết trước thời điểm SH „ Thiếu tin cậy Quiz : OK Q Sig A B ƒ Không cho phép trao đổi dữ liệu L Q Result 10/28/2005? Trần Hạnh Nhi 7
  8. Pipes AB AB Q B .A L WritePipe() ReadPipe() ƒ Pipe ƒ Kernel buffer (File) có kích thước giới hạn (4K, 8K ) ƒ HĐH cung cấp hàm WritePipe & ReadPipe ƒ WritePipe khi Pipe đầy ? ƒ ReadPipe khi Pipe rỗng ? ƒ Phảiù xét đến các khả năng đồng bộ ƒ Hỗ trợ liên lạc (UNIX original ) ƒ Giữa 2 tiến trình Cha - Con ƒ Một chiều ƒ Không cấu trúc (byte transfer) 10/28/2005 Trần Hạnh Nhi 8
  9. Nhận xét Pipe „ Ưu điểm : „ Cho phép trao đổi dữ liệu không cấu trúc „ Khuyết điểm „ Chi phí thực hiện cao (system call) „ Liên lạc giữa 2 tiến trình „ Liên lạc một chiều „ Pipe trong các HĐH hiện đại : „ Anomynous Pipe : This „ Named Pipe : Unix , Windows NT „ Truyền dữ liệu có cấu trúc „ Liên lạc 2 chiều 10/28/2005 Trần Hạnh Nhi 9
  10. Shared Memory ƒ Shared Memory: ƒ Là một phần không gian nhớ không thuộc sở hữu của tiến trình nào ƒ Được HĐH tạo ra ƒ Các tiến trình có thể ánh xạ địa chỉ vào không gian chia sẻ này để truy xuất dữ liệu (như đối với không gian nội bộ) ƒ Không giới hạn số lượng tiến trình, chiều trao đổi, và thứ tự truy cập ƒ Mâu thuẫn truy xuất - > nhu cầu đồng bộ 10/28/2005 Trần Hạnh Nhi 10
  11. IPC theo nguyên tắc trao đổi thông điệp User Process User Process OS-Kernel OS-Kernel Network „ Không có bộ nhớ chung „ Cần có đường kết nối giữa các máy tính 10/28/2005 Trần Hạnh Nhi 11
  12. Message „ Message „ Dữ liệu có cấu trúùc „ Cấu trúc và thông dịch msg được thỏa thuận giữa 2 tiến trình liên lạc „ HĐH cung cấp 2 primitive chính „ send(destination, message) „ receive(source, message) „ Các vấn đề quan tâm : „ Direct or indirect addressing „ Blocking or non-blocking communication „ Reliable or unreliable communication „ Buffered or un-buffered communication 10/28/2005 Trần Hạnh Nhi 12
  13. Định dạng Message 10/28/2005 Trần Hạnh Nhi 13
  14. Nhận xét message „ Là cơ chế IPC tổng quát „ Hỗ trợ liên lạc giữa các tiến trính trên cùng máy „ Hỗ trợ liện lạc giữa các tiến trính trong hệ thống phân tán „ Liên lạc giữa các hệ thống không đồng nhất ? 10/28/2005 Trần Hạnh Nhi 14
  15. Liên lạc giữa các hệ thống không đồng nhất Máy A Send( ) //UNIX P1 Receive( ) //WIN (UNIX) Máy B P2 (Windows) 10/28/2005 Trần Hạnh Nhi 15
  16. Socket „ Endpoint của một kết nối 2 chiều „ Tương đương với một network interface (hardware) „ Cho phép các ứng dụng “plug in” vào mạng một cách ẩn dụ „ Là một giao diện lập trình mạng „ Cho phép các tiến trình liên lạc 2 chiều với nhau „ Thiết lập liên lạc : tạo 2 socket, kết nối chúng với nhau „ Socket description „ Sử dụng một transport protocol „ Cần đặc tả IPaddress và port kết nối „ Được hỗ trợ đầu tiên trong Berkeley socket „ Là sự mở rộng của nhập xuất file trừu tượng „ Hiện nay được hỗ trợ trong hầu hết HĐH hiện đại 10/28/2005 Trần Hạnh Nhi 16
  17. 10/28/2005 Trần Hạnh Nhi 17
  18. Socket Communication 10/28/2005 Trần Hạnh Nhi 18
  19. Liên lạc giữa các hệ thống không đồng nhất Máy A P1 Socket Send( ) (UNIX) Máy B Receive( ) Socket P2 10/28/2005 Trần Hạnh Nhi(Windows) 19
  20. Liên lạc thông qua Socket „ Hỗ trợ 2 phương thức liên lạc „ Connection-oriented (TCP/IP) „ Stream „ Reliable „ Bi-directional communication „ Connectionless (UDP/IP) „ Datagram „ Unreliable „ Bi-directional communication „ Cho phép liên lạc giữa các tiến trình trên các mạng không đồng nhất 10/28/2005 Trần Hạnh Nhi 20
  21. Phương thức Connection-Oriented „ Thực hiện trên TCP (Transmission Control Protocol.) „ Phải thực hiện kết nối giữa 2 tiến trình trước khi trao đổi dữ liệu „ Tương tự hệ thống điện thoại „ Dữ liệu được phân phối „ in sequence. „ guaranteed. „ Kết nối kết thúc khi liên lạc chấm dứt „ 2 modes: „ Iterative (synchronous) „ Concurrent (asynchronous) 10/28/2005 Trần Hạnh Nhi 21
  22. Phương thức Connectionless „ Thực hiện trên UDP (User Datagram Protocol) „ Không yêu cầu kết nối tồn tại trước khi truyền dữ liệu „ Tương tự hệ thống thư tín „ Dữ liệu truyền có thể bị mất mát hay không đúng trật tự „ 2 modes: „ Iterative (synchronous) „ Concurrent (asynchronous) 10/28/2005 Trần Hạnh Nhi 22
  23. Cấu trúc địa chỉ Socket „ Generic socket address structure: „ struct sockaddr { sa_family_t sa_family; /* address family */ char sa_data[14]; /* socket address */ }; „ A popular BSD-derived implementation: „ struct sockaddr_in { sa_family_t sin_family; /* address family */ in_port_t sin_port; /* protocol port number */ struct in_addr sin_addr; /* IP addr in NW byte order */ char sin_zero[8]; /* unused, set to zero */ }; 10/28/2005 Trần Hạnh Nhi 23
  24. Port Numbers „ Port là 1 khái niệm trừu tượng được TCP/UDP sử dụng để phân biệt các ứng dụng trên một máy chủ „ Một port được xác định bằng 1 số nguyên 16 bit là port number. „ 3 miền giá trị đươc dành cho „ Well-known ports (0-1023) „ Registered ports (1024-49151) „ Dynamic ports (49512 – 65535) 10/28/2005 Trần Hạnh Nhi 24
  25. Some Well-Known Ports 10/28/2005 Trần Hạnh Nhi 25
  26. Socket Types „ Socket types: „ SOCK_STREAM „ Stream socket (TCP) „ SOCK_DGRAM „ Datagram socket (UDP) „ SOCK_RAW „ Raw socket (talk to IP directly) 10/28/2005 Trần Hạnh Nhi 26
  27. Socket Primitives Primitive Ý nghĩa Socket Tạo 1 communication endpoint Bind Kết buộc một local address với 1 socket Listen Thông báo sẵn sàng “lắng nghe” (tiếp nhận kết nối) Accept Khoá caller đến khi có 1 yêu cầu kết nối Connect Chủ động thực hiện kết nối Send Gởi dữ liệu qua kết nối đã thiết lập Receive Nhận dữ liệu qua kết nối đã thiết lập Close Kết thúc kết nối 10/28/2005 Trần Hạnh Nhi 27
  28. TCP System Calls Server socket() bind() listen() Client accept() socket() blocks until connection from client connect() write() read() process request write() read() close() close() 10/28/2005 Trần Hạnh Nhi 28
  29. UDP System Calls Server socket() bind() recvfrom() Client socket() blocks until data received from a client sendto() data(request) process request data(reply) sendto() recvfrom() close() 10/28/2005 Trần Hạnh Nhi 29