bài giảng hệ điều hành mạng nâng cao chương vi điều độ tiến trình trong hệ thống phân tán - Pdf 19

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


HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi
Đi


u đ
u đ


ti
ti
ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
2


ng phân t
ng phân t
á
á
n
n
HĐH m
HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi
Đi


u đ
u đ


ti
ti
ế
ế
n tr
n tr
ì

nh
• Vấn đề điều độ (co-ordination) trong
các hệ thống phân tán
• Loại trừ tương hỗ phân tán
(distributed mutual exclusion)
• Bầu chọn lãnh đạo hay người điều
phối hệ thống
HĐH m
HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi
Đi


u đ
u đ


ti
ti
ế
ế
n tr
n tr
ì

c ti
ế
ế
n tr
n tr
ì
ì
nh?
nh?
• Cập nhật đồng thời các tài nguyên chia sẻ:
– các bản ghi trong CSDL (kho á bản ghi)
– các files
– một bảng tin chia sẻ
• Thoả thuận thực hiện các thao tác:
– Thực hiện hoặc huỷ bỏ một giao dịch CSDL
– Thống nhất việc đọc kết quả từ một nhóm các cảm
biến
• Gán lại vai trò cho master
– Lựa chọn máy chủ thời gian chính sau sự cố
– Lựa chọn người điều độ sau khi mạng được cấu hình
lại.
HĐH m
HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi

ó
khăn c
khăn c


a v
a v
/
/
đ đi
đ đi


u đ
u đ


• Các giải pháp điều độ tập trung không phù
hợp với hệ thống phân tán do thành phần
tập trung sẽ trở thành điểm nút cổ chai.
• Các mô hình master/slave tĩnh cũng
không phù hợp do master có thể gặp trục
trặc.
• Tôpô mạng trong hệ phân tán rất phức tạp
• Khả năng chịu lỗi mạng (lỗi đường truyền,
tiến trình gặp trục trặc).
HĐH m
HĐH m





i tr
i tr


tương h
tương h


phân t
phân t
á
á
n
n
• Các giải thuật loại trừ tương hỗ (mutual
exclusion) thường được sử dụng trong lập trình
song song (concurrent programming) để tránh
việc sử dụng đồng thời một tài nguyên dùng
chung (như một biến toàn cục) bởi các đoạn mã
chương trình (critical sections).
• Các giải thuật loại trừ tương hỗ phân tán:
– Phương pháp tập trung
– Phương pháp phân tán toàn phần
– Phương pháp dùng thẻ bài.
HĐH m
HĐH m



à
à
i to
i to
á
á
n lo
n lo


i tr
i tr


tương h
tương h


• Bài toán:
– Có n tiến trình không đồng bộ, để đơn giản
hoá, giả thiết không có tiến trình nào trục trặc
– Đảm bảo các thông điệp được chuyển đến đích
– Để thực thi critical section (CS), m ỗi tiến trình
sẽ gọi:
• enter()
• resourceAccess()
• exit()
• Yêu cầu:
i. Chỉ một tiến trình ở trong CS tại một thời điểm
HĐH m

8
Lo
Lo


i tr
i tr


tương h
tương h


t
t


p trung
p trung
HĐH m
HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi
Đi


tương h


t
t


p trung (ti
p trung (ti
ế
ế
p)
p)
• Một tiến trình trong hệ thống được chọn làm co-
ordinator (server) t ại điểm vào CS.
• Một tiến trình muốn gọi chức năng loại trừ tương hỗ
gửi một thông điệp request đến co-ordinator.
• Khi co-ordinator nhận được thông điệp request, nó
kiểm tra:
– Nếu không có tiến trình nào đang ở trong CS, co-
ordinator gửi thông điệp reply cho tiến trình gửi
request.
– Nếu có tiến trình đang ở trong CS, co-ordinator đưa
request đó vào hàng đợi
HĐH m
HĐH m


ng nâng cao
ng nâng cao

i tr
i tr


tương h
tương h


t
t


p trung (ti
p trung (ti
ế
ế
p)
p)
• Khi nhận được thông điệp reply từ co-ordinator, tiến
trình gửi request đi vào CS.
• Khi tiến trình này ra khỏi CS, nó gửi thông điệp release
cho co-ordinator
• Khi co-ordinator nhận được thông điệp release, nó xoá
request khỏi hàng đợi.
HĐH m
HĐH m


ng nâng cao
ng nâng cao

i tr
i tr


tương h
tương h


t
t


