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ự
Trang 1Hệ đ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
Trang 2Điều độ các tiến trình trong
Trang 3Điều đ ộ các tiến trình
các hệ thống phân tán
(distributed mutual exclusion)
phối hệ thống
Trang 4Tạ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ìnhlại
Trang 5Các khó khăn c ủa v/đ đi ều độ
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.
không phù hợp do master có thể gặp trục trặc.
tiến trình gặp trục trặc).
Trang 6Loạ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
Trang 7Bà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
Trang 8Loại trừ tương h ỗ tập trung
Trang 9Loại trừ tương h ỗ tập trung (ti ếp)
co-ordinator (server) tại điểm vào CS.
gửi một thông điệp request đến co-ordinator.
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 đưarequest đó vào hàng đợi
Trang 10Loạ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 releasecho co-ordinator
• Khi co-ordinator nhận được thông điệp release, nó xoárequest khỏi hàng đợi
Trang 11Loạ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ụctrặc Lúc đó cần chọn ra một co-ordinator mới
Trang 12Loạ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(Pi, 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.
Trang 13Loạ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(Pj,
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 ngayreply
– 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(Pj), hoãn gửi reply
Trang 14Loạ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:
– 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.
Trang 15Loại trừ tương h ỗ dùng th ẻ bài
Trang 16Loạ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.
Trang 17Loạ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 Trongtrườ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ốngcũng ngừng hoạt động Khi đó, phải tạo ra một ringmới
Trang 18Bầ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ặptrụ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
Trang 19Thu ật toán Chang&Roberts
Trang 20Thuậ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
Trang 21Thuậ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
Trang 22Thuậ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.
Trang 23Thu ật toán Itai&Rodeh (ti ếp)
– 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)
– 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.