6.3.2 Thuật toán nhị phân hẹn
thuật toán khác nhau đã được đề xuất để thực hiện điểm hẹn nhị phân trong năm 1980 [1, 16]. Các thuật toán này thường chia sẻ các tính năng sau đây. Tại mỗi quá trình, có một tập hợp các thẻ đại diện cho sự tương tác hiện tại mà được kích hoạt tại địa phương. Nếu có nhiều tương tác được kích hoạt, một quá trình lựa chọn một trong số họ và cố gắng để "đồng bộ hóa" với quá trình đối tác. Vấn đề làm giảm đến một trong những thông điệp lịch đáp ứng các hạn chế sau đây:
• Lịch trình điện on-line, nguyên tử, và trong một cách thức phân phối, tức là, các schedul- ing mã ở bất kỳ quá trình nào không biết mã ứng dụng của các quá trình khác.
• Schedule trong một cách bế tắc-free (tức là, vương miện-free), như vậy mà cả
người gửi và người nhận được kích hoạt cho một tin nhắn khi nó được lên kế hoạch.
Schedule • để thoả mãn tính tiến triển (tức là, tìm một lịch trình trong một
số bị chặn bước) ngoài sự an toàn (tức là, đúng đắn) tài sản. Các tính năng khác của một thuật toán tốt là: (i) đối xứng hoặc một số hình thức của sự công bằng, tức là, không ưu quy trình cụ thể hơn những người khác trong quá trình lập kế hoạch, và (ii) hiệu quả, tức là sử dụng . như vài tin nhắn càng tốt, và liên quan đến thấp một trên không gian càng tốt Hiện nay chúng tôi vạch ra một thuật toán đơn giản bởi Bagrodia [1] mà làm cho các giả định rống fol: 1. Nhận lệnh được mãi mãi kích hoạt từ tất cả các quy trình. 2. Một lệnh gửi, khi được kích hoạt, vẫn được kích hoạt cho đến khi nó hoàn thành, tức là, nó không thể là một lệnh gửi bị vô hiệu hóa (bởi bảo vệ của nó bị làm giả) trước khi gửi được thực thi. 3. Để ngăn chặn bế tắc, quá trình định danh được sử dụng để giới thiệu bất đối xứng để phá vỡ thân răng tiềm năng phát sinh. 4. Mỗi quá trình cố gắng để sắp xếp chỉ có một gửi sự kiện bất cứ lúc nào. Các thuật toán minh họa cách vương miện-free lịch tin đạt được trên mạng. Các loại tin nhắn được sử dụng là: (i) M, (ii) ack (M), (iii) yêu cầu (M), và (iv) sự cho phép (M). Một khối xử lý khi nó biết rằng nó có thể thành công hội chứng chronize thông điệp hiện tại với quá trình đối tác. Mỗi quá trình duy trì một hàng đợi đó được xử lý trong FIFO để chỉ khi quá trình là cấm. Khi một tiến trình bị chặn chờ đợi cho một thông điệp cụ thể mà mình đang được đồng bộ hóa, bất kỳ thông điệp khác mà đến được xếp hàng. Sự kiện Execution trong việc thực hiện đồng bộ là chỉ send của nhà hiền triết bày những thông điệp M và nhận các thông điệp M. gửi và nhận các sự kiện cho các loại tin nhắn khác - ack (M), yêu cầu (M), và cho phép (M) trong đó là những tin nhắn trol con- - là dưới chăn, và không bao gồm trong việc thực hiện đồng bộ. Các thông điệp yêu cầu (M), ack (M), và cho phép (M) sử dụng thẻ duy nhất của M; thông điệp M không được bao gồm trong các thư này. Chúng tôi sử dụng SEND vốn cap- (M) và NHẬN (M) để biểu thị nguyên thủy trong các ứng dụng thực hiện, trường hợp thấp hơn gửi và nhận được sử dụng cho các bản tin điều khiển. Các thuật toán để thi hành lệnh đồng bộ được đưa ra trong Algorithm 6.1. Các quy tắc quan trọng để ngăn chặn chu kỳ trong các thông điệp được tóm tắt như sau và minh họa trong Figure6.9: • Để gửi cho một quá trình ưu tiên thấp hơn, các thông điệp M và ACK (M) đều tham gia trong trật tự. Các vấn đề người gửi gửi (M) và khối cho đến khi ack (M) đến. Vì vậy, khi gửi đến một quá trình ưu tiên thấp hơn, các khối sender chờ đợi cho quá trình đối tác để đồng bộ hóa và gửi một sự thừa nhận. • Để gửi cho một quá trình ưu tiên cao hơn, thông điệp yêu cầu (M), cho phép (M), và M đều tham gia, theo thứ tự đó. Các vấn đề người gửi gửi (theo yêu cầu (M)), không ngăn chặn được, và đang chờ sự cho phép. Khi phép (M) đến, các vấn đề người gửi gửi (M).
đang được dịch, vui lòng đợi..