p trung (ti
p trung (ti
ế
ế
p)
p)
• Đặc điểm:
– Đảm bảo được loại trừ tương hỗ
– Không xảy ra trường hợp tiến trình bị “bỏ đói” nếu trật
tự thực hiện trong co-ordinator là công bằng, theo
kiểu đến trước được phục vụ trước
– Cần 3 thông điệp request, reply v à release
• Hạn chế:
– co-ordinator có thể là điểm nút cổ chai
– Hệ thống ngừng hoạt động nếu co-ordinator gặp trục
trặc. Lúc đó cần chọn ra một co-ordinator mới.
HĐH m
HĐH m

Lo
Lo


i tr
i tr


tương h
tương h


phân t
phân t
á
á
n to
n to
à
à
n ph
n ph


n
n
• Tiến trình P
i
muốn vào CS:
– Tạo ra một tem thời gian TS


ti
ti
ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
13
13
Lo
Lo


i tr
i tr


tương h
tương h


phân t

reply
– Nếu P
i
có nhu cầu vào CS, nhưng chưa vào:
• P
i
so sánh TS của mình với TS của Pj
• Nếu TS(P
i
) > TS(P
j
), gửi ngay reply
• Nếu TS(P
i
) <= TS(P
j
), hoãn gửi reply
HĐH m
HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi
Đi


u đ


phân t
phân t
á
á
n to
n to
à
à
n ph
n ph


n (ti
n (ti
ế
ế
p)
p)
• Đặc điểm:
– Đảm bảo được loại trừ tương hỗ
– Loại trừ được các bế tắc (deadlock)
– Loại trừ được hiện tượng “bỏ đói” tiến trình nhờ tem thời gian
• Hạn chế:
– Mỗi tiến trình phải nhận dạng được tất cả các tiến trình khác trong
hệ thống.
– Nếu có một tiến trình mới gia nhập:
• Tiến trình này phải nhận biết được tên của các tiến trình khác
• Tên của tiến trình này phải được thông báo đến các tiến trình còn lại
– Nếu có một tiến trình trục trặc, hệ thống sẽ ngừng hoạt động. Do

n
n
15
15
Lo
Lo


i tr
i tr


tương h
tương h


d
d
ù
ù
ng th
ng th


b
b
à
à
i
i

16
16
Lo
Lo


i tr
i tr


tương h
tương h


d
d
ù
ù
ng th
ng th


b
b
à
à
i (ti
i (ti
ế
ế

ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
17
17
Lo
Lo


i tr
i tr


tương h
tương h


d
d
ù
ù

VI.
VI.
Đi
Đi


u đ
u đ


ti
ti
ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
18
18
B
B



HĐH m
HĐH m


ng nâng cao
ng nâng cao
VI.
VI.
Đi
Đi


u đ
u đ


ti
ti
ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n

ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
20
20
Thu
Thu


t to
t to
á
á
n Chang&Roberts (ti
n Chang&Roberts (ti
ế
ế
p)
p)
• Giả thiết: ring đơn hướng, không đồng bộ và
mỗi tiến trình có ID đơn nhất.

ế
ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
21
21
Thu
Thu


t to
t to
á
á
n Chang&Roberts (ti
n Chang&Roberts (ti
ế
ế
p)
p)
• Tiến trình participant không chuy ển tiếp thông
điệp bầu cử

ế
n tr
n tr
ì
ì
nh phân t
nh phân t
á
á
n
n
22
22
Thu
Thu


t to
t to
á
á
n Itai&Rodeh
n Itai&Rodeh
• Giả thiết: Có N tiến trình, ring đơn hướng,
đồng bộ và mỗi tiến trình không có ID.
• Bầu chọn:
– Mỗi tiến trình ngẫu nhiên chọn ID trong tập {1, ,K}
– Các tiến trình chuyển tất cả các ID vòng quanh
ring.
– Nếu sau 1 vòng, tồn tại các ID đơn, chọn ra ID lớn

á
n
n
23
23
Thu
Thu


t to
t to
á
á
n Itai&Rodeh (ti
n Itai&Rodeh (ti
ế
ế
p)
p)
• Khi nào thuật toán sẽ dừng?
– Xét về xác xuất thuật toán sẽ dừng (tương
tự như việc tung đồng xu, sau một số lần
gặp mặt phải, ta sẽ gặp lần được mặt trái)
• Số vòng lặp?
– Thuật toán dừng nhanh hơn nếu ID lớn
hơn
– Ước lượng số vòng lặp: nếu N=4 và K=16
thì số vòng lặp là 1,01.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status