Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
622,28 KB
Nội dung
12/16/2007 Trần Hạnh Nhi 1 BÀI GIẢNG 8 : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH CƠ CHE CƠ CHE Á Á ? ? VA VA Á Á N N Đ Đ E E À À ? ? TRAO TRAO Đ Đ O O Å Å I THÔNG TIN GI I THÔNG TIN GI Ư Ư ÕA CA ÕA CA Ù Ù C TIE C TIE Á Á N TRÌNH N TRÌNH G G Ỉ Ỉ AI PHA AI PHA Ù Ù P ? P ? 12/16/2007 Trần Hạnh Nhi 2 NhuCầuLiênLạc Q L P Chia sẻ thông tin R Phối hợp xử lý P JOB R1 R2 L Q 12/16/2007 Trần Hạnh Nhi 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 12/16/2007 Trần Hạnh Nhi 4 IPC theo nguyên tắc chia sẻ tài nguyên chung User Process User Process OS - Kernel shared resources Các tiến trình chia sẻ Memory File System Space Communication Facilities, Common communication protocol 12/16/2007 Trần Hạnh Nhi 5 Signal Signal Meaning Handler Đònh nghóa trước khi thực hiện liên lạc SIGINT, SIGSTOP… SIGUSR1, SIGUSER2 Hỗ trợ liên lạc Kernel với User Process Process Error Timer Child Process kết thúc… User process vơí nhau Terminate Process Suspend, Resume… OS Process Signal handler Signal Action Signal Name Value Function SIGHUP 1 Terminal hangup SIGINT 2 Interrupt by user: generated by < CTRL C > SIGQUIT 3 Quit by user: generated by < CTRL \ > 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 < CTRL Z > SIGWINCH 28 Change of window size 12/16/2007 Trần Hạnh Nhi 7 Nhận xét Signals Liên lạc không đồng bộ Không biết trước thời điểm Thiếu tin cậy Không cho phép trao đổi dữ liệu Sig Result L Q SH L Q Quiz : OK ? A B 12/16/2007 Trần Hạnh Nhi 8 Pipes 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) WritePipe() ReadPipe() L Q B……….A AB AB 12/16/2007 Trần Hạnh Nhi 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 12/16/2007 Trần Hạnh Nhi 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ộ [...]... Hạnh Nhi 12 Đònh dạng Message 12/16/2007 Trần Hạnh Nhi 13 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 ? 12/16/2007 Trần Hạnh Nhi 14 Liên lạc giữa các hệ thống không đồng nhất Máy A P1 Send( ) //UNIX Receive( ) //WIN (UNIX) Máy B P2 (Windows) 12/16/2007 Trần... Nhi 18 Liên lạc giữa các hệ thống không đồng nhất Máy A P1 (UNIX) Receive( ) 12/16/2007 Socket Socket Trần Hạnh Nhi Send( ) P2 Máy B (Windows) 19 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... (Windows) 12/16/2007 Trần Hạnh Nhi 15 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... 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 12/16/2007 Trần Hạnh Nhi 11 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... 12/16/2007 Trần Hạnh Nhi 20 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) 12/16/2007 Trần Hạnh Nhi 21 Phương thức Connectionless Thực... in_addr sin_addr; /* IP addr in NW byte order */ char sin_zero[8]; /* unused, set to zero */ }; 12/16/2007 Trần Hạnh Nhi 23 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) . 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 ? 12/16/2007. (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. 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,