1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Chương 6 Thuật toán loại trừ tương hỗ và bầu cử potx

45 1,8K 5
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

Tiêu đề Chương 6 Thuật Toán Loại Trừ Tương Hỗ Và Bầu Cử
Trường học Duy Tan University
Chuyên ngành Hệ Thống Thao Tác Đa Nhiệm
Thể loại Bài giảng
Thành phố Đà Nẵng
Định dạng
Số trang 45
Dung lượng 820,5 KB

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

Nội dung

Thuật toán Central Coordinator• Một tiến trình được bầu chọn làm điều phối viên coordinator • Điều phối viên trung tâm cấp quyền để nhập vào CS - Để nhập CS, tiến trình gửi một tin nhắn

Trang 2

NỘI DUNG

Giới thiệu

Loại trừ tương hỗ không dựa trên Token

Loại trừ tương hỗ dựa trên Token

Thuật toán bầu cử

Kết luận

DUYTAN

UNIVERSITY

Trang 4

• Loại trừ tương hỗ : là quá trình truy

cập đồng thời của các tiến trình với một tài nguyên hoặc dữ liệu được chia sẻ,

thực hiện theo cách loại trừ lẫn nhau.

• Trong hệ thống phân tán không có các biến chia sẻ có thể sử dụng để thực hiện loại trừ lẫn nhau.

DUYTAN

UNIVERSITY

Loại trừ tương hỗ (Mutual Exclusion)

GIỚI THIỆU

Trang 5

• Đối với tài nguyên được quản lý bởi một máy chủ

mà thực hiện với khóa riêng của mình cùng với các cơ chế cần thiết để đồng bộ hóa các truy cập vào các

nguồn tài nguyên thì loại trừ tương hỗ và đồng bộ hóa

là liên quan trong suốt cho quá trình truy cập vào các tài nguyên này (xãy ra cho các hệ thống cơ sở dữ liệu

xử lý giao dịch)

• Thường thì có không đồng bộ hóa được xây dựng trong thực hiện bảo vệ các nguồn tài nguyên (file, hiển thị cửa sổ, các thiết bị ngoại vi, ) 

GIỚI THIỆU

Loại trừ tương hỗ (Mutual Exclusion)

Trang 6

• Để xử lý nhiều tiến trình thường sử dụng nhiều vùng găng

- Khi một tiến trình yêu cầu đọc hoặc cập nhật liệu, đầu tiên đi vào một vùng găng để loại trừ lẫn nhau và đảm bảo rằng không có quá trình khác sẽ sử dụng cấu trúc dữ liệu được chia sẻ cùng một lúc

• Loại trừ tương hỗ thông qua :

- Kiểm tra và thiết lập phần cứng

Trang 7

• Thuật toán loại trừ tương hỗ phải đối phó với sự chậm trễ thông điệp và thiếu hoặc không đoán

trước thông tin về trạng thái của hệ thống

•Ba cách tiếp cận cơ bản để loại trừ lẫn nhau trong

hệ thống phân tán:

1 Phương pháp tiếp cận dựa trên Token

2 Phương pháp tiếp cận không dựa trên Token

3 Phương pháp tiếp cận dựa trên Quorum

Loại trừ tương hỗ đối với hệ thống phân tán

Trang 8

Phương pháp tiếp cận dựa trên Token

• Một thẻ bài(token) duy nhất được chia sẻ giữa các site

• Một site được phép vào CS của nó nếu nó sở hữu token.

• Loại trừ lẫn nhau được đảm bảo bởi vì token

là duy nhất.

• Các thuật toán tiêu biểu : Token Ring, Agrawala Second

Trang 9

Ricart-• Sử dụng hai hoặc nhiều vòng liên tiếp các thông điệp được trao đổi giữa các site để xác định site đó

sẽ nhập vào CS tiếp theo

• Các thuật toán tiêu biểu: Central Coordinator, Ricart- Agrawala

Phương pháp tiếp cận không dựa trên Token

