1. Trang chủ
  2. » Công Nghệ Thông Tin

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

23 482 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 1,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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

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 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ìnhlại

Trang 5

Cá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 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

Trang 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

Trang 8

Loại trừ tương h ỗ tập trung

Trang 9

Loạ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 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 releasecho co-ordinator

• Khi co-ordinator nhận được thông điệp release, nó xoárequest khỏi hàng đợi

Trang 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ụctrặc Lúc đó cần chọn ra một co-ordinator mới

Trang 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(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 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(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 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:

– 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 15

Loại trừ tương h ỗ dùng th ẻ bài

Trang 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.

Trang 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 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 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ặ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 19

Thu ật toán Chang&Roberts

Trang 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

Trang 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

Trang 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.

Trang 23

Thu ậ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.

Ngày đăng: 22/07/2014, 20:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm