CHƯƠNG 15 ĐIỀU PHỐI VÀ THỎA THUẬNMột ví dụ đặc biệt thú vị là nơi có không có máy chủ, và một tập hợp các quá trình ngang phải phối hợp của đường dẫn truy cập đến các tài nguyên được chia sẻ giữa mình. Điều này xảy ra thường xuyên trên mạng như Ethernets và mạng không dây IEEE 802.11 trong chế độ 'quảng cáo hoc', nơi giao diện mạng hợp tác như đồng nghiệp như vậy chỉ có một nút đó truyền tại một thời điểm trên phương tiện được chia sẻ. Xem xét, ngoài ra, một hệ thống giám sát số vị trí trong một công viên xe hơi với một quá trình mỗi lối vào và lối ra mà theo dõi số lượng xe vào và để lại. Mỗi quá trình giữ số lượng tổng số xe trong bãi đậu xe và hiển thị hay không nó là đầy đủ. Các quá trình phải Cập Nhật đếm số lượng xe, chia sẻ một cách nhất quán. Có một số cách để đạt được mà, nhưng nó sẽ là thuận tiện cho các quy trình để có thể để có được loại trừ lẫn nhau chỉ bằng cách giao tiếp với nhau, loại bỏ sự cần thiết cho một máy chủ riêng biệt. Nó là hữu ích để có một cơ chế chung để phân phối các loại trừ lẫn nhau lúc xử lý của chúng tôi-một trong đó là độc lập của các chương trình quản lý tài nguyên cụ thể trong câu hỏi. Chúng tôi bây giờ kiểm tra một số thuật toán để đạt được mà.15.2.1 thuật toán để lẫn nhau loại trừ chúng ta xem xét một hệ thống của N quá trình pi tôi 12} N =, mà không chia sẻ biến. Các quá trình truy cập vào tài nguyên phổ biến, nhưng họ làm như vậy trong một phần quan trọng. Vì lợi ích của sự đơn giản, chúng tôi giả định rằng đó là chỉ có một phần quan trọng. Nó là đơn giản để mở rộng các thuật toán mà chúng tôi trình bày cho nhiều hơn một phần quan trọng. Chúng tôi giả định rằng hệ thống là không đồng bộ, quá trình không và gửi tin nhắn đó là đáng tin cậy, vì vậy rằng bất kỳ thư nào được gửi cuối cùng được chuyển giao nguyên vẹn, đúng một lần. Giao thức ứng dụng cấp để thực hiện một phần quan trọng là như sau: enter() / / nhập phần quan trọng-chặn nếu cần thiết resourceAccesses() / / truy cập các tài nguyên được chia sẻ trong phần quan trọng exit() / / để lại phần quan trọng-các quy trình khác bây giờ có thể nhập các yêu cầu thiết yếu đối với loại trừ lẫn nhau như sau: ME1: (an toàn) tối đa một quá trình có thể thực hiện trong phần quan trọng (CS) tại một thời điểm. ME2: (liveness) các yêu cầu để nhập và thoát khỏi phần quan trọng cuối cùng thành công. Điều kiện ME2 ngụ ý tự do từ bế tắc và nạn đói. Một bế tắc nào liên quan đến hai hoặc nhiều hơn các quá trình trở nên khó khăn vô hạn định trong khi cố gắng vào hay ra khỏi phần quan trọng, bởi Đức hạnh của họ phụ thuộc lẫn nhau lẫn nhau. Nhưng ngay cả khi không một bế tắc, một thuật toán nghèo có thể dẫn đến đói: hoãn vô hạn của các mục nhập cho một quá trình đã yêu cầu nó. Sự vắng mặt vì đói là một điều kiện công bằng. Một vấn đề khác công bằng là thứ tự trong đó quy trình nhập phần quan trọng. Nó là không thể để vào phần quan trọng của times rằng các quá trình yêu cầu nó, bởi vì sự vắng mặt của toàn cầu đồng hồ. Tuy nhiên, một yêu cầu sự công bằng hữu ích đôi khi làm cho làm cho việc sử dụng xảy ra trước đặt hàng (phần 14.4) giữa các thư yêu cầu nhập cảnh để phần quan trọng:
đang được dịch, vui lòng đợi..
