IPC theo nguyên tắc chia sẻ tài nguyên chungOS - Kernel shared resources Các tiến trình chia sẻ Memory File System Space... Name Value FunctionSIGHUP 1 Terminal hangup SIGINT 2 Interr
Trang 2Nhu Cầu Liên Lạc
Q
Trang 312/16/2007 Trần Hạnh Nhi 3
Các cơ chế liên lạc
Chia sẻ tài nguyên chung
Trang 4IPC theo nguyên tắc chia sẻ tài nguyên chung
OS - Kernel
shared resources
Các tiến trình chia sẻ
Memory
File System Space
Trang 5 Hỗ trợ liên lạc
Kernel với User Process
Process Error
Timer
Child Process kết thúc…
User process vơí nhau
Trang 6Name 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 >
Trang 712/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
Trang 8 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
L
Q AB B……….A AB
Trang 9 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
Trang 10 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ộ
Trang 1112/16/2007 Trần Hạnh Nhi 11
IPC theo nguyên tắc trao đổi thông điệp
User Process OS-Kernel
User Process 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
Trang 12 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ênlạ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
Trang 1312/16/2007 Trần Hạnh Nhi 13
Định dạng Message
Trang 14Nhậ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 ?
Trang 15Receive( ) //WIN
Trang 16 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
Trang 1712/16/2007 Trần Hạnh Nhi 17
Trang 18Socket Communication
Trang 20Liên lạc thông qua Socket
Hỗ trợ 2 phương thức liên lạc
Trang 2112/16/2007 Trần Hạnh Nhi 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
Trang 22Phươ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)
Trang 2312/16/2007 Trần Hạnh Nhi 23
Caáu truùc ñòa chæ Socket
Generic socket address structure:
};
A popular BSD-derived implementation:
sa_family_ t sin_family ; /* address family */
order */
};
Trang 24Port 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
Trang 2512/16/2007 Trần Hạnh Nhi 25
Some Well-Known Ports
Trang 28TCP System Calls
bind() listen()
Trang 2912/16/2007 Trần Hạnh Nhi 29
UDP System Calls
socket() bind() recvfrom()