Trang 10

DUYTAN

UNIVERSITY

Phương pháp tiếp cận dựa trên Quorum

• Mỗi site yêu cầu sự cho phép để thực hiện CS từ một tập hợp con của các site (được gọi là một số đại biểu cần thiết)

• Hai Qourum bất kỳ chứa một common site

• Common site này chịu trách nhiệm để đảm bảo rằng chỉ có một yêu cầu được thực hiện ở bất cứ lúc nào

Trang 11

Thuật toán Central Coordinator

• Một tiến trình được bầu chọn làm điều phối viên (coordinator)

• Điều phối viên trung tâm cấp quyền để nhập vào CS

- Để nhập CS, tiến trình gửi một tin nhắn yêu cầu với điều phối viên và sau đó chờ đợi trả lời (trong thời gian chờ đợi quá trình có thể tiếp tục với các công việc khác)

- Trả lời từ điều phối viên cho quyền vào CS

- Sau khi hoàn thành công việc trong CS, tiến trình thông báo cho điều phối viên

Trang 12

DUYTAN

UNIVERSITY

Thuật toán Central Coordinator

Trang 13

• Lược đồ này là đơn giản và dễ thực hiện.

• Chiến lược này đòi hỏi có chỉ ba tin nhắn mỗi lần yêu cầu sử dụng trên CS

Vấn đề xãy ra :

- Điều phối viên có thể trở thành quá tải  thắt cổ chai

- Điều phối viên “chết”  thất bại của critical point :

+ Nếu điều phối viên bị treo, một điều phối viên mới phải được tạo

+ Điều phối viên có thể là một trong những tiến trình cạnh tranh để truy cập, một thuật toán bầu cử đã được chạy trong để chọn một và chỉ có một điều phối viên mới được chọn

Thuật toán Central Coordinator

Trang 14

DUYTAN

UNIVERSITY

Thuật toán Ricart-Agrawala

• Trong môi trường phân tán, thuật toán này sử dụng multicast và đồng hồ logic (không sử dụng điều phối viên trung tâm).

• Giả định các kênh truyền thông thực hiện theo quy tắc FIFO

• Sử dụng hai loại thông điệp: REQUEST và REPLY

Trang 15

• Tiến trình yêu cầu đăng nhập vào CS phải :

- Soạn thông điệp có chứa:

+Identifier (machine ID, process ID)

+Tên tài nguyên

+Nhãn/dấu thời gian Lamport (dấu thời gian hoàn toàn phần Lamport)

- Gởi thông báo yêu cầu đến tất cả các tiến trình khác cạnh tranh với cùng một tài nguyên

- Nó được cho phép nhập vào CS khi tất cả các tiến trình đã trả lời tin nhắn này cho phép

- Truy cập vào găng, sử dụng tài nguyên

Thuật toán Ricart-Agrawala

Trang 16

DUYTAN

UNIVERSITY

• Khi các tiến trình nhận yêu cầu:

- Nếu tiến trình nhận không quan tâm: gởi OK đến tiến trình gởi

- Nếu tiến trình đang ở trong CS : Không trả lời và add

yêu cầu vào hàng đợi

- Nếu tiến trình vừa nhận/ gởi thông điệp :

+So sánh nhãn thời gian  Sớm nhất sẽ chiến thắng

+Nếu tiến trình nhận thua cuộc : gởi OK

+Nếu tiến trình nhận thắng cuộc, không trả lời và add

vào hàng đợi

• Khi tiến trình thực hiện xong trên CS

- Gởi OK đến tất cả các tiến trình trên hàng đợi

Thuật toán Ricart-Agrawala

Trang 17

Thuật toán Ricart-Agrawala

Trang 18

- Sự thất bại của bất kỳ tiến trình tham gia ngăn chặn hoạt động tiến trình khác nếu không có biện pháp phục hồi đặc biệt được thực hiện.

Thuật toán Ricart-Agrawala

Trang 19

Thuật toán Lamport

