Tải bản đầy đủ (.pdf) (20 trang)

bài giảng hệ điều hành mạng nâng cao chương iv các cơ chế giao tiếp giữa các tiến trình phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 20 trang )

H
H


đi
đi


u h
u h
à
à
nh m
nh m


ng
ng
nâng cao
nâng cao
Gi
Gi


ng viên: Ho
ng viên: Ho
à
à
ng Xuân D
ng Xuân D



u
u
Email:
Email:
Khoa Công ngh
Khoa Công ngh


thông tin 1
thông tin 1
H
H


c vi
c vi


n Công ngh
n Công ngh


BC
BC
-
-
VT
VT
HĐH m

HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì

ì
nh
nh
2
2
IV. C
IV. C
á
á
c cơ ch
c cơ ch
ế
ế
giao ti
giao ti
ế
ế
p
p
gi
gi


a c
a c
á
á
c ti
c ti
ế

ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi



a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
3
3
Mô h
Mô h
ì
ì
nh truy
nh truy


n thông gi
n thông gi


a

a
c
c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế

ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
4
4
C
C
á
á
c phương th
c phương th


c truy

c truy


n thông
n thông
• Truyền thông giữa các tiến trình (Inter
Process Communication - IPC) được hỗ
trợ bởi HĐH mạng/HĐH phân tán theo 2
phương thức chủ yếu:
– Truyền thông điệp (Message Passing)
– Các cuộc gọi thủ tục từ xa (Remote
Procedure Calls)
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi



a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
5
5
Middlewares ph
Middlewares ph


c v
c v


truy
truy



n thông
n thông
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế

n tr
n tr
ì
ì
nh
nh
6
6
Truy
Truy


n thông đi
n thông đi


p
p
• Là phương thức truyền thông cơ sở được
hỗ trợ bởi hệ điều hành
• Cho phép một tiến trình trên một máy
truyền môt gói dữ liệu hoặc một chuỗi
bytes đến một tiến trình khác trên máy đó
hoặc máy khác
• Socket là một trong những kỹ thuật được
dùng phổ biến nhất trong phương thức
truyền thông điệp.
HĐH m
HĐH m



ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh

nh
7
7
Socket v
Socket v
à
à
Ports
Ports
Socket = Internet address + Port
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi



a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
8
8
Sockets (ti
Sockets (ti
ế
ế
p)
p)
• Các đặc điểm:
– Là điểm giao tiếp trong truyền thông giữa các tiến
trình
– Các thông điệp được truyền giữa các sockets
– Socket có thể tạo dựa trên giao thức TCP hoặc UDP
– Mỗi tiến trình có thể sử dụng nhiều cổng để tạo nhiều
sockets
– Không thể chia sẻ các cổng, trừ trường hợp sử dụng

IP multicast.
• Cài đặt:
– Socket được hỗ trợ bởi hầu hết các HĐH
– Java sockets
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti

ế
ế
n tr
n tr
ì
ì
nh
nh
9
9
Sockets:
Sockets:
tương t
tương t
á
á
c server
c server
-
-
client
client
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.

Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
10
10
G
G



i th
i th


t
t


c t
c t


xa
xa
-
-
RPC
RPC
• Là phương thức truyền thông giữa các tiến trình
được thực hiện theo cơ chế gọi thủ tục/hàm.
• Khác với gọi thủ tục cục bộ (trong một tiến
trình), thủ tục được gọi từ xa được thực hiện
trong ngữ cảnh của một tiến trình khác, và tiến
trình đó có thể chạy ở máy khác.
• RPC giúp đơn giản hoá lập trình truyền thông,
do người lập trình không phải tự viết toàn bộ
phần mã phục vụ truyền thông giữa các tiến
trình.

HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr

ì
ì
nh
nh
11
11
G
G


i th
i th


t
t


c t
c t


xa (ti
xa (ti
ế
ế
p)
p)
HĐH m
HĐH m



ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì

nh
nh
12
12
C
C
á
á
c l
c l


p/nh
p/nh
ó
ó
m RPC
m RPC
• RPC nhóm 1:
– RPC được tích hợp vào ngôn ngữ lập trình
– Ví dụ: Java RMI
• RPC nhóm 2:
– Một ngôn ngữ đặc biệt (Interface Definition
Language - IDL) được sử dụng để định
nghĩa giao diện giao tiếp
– Độc lập với ngôn ngữ lập trình
– Ví dụ: Sun RPC, CORBA
HĐH m
HĐH m



ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh

nh
13
13
RPC đ
RPC đ


ng b
ng b


v
v
à
à
không đ
không đ


ng b
ng b


(a) - RPC đồng bộ; (b) - RPC không đồng bộ
HĐH m
HĐH m


ng nâng cao
ng nâng cao

IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
14
14

Cơ ch
Cơ ch
ế
ế
th
th


c hi
c hi


n RPC
n RPC
Proxies, stubs, dispatchers được tạo ra tự động nhờ
trình biên dịch IDL
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti

ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
15
15
Client: c
Client: c
á
á
c th
c th
à
à

nh ph
nh ph


n ch
n ch
í
í
nh
nh
• Proxies:
– Đóng vai trò như phiên bản cục bộ của giao
diện từ xa
– Chuyển hướng tất cả các cuộc gọi đến client
stub
• Client stub:
– Thực hiện marshalling các cuộc gọi và yêu
cầu truyền lại thông điệp
– Thực hiện unmarshalling c ác thông điệp trả
lời.
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch

ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
16
16
Server: c
Server: c
á
á

c th
c th
à
à
nh ph
nh ph


n ch
n ch
í
í
nh
nh
• Dispatchers:
– Tiếp nhận các thông điệp đến và chuyển
chúng cho server stub ph ù hợp
• Server stubs (skeletons):
– Unmarshals các thông điệp và triệu gọi thực
hiện các đoạn mã phù hợp
– Marshals các thông điệp trả lời và khởi tạo
việc gửi chúng cho client.
HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.

Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
17
17
RPC
RPC

-
-
V
V
í
í
d
d


HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi



a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
18
18
RPC
RPC
-
-
V
V
í
í
d
d


HĐH m
HĐH m



ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti
ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì

nh
nh
19
19
RPC
RPC
-
-
V
V
í
í
d
d


HĐH m
HĐH m


ng nâng cao
ng nâng cao
IV.
IV.
Cơ ch
Cơ ch
ế
ế
giao ti
giao ti

ế
ế
p gi
p gi


a c
a c
á
á
c ti
c ti
ế
ế
n tr
n tr
ì
ì
nh
nh
20
20
Cơ ch
Cơ ch
ế
ế
th
th



c hi
c hi


n Java RMI
n Java RMI

×