Bài giảng hệ điều hành chương 3 liên lạc giữa các tiến trình

29 701 0
Bài giảng hệ điều hành   chương 3  liên lạc giữa các tiến trình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÀI GIẢNG : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH CƠ CHẾ ? TRAO ĐỔI THÔNG TIN GIỮA CÁC TIẾN TRÌNH VẤN ĐỀ ? GỈAI PHÁP ? 10/28/2005 Trần Hạnh Nhi Nhu Cầu Liên Lạc Q ƒ Chia sẻ thông tin P ƒ Phối hợp xử lý L R JOB P R1 Q 10/28/2005 Trần Hạnh Nhi R2 L 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 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 10/28/2005 Trần Hạnh Nhi Signal „ „ „ Signal „ Meaning „ Handler Đònh nghóa trước thực 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… „ Terminate Process Suspend, Resume… 10/28/2005 Signal Signal handler Signal Action User process vơí „ OS Process Trần Hạnh Nhi Name Value Function SIGHUP Terminal hangup SIGINT Interrupt by user: generated by < CTRL C > SIGQUIT Quit by user: generated by < CTRL \ > SIGFPE Floating point error such as divide by zero SIGKILL Kill the process SIGUSR1 10 User defined signal SIGSEGV 11 SIGUSR2 12 Segment violation: process has tried to access memory not assigned to it User defined signal 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 Nhận xét Signals „ L Liên lạc không đồng „ „ SH Không biết trước thời điểm Thiếu tin cậy Q Quiz : OK A Sig B ƒ Không cho phép trao đổi liệu Q 10/28/2005 ? Result L Trần Hạnh Nhi Pipes AB Q B……….A WritePipe() AB L 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 Pipe đầy ? ƒ ReadPipe Pipe rỗng ? ƒ Phảiù xét đến khả đồng ƒ Hỗ trợ liên lạc (UNIX original ) ƒ Giữa 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 Nhận xét Pipe „ Ưu điểm : „ „ Khuyết điểm „ „ „ „ Cho phép trao đổi liệu không cấu trúc Chi phí thực cao (system call) Liên lạc tiến trình Liên lạc chiều Pipe HĐH đại : „ „ Anomynous Pipe : This… Named Pipe : Unix , Windows NT… „ „ Truyền liệu có cấu trúc Liên lạc chiều 10/28/2005 Trần Hạnh Nhi Shared Memory ƒ Shared Memory: ƒ Là phần không gian nhớ không thuộc sở hữu tiến trình ƒ Được HĐH tạo ƒ Các tiến trình ánh xạ đòa vào không gian chia sẻ để truy xuất liệu (như không gian nội bộ) ƒ Không giới hạn số lượng tiến trình, chiều trao đổi, thứ tự truy cập ƒ Mâu thuẫn truy xuất - > nhu cầu đồng 10/28/2005 Trần Hạnh Nhi 10 Nhận xét message „ Là chế IPC tổng quát „ „ „ Hỗ trợ liên lạc tiến trính máy Hỗ trợ liện lạc tiến trính hệ thống phân tán Liên lạc hệ thống không đồng ? 10/28/2005 Trần Hạnh Nhi 14 Liên lạc hệ thống không đồng Máy A P1 Send( ) //UNIX Receive( ) //WIN (UNIX) Máy B P2 (Windows) 10/28/2005 Trần Hạnh Nhi 15 Socket „ „ Endpoint kết nối chiều Tương đương với network interface (hardware) „ „ Cho phép ứng dụng “plug in” vào mạng cách ẩn dụ Là giao diện lập trình mạng „ Cho phép tiến trình liên lạc chiều với „ „ Socket description „ „ „ Thiết lập liên lạc : tạo socket, kết nối chúng với Sử dụng transport protocol Cần đặc tả IPaddress port kết nối Được hỗ trợ Berkeley socket „ „ Là mở rộng nhập xuất file trừu tượng Hiện hỗ trợ hầu hết HĐH đại 10/28/2005 Trần Hạnh Nhi 16 10/28/2005 Trần Hạnh Nhi 17 Socket Communication 10/28/2005 Trần Hạnh Nhi 18 Liên lạc hệ thống không đồng Máy A P1 (UNIX) Receive( ) 10/28/2005 Socket Socket Trần Hạnh Nhi Send( ) P2 Máy B (Windows) 19 Liên lạc thông qua Socket „ Hỗ trợ phương thức liên lạc „ Connection-oriented (TCP/IP) „ „ „ „ Connectionless (UDP/IP) „ „ „ „ Stream Reliable Bi-directional communication Datagram Unreliable Bi-directional communication Cho phép liên lạc tiến trình mạng không đồng 10/28/2005 Trần Hạnh Nhi 20 Phương thức Connection-Oriented „ Thực TCP (Transmission Control Protocol.) „ Phải thực kết nối tiến trình trước trao đổi liệu „ „ Dữ liệu phân phối „ „ „ „ Tương tự hệ thống điện thoại in sequence. guaranteed. Kết nối kết thúc liên lạc chấm dứt modes: „ „ Iterative (synchronous) Concurrent (asynchronous) 10/28/2005 Trần Hạnh Nhi 21 Phương thức Connectionless „ Thực UDP (User Datagram Protocol) „ Không yêu cầu kết nối tồn trước truyền liệu „ „ „ Tương tự hệ thống thư tín Dữ liệu truyền bò mát hay không trật tự modes: „ „ Iterative (synchronous) Concurrent (asynchronous) 10/28/2005 Trần Hạnh Nhi 22 Cấu trúc đòa Socket „ Generic socket address structure: „ „ struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; /* address family */ /* 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 Port Numbers „ „ Port khái niệm trừu tượng TCP/UDP sử dụng để phân biệt ứng dụng máy chủ Một port xác đònh số nguyên 16 bit port number. „ 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 Some Well-Known Ports 10/28/2005 Trần Hạnh Nhi 25 Socket Types „ Socket types: „ SOCK_STREAM „ „ SOCK_DGRAM „ „ Stream socket (TCP) Datagram socket (UDP) SOCK_RAW „ Raw socket (talk to IP directly) 10/28/2005 Trần Hạnh Nhi 26 Socket Primitives Primitive Socket Bind Listen Accept Connect Send Receive Close 10/28/2005 Ý nghóa Tạo communication endpoint Kết buộc local address với socket Thông báo sẵn sàng “lắng nghe” (tiếp nhận kết nối) Khoá caller đến có yêu cầu kết nối Chủ động thực kết nối Gởi liệu qua kết nối thiết lập Nhận liệu qua kết nối thiết lập Kết thúc kết nối Trần Hạnh Nhi 27 TCP System Calls Server socket() bind() Client listen() socket() accept() blocks until connection from client connect() write() read() process request 10/28/2005 write() read() close() close() Trần Hạnh Nhi 28 UDP System Calls Server socket() bind() Client recvfrom() socket() blocks until data received from a client sendto() data(request) process request sendto() data(reply) recvfrom() close() 10/28/2005 Trần Hạnh Nhi 29 [...]... communication 10/28/2005 Trần Hạnh Nhi 12 Đònh dạng Message 10/28/2005 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 ? 10/28/2005 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... Hạnh Nhi 18 Liên lạc giữa các hệ thống không đồng nhất Máy A P1 (UNIX) Receive( ) 10/28/2005 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... (Windows) 10/28/2005 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 10/28/2005 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... 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 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ư... sin_zero[8]; /* unused, set to zero */ }; 10/28/2005 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-10 23) Registered ports (1024-49151) Dynamic ports (49512 – 65 535 ) 10/28/2005 Trần Hạnh Nhi 24 Some Well-Known Ports 10/28/2005 . 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. 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. (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

Ngày đăng: 27/09/2015, 21:42

Từ khóa liên quan

Mục lục

  • BÀI GIẢNG 3 : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH

  • Nhu Cầu Liên Lạc

  • Các cơ chế liên lạc

  • IPC theo nguyên tắc chia sẻ tài nguyên chung

  • Signal

  • Nhận xét Signals

  • Pipes

  • Nhận xét Pipe

  • Shared Memory

  • IPC theo nguyên tắc trao đổi thông điệp

  • Message

  • Đònh dạng Message

  • Nhận xét message

  • Liên lạc giữa các hệ thống không đồng nhất

  • Socket

  • Socket Communication

  • Liên lạc giữa các hệ thống không đồng nhất

  • Liên lạc thông qua Socket

  • Phương thức Connection-Oriented

  • Phương thức Connectionless

Tài liệu cùng người dùng

Tài liệu liên quan