• Mỗi tiến trình duy trì yêu cầu hàng đợi

- Có yêu cầu loại trừ lẫn nhau

• Yêu cầu critical section:

- Tiến trình Pi gởi request(i, T i) đến tất các các node

- Yêu cầu vị trí trên hàng đợi riêng của nó

- Khi 1 tiến trình Pj nhận một yêu cầu, nó trả về một nhãn thời gian ack

Lamport time

Trang 20

DUYTAN

UNIVERSITY

Đăng nhập vào CS:

- Pi nhận được một tin nhắn (ack hoặc release) từ mỗi

tiến trình khác với một dấu thời gian lớn hơn Ti

- Yêu cầu của Pi có dấu thời gian sớm nhất trong hàng đợi của nó

- Sự khác biệt với Ricart-Agrawala:

+ Mọi tiến trình đều đáp ứng trở lại

+ Tiến trình quyết định dựa trên xem yêu cầu của nó là sớm nhất trong hàng đợi của nó

Thuật toán Lamport

Trang 21

Releasing critical section:

- Hủy bỏ yêu cầu từ hàng đợi của chính nó

- Gởi 1 nhãn thời gian thông điệp release

- Khi một tiến trình nhận được một thông điệp release

+ Loại bỏ yêu cầu cho tiến trình đó từ hàng đợi của nó

 Điều này có thể gây ra cho nó có dấu thời gian sớm nhất trong hàng đợi  cho phép nó để truy cập vào CS

Thuật toán Lamport

Trang 22

DUYTAN

UNIVERSITY

Thuật toán Token Ring

• Đơn giản nhất để giải quyết loại trừ lẫn nhau :

sắp xếp n tiến trình P1, P2, Pn trong một vòng logic

• Vòng tròn logic được tạo ra bằng cách cho mỗi tiến

trình địa chỉ của một tiến trình khác là láng giềng của

mình theo hướng chiều kim đồng hồ

• Vòng tròn logic không liên quan đến các mối liên kết vật lý giữa các máy tính

Trang 23

• Thuật toán

- Token được khởi tạo cho 1 tiến trinh nào đó

- Token được truyền từ 1 tiến trình đến tiến trình láng giềng của nó quanh vòng tròn

- Khi 1 tiến trình yêu cầu đăng nhập vào CS, nó sẽ đợi cho đến khi nó nhận 1 token từ tiến trình láng giềng bên trái của nó và sau đó nó giữ lại nó, sau khi lấy token nó nhập vào

- CS, sau khi nó rời khỏi CS, nó trả lại token cho tiến trình hàng xóm của mình theo ngược chiều kim đồng

Trang 24

DUYTAN

UNIVERSITY

• Nó có thể mất từ 1 đến n-1 tin nhắn để có được token.Tin nhắn được gửi quanh vòng ngay cả khi tiến trình không yêu cầu token

 Thuật toán này hoạt động tốt trong các trạng thái tải nặng, khi có một xác suất cao mà tiến trình nhận được token muốn vào CS Nó hoạt động kém trong các trường hợp tải nhẹ

• Nếu một tiến trình lỗi, tiến trình không thể được thực hiện cho đến khi cấu hình lại được áp dụng để trích xuất các tiến trình

từ vòng.

• Nếu quá trình nắm giữ token không thành công, một tiến trình duy nhất có thể được chọn, sẽ tạo lại token và vượt qua nó dọc theo vòng tròn

Thuật toán Token Ring

Trang 25

• Ưu điểm

- Đảm bảo loại trừ tương hỗ

- Xác định được thứ tự của các tiến trình

- Hiện tượng “đói - Starvation” tài nguyên xãy ra khi

số tiến trình quá lớn

• Các vấn đề xãy ra

- Nếu bị mất thẻ (quá trình chết) hệ thống có khả

năng rơi vào tình trạng bế tắc

• Không đảm bảo trật tự theo FIFO

- Xãy ra : tiến trình khác thực hiện không mong muốn

