Bài giảng Hệ điều hành nâng cao - Chương 6 Điều độ tiến trình phân tán
Thuật toán Itai&Rodeh (ti ế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.
23 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2214 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ điều hành nâng cao - Chương 6 Điều độ tiến trình phân tán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Hệ điều hành mạng
nâng cao
Giảng viên: Hoàng Xuân Dậu
Email: dauhoang@vnn.vn
Khoa Công nghệ thông tin 1
Học viện Công nghệ BC-VT
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 2
Điều độ các tiến trình trong
hệ thống phân tán
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 3
Điều độ các tiế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ạng nâng cao VI. Điều độ tiến trình phân tán 4
Tại sao cần điều độ các tiến trì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ạng nâng cao VI. Điều độ tiến trình phân tán 5
Các khó khăn của v/đ điề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ạng nâng cao VI. Điều độ tiến trình phân tán 6
Loại trừ tương hỗ phân tá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ạng nâng cao VI. Điều độ tiến trình phân tán 7
Bài toán loại trừ 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ạng nâng cao VI. Điều độ tiến trình phân tán 8
Loại trừ tương hỗ tập trung
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 9
Loại trừ tương hỗ tập trung (tiế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ạng nâng cao VI. Điều độ tiến trình phân tán 10
Loại trừ tương hỗ tập trung (tiế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ạng nâng cao VI. Điều độ tiến trình phân tán 11
Loại trừ tương hỗ tập trung (tiế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ạng nâng cao VI. Điều độ tiến trình phân tán 12
Loại trừ tương hỗ phân tán toàn phần
• Tiến trình Pi muốn vào CS:
– Tạo ra một tem thời gian TS
– Gửi thông điệp request(P i, TS) đến tất cả các tiến trình trong
hệ thống
• Khi nhận được một thông điệp request, một tiến trình
có thể:
– Gửi lại ngay thông điệp reply nếu nó không ở trong CS
– Hoãn việc gửi thông điệp reply trong một số điều kiện cụ thể
• Khi Pi nhận được reply từ tất cả các tiến trình:
– Pi vào CS
– Hoãn trả lời các thông điệp request từ các tiến trình khác.
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 13
Loại trừ tương hỗ phân tán toàn phần (tiếp)
• Các yếu tố quyết định việc tiến trình Pi có trả
lời hay hoãn trả lời thông điệp request(P j,
TS):
– Nếu Pi đang ở trong CS, nó hoãn gửi reply
– Nếu Pi không có nhu cầu vào CS, nó gửi ngay
reply
– Nếu Pi có nhu cầu vào CS, nhưng chưa vào:
• Pi so sánh TS của mình với TS của Pj
• Nếu TS(Pi) > TS(Pj), gửi ngay reply
• Nếu TS(Pi) <= TS(P j), hoãn gửi reply
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 14
Loại trừ tương hỗ phân tán toàn phần (tiế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
vậy, cần có cơ chế giám sát và thông báo tình trạng hoạt động
của mỗi tiến trình.
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 15
Loại trừ tương hỗ dùng thẻ bài
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 16
Loại trừ tương hỗ dùng thẻ bài (tiếp)
• Các tiến trình trong hệ thống hình thành một ring
logic.
• Một thông điệp đặc biệt, gọi là thẻ bài (token)
được lần lượt chuyển đến từng nút quanh ring.
• Nếu một tiến trình nhận được thẻ bài:
– Nếu tiến trình có nhu cầu vào CS, nó vào CS và giữ
thẻ bài. Khi ra khỏi CS, nó chuyển thẻ bài cho tiến
trình kế tiếp trong ring.
– Nếu tiến trình không có nhu cầu vào CS, nó chuyển
ngay thẻ bài cho tiến trình kế tiếp trong ring.
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 17
Loại trừ tương hỗ dùng thẻ bài (tiếp)
• Đặc điểm:
– Đảm bảo được loại trừ tương hỗ
– Loại trừ được hiện tượng “bỏ đói” tiến trình nếu ring
đơn hướng.
• Hạn chế:
– Nếu thẻ bài bị mất hệ thống ngừng hoạt động. Trong
trường hợp này hệ thống phải tạo ra một thẻ bài mới.
– Nếu một tiến trình trong ring gặp trục trặc, hệ thống
cũng ngừng hoạt động. Khi đó, phải tạo ra một ring
mới.
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 18
Bầu chọn người điều phối
• Bài toán:
– Có N tiến trình, có thể trùng ID
– Giả thiết không có tiến trình nào trục trặc
– Phải chọn được co-ordinator chính
– Yêu cầu bầu chọn được đưa ra khi co-ordinator gặp
trục trặc
– Một hoặc nhiều tiến trình có thể yêu cầu bầu chọn
• Yêu cầu:
– Mọi tiến trình biết tiến trình P - ID của người điều phối
(thường P là lớn nhất)
– Tất cả các tiến trình tham gia bầu chọn và tìm ra
người điều phối.
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 19
Thuật toán Chang&Roberts
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 20
Thuật toán Chang&Roberts (tiếp)
• Giả thiết: ring đơn hướng, không đồng bộ và
mỗi tiến trình có ID đơn nhất.
• Bầu chọn:
– Khởi đầu: tất cả các tiến trình đều là non-
participant
– Xác định leader/co-ordinator sử dụng thông điệp
bầu cử (election message):
• Tiến trình kích hoạt bầu chọn trở thành participant và
chuyển ID của nó cho tiến trình tiếp theo.
• Khi một tiến trình non-participant nhận được thông điệp
bầu cử:
– Tìm max(ID của nó, ID vừa nhận được) và chuyển kết quả
cho tiến trình kế tiếp
– Tiến này trở thành participant
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 21
Thuật toán Chang&Roberts (tiếp)
• Tiến trình participant không chuyển tiếp thông
điệp bầu cử
– Thông báo người thắng cuộc sử dụng thông
điệp đã bầu chọn (elected message):
• Nếu một tiến trình participant nhận được thông
điệp bầu cử là ID của chính nó:
– Tiến trình trở thành leader và trở lại là non-participant
– Chuyển ID gói trong thông điệp đã bầu chọn cho tiến
trình kế tiếp
• Ngược lại:
– Tiến trình ghi nhận ID của leader và trở lại là non-
participant
– Chuyển thông điệp đã bầu chọn cho tiến trình kế tiếp
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 22
Thuật toá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
nhất.
– Nếu không tồn tại một ID đơn, lặp lại quá trình
trên.
HĐH mạng nâng cao VI. Điều độ tiến trình phân tán 23
Thuật toán Itai&Rodeh (tiế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.
Các file đính kèm theo tài liệu này:
- he_dieu_hanh_mang_nang_cao_chuong_6_dieu_do_tien_trinh_phan_tan_7691.pdf