Tài liệu Hệ điều hành nâng cao - Liên lạc giữa các tiến trình: 10/28/2005 Trần Hạnh Nhi 1
BÀI GIẢNG 3 : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH 
CƠ CHẾÁ ?
VẤÁN ĐỀÀ ?TRAO ĐỔÅI THÔNG TIN GIÂ ỮA CÃ ÙÙC TIẾÁN TRÌNH
GỈAI PHÁÙP ?
10/28/2005 Trần Hạnh Nhi 2
Nhu Cầu Liên Lạc
Q
LP
Chia sẻ thông tin
R
Phối hợp xử lý
P
JOB
R1
R2
L
Q
10/28/2005 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
10/28/2005 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
10/28/2005 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...
                
              
                                            
                                
            
 
            
                 29 trang
29 trang | 
Chia sẻ: hunglv | Lượt xem: 1665 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Hệ điều hành nâng cao - Liên lạc giữa các tiến trình, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
10/28/2005 Trần Hạnh Nhi 1
BÀI GIẢNG 3 : LIÊN LẠC GIỮA CÁC TIẾN TRÌNH 
CƠ CHẾÁ ?
VẤÁN ĐỀÀ ?TRAO ĐỔÅI THÔNG TIN GIÂ ỮA CÃ ÙÙC TIẾÁN TRÌNH
GỈAI PHÁÙP ?
10/28/2005 Trần Hạnh Nhi 2
Nhu Cầu Liên Lạc
Q
LP
Chia sẻ thông tin
R
Phối hợp xử lý
P
JOB
R1
R2
L
Q
10/28/2005 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
10/28/2005 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
10/28/2005 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 
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
10/28/2005 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
10/28/2005 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()
LQ B……….AAB
AB
10/28/2005 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
10/28/2005 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ộ
10/28/2005 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
10/28/2005 Trần Hạnh Nhi 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 13
Định dạng Message
10/28/2005 Trần Hạnh Nhi 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 15
Máy A
(UNIX)
Máy B
(Windows)
Liên lạc giữa các hệ thống không đồng nhất
P1
P2
Send( ) //UNIX
Receive( ) //WIN
10/28/2005 Trần Hạnh Nhi 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 17
10/28/2005 Trần Hạnh Nhi 18
Socket Communication
10/28/2005 Trần Hạnh Nhi 19
Máy A
(UNIX)
Máy B
(Windows)
Liên lạc giữa các hệ thống không đồng nhất
P1
P2
Send( )
Receive( )
Socket
Socket
10/28/2005 Trần Hạnh Nhi 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 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 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 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 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 25
Some Well-Known Ports
10/28/2005 Trần Hạnh Nhi 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 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 28
TCP System Calls
bind()
listen()
socket()
socket()
accept()
read()
write()
connect()
write()
read()
blocks until connection from client
process request
Server
Client
close() close()
10/28/2005 Trần Hạnh Nhi 29
UDP System Calls
socket()
bind()
recvfrom()
sendto()
socket()
recvfrom()
sendto()
blocks until data received 
from a client
process request
data(request)
data(reply)
Server
Client
close()
            Các file đính kèm theo tài liệu này:
 HDHNC-05-Bai3.pdf HDHNC-05-Bai3.pdf