Thuật toán Token Ring

Trang 26

DUYTAN

UNIVERSITY

Thuật toán Ricart-Agrawala Second

• Đây là thuật toán cải tiến của Agrawala đầu tiên, nhưng sử dụng token, nhằm:

- Giảm lưu lượng thông điệp trao đổi

- Khắc phục trường hợp khi có tiến trình chết làm ngăn chặn hoạt động của tiến trình khác

Trang 27

THUẬT TOÁN BẦU CỬ

• Nhiều thuật toán được sử dụng trong các hệ thống phân tán yêu cầu một điều phối viên.

Ví dụ, các thuật toán loại trừ tương hỗ trong thuật toán Central Coordinator

• Thuật toán bầu cử được thiết kế lựa nhằm chọn một điều phối viên.

Trang 28

- Không có tác hại (không mở rộng thêm lưu lượng) trong nhiều cuộc bầu cử đồng thời

• Bầu cử có thể cần thiết khi hệ thống được khởi tạo, hoặc nếu điều phối viên bị treo hoặc chết

THUẬT TOÁN BẦU CỬ

Trang 30

- mỗi tiến trình Pi này có tham số ei để giữ số tiến trình của điều phối viên

+ i, ei = không xác định hoặc ei = P, trong ∀

đó P là tiến trình không bị rơi với id cao nhất + Tất cả các tiến trình thiết lập ei = P, hoặc quá trình khác đã bị lỗi hoặc chết

THUẬT TOÁN BẦU CỬ

Trang 31

Thuật toán Bully

• Tiến trình P gởi thông điệp election đến tất cả tiến trình với ID cao hơn nếu phát hiện điều phối viên bị lỗi hoặc chết

• Tiến trình có số hiệu cao "kẻ bắt nạt -bully“, loại tiến trình có số hiệu thấp khỏi cuộc bầu cử, cho đến khi chỉ có một tiến trình vẫn còn duy trì

• Khi một tiến trình khởi động lại, nó kích hoạt một cuộc bầu cử Nếu nó có số hiệu cao nhất,

nó sẽ giành chiến thắng.

Trang 32

DUYTAN

UNIVERSITY

• Tiến trình P sẽ gửi một tin nhắn bầu cử cho tất cả các tiến trình số hiệu cao hơn trong hệ thống Nếu tiến trình không phản hồi, P sẽ trở thành điều phối viên Nếu một tiến trình số hiệu cao hơn (Q) phản ứng, nó sẽ gửi P tin nhắn : chấm dứt vai trò của P của trong thuật toán

2

1

5 6

3 7

0 4

0

OK election

election election

Thuật toán Bully

Trang 33

6

3 7

3 7

0 4

2 4 0

OK election

election election

Thuật toán Bully

Trang 34

nó và sau đó gửi n-2 thông điệp điều phối viên

có định danh thấp nhất bắt đầu cuộc bầu cử, nó

sẽ gửi : n-1 tin nhắn bầu cử đến các tiến trình

mà bản thân chúng bắt đầu đến mỗi người trong một cuộc bầu cử : O (n2) tin nhắn

Thuật toán Bully

Trang 35

Thuật toán Ring

• Thuật toán này giả định rằng các tiến trình được sắp xếp trong một vòng logic và mỗi tiến trình được biết thứ tự của các tiến trình trên vòng

• Quá trình này có thể “dừng lại " hệ thống bị lỗi: thay vì gửi đến tiến trình j, gửi cho k + 1.

• Hệ thống bị lỗi là không có phản hồi trong một khoảng thời gian cố định.

Trang 36

DUYTAN

UNIVERSITY

• P nghĩ rằng điều phối viên đã bị chết, xây dựng một thông điệp bầu cử, trong đó có số ID riêng của mình

• Gởi đến tiến trình sống đầu tiên

• Mỗi quá trình thêm số hiệu riêng của nó và chuyển

Trang 37

• Khi tin nhắn trả về P (kiểm tra trên danh sách), nó thấy quá trình ID riêng của mình trong danh sách và biết rằng vòng tròn là hoàn tất.

• P lưu thông điệp Coordinator với số hiệu mới cao nhất

Trang 38

DUYTAN

UNIVERSITY

KẾT LUẬN

Trong môi trường phân tán không có biến chia

sẻ (Semaphores) và kernel địa phương sử dụng

để thực hiện loại trừ tương hỗ

• Có hai phương pháp : Dựa vào token và không dựa vào token

• Thuật toán Central Coordinator dựa trên

biến điều phối viên sẵn có của một quá trình

mà xử lý tất cả các yêu cầu và cung cấp độc quyền truy cập tài nguyên

Trang 39

• Thuật toán Ricart-Agrawala được dựa trên thỏa

thuận phân tán hoàn toàn loại trừ lẫn nhau Một yêu cầu multicast cho tất cả các quá trình cạnh tranh với một nguồn tài nguyên và truy cập được cung cấp khi tất cả các tiến trình đã trả lời yêu cầu Thuật toán là tốn kém

về lưu lượng truy cập tin nhắn, và thất bại bất kỳ tiến trình nào cũng ngăn chặn sự hoạt động của tiến trình

KẾT LUẬN

Trang 40

KẾT LUẬN

Trang 41

• Thuật toán Token Ring rất đơn giản giải

quyết loại trừ lẫn nhau Được yêu cầu rằng các quy trình được sắp xếp một trên vòng tròn ảo Các token là vĩnh viễn thông qua từ một tiến trình khác và tiến trình hiện đang nắm giữ token

có độc quyền đối với các nguồn tài nguyên Thuật toán này hiệu quả trong các tình huống nặng nề về tải.

KẾT LUẬN

Trang 42

DUYTAN

UNIVERSITY

• Đối với các ứng dụng phân tán bầu cử là cần thiết để chọn một điều phối viên được thỏa thuận trong số tất cả các tiến trình

• Thuật toán Bully đòi hỏi các tiến trình để biết chính

xác của tất cả các tiến trình khác, tiến trình với định danh cao nhất, trong số những tiến trính đó là được chọn Tiến trình được phép thất bại trong quá trình bầu cử

• Thuật toán Ring-based đòi hỏi tiến trình này được bố

trí trong một vòng logic với định danh cao nhất được

chọn Về tính trung bình, các thuật toán dựa trên Ring

là hiệu quả hơn sau đó các thuật toán Bully.

KẾT LUẬN

Trang 43

TÀI LIỆU THAM KHẢO

[1] Colin J Fidge (February 1988)

"Timestamps in Message-Passing Systems That Preserve the Partial Ordering"

In K Raymond (Ed.) Proc of the 11th Australian Computer Science

Conference (ACSC'88) pp 56–66 Retrieved 2009-02-13.

[2].Mattern, F (October 1988), "Virtual Time and Global States of Distributed Systems", in Cosnard, M., Proc Workshop on Parallel and Distributed

Algorithms, Chateau de Bonas, France: Elsevier, pp 215–226

[3].lmeida, Paulo; Baquero, Carlos; Fonte, Victor (2008),

"Interval Tree Clocks: A Logical Clock for Dynamic Systems" , in Baker,

Theodore P.; Bui, Alain; Tixeuil, Sébastien, Principles of Distributed Systems,

Lecture Notes in Computer Science, 5401, Springer-Verlag, Lecture Notes in Computer Science, pp 259–274

[4] Torres-Rojas, Francisco; Ahamad, Mustaque (1999), "Plausible clocks: constant size logical clocks for distributed systems", Distributed Computing (Springer Verlag) 12 (4): 179–195

Trang 44

DUYTAN

UNIVERSITY

TÀI LIỆU THAM KHẢO

1993

Trang 45

THANKS !

Ngày đăng: 07/03/2014, 08:20

TỪ KHÓA LIÊN QUAN

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

w