Rate this post

Phương pháp Turn Variable hoặc Strict Alternation Approach là cơ chế phần mềm được triển khai ở chế độ người dùng. Đây là một giải pháp chờ đợi bận rộn chỉ có thể được thực hiện cho hai process. Trong cách tiếp cận này, biến A được sử dụng thực sự là một khóa.

Các bài viết liên quan:

Cách tiếp cận này chỉ có thể được sử dụng cho hai process. Nói chung, cho hai quá trình là Pi và Pj. Chúng dùng chung một biến được gọi là biến lần lượt. Mã giả của chương trình có thể được đưa ra như sau.

Đối với quá trình Pi

Non - CS   
while (turn ! = i);   
Critical Section   
turn = j;   
Non - CS  

Đối với process Pj

Non - CS   
while (turn ! = j);  
Critical Section   
turn = i ;  
Non - CS   

Vấn đề thực tế của phương pháp tiếp cận biến khóa là thực tế là quá trình chỉ đi vào phần quan trọng khi biến khóa là 1. Nhiều hơn một quá trình có thể xem biến khóa là 1 cùng một lúc, do đó việc loại trừ lẫn nhau không được đảm bảo ở đó.

Vấn đề này được giải quyết trong phương pháp tiếp cận biến lần lượt. Bây giờ, một process chỉ có thể nhập vào phần quan trọng trong trường hợp giá trị của biến lần lượt bằng PID của process.

Chỉ có hai giá trị có thể cho biến lần lượt, i hoặc j. nếu giá trị của nó không phải là i thì nó chắc chắn sẽ là j hoặc ngược lại.

Xem thêm Kiểm tra lỗ hổng HTTP Strict Transport Security

Trong phần nhập, nói chung, quá trình Pi sẽ không nhập vào phần quan trọng cho đến khi giá trị của nó là j hoặc quá trình Pj sẽ không nhập vào phần quan trọng cho đến khi giá trị của nó là i.

Ban đầu, hai tiến trình Pi và Pj có sẵn và muốn thực thi vào phần quan trọng.

Biến số lượt đi bằng i do đó Pi sẽ có cơ hội vào phần quan trọng. Giá trị của Pi vẫn là I cho đến khi Pi kết thúc phần tới hạn.

Pi kết thúc phần tới hạn của nó và gán j để biến biến. Pj sẽ có cơ hội vào phần quan trọng. Giá trị của lần lượt vẫn là j cho đến khi Pj kết thúc phần quan trọng của nó.

Xem thêm Cơ chế Interested Variable trong hệ điều hành

Phân tích Turn Variable hay Strict Alternation Approach

Hãy phân tích cách tiếp cận Thay thế nghiêm ngặt trên cơ sở bốn yêu cầu.

Mutual Exclusion

Phương pháp luân phiên nghiêm ngặt cung cấp sự Mutual Exclusion trong mọi trường hợp. process này chỉ hoạt động cho hai process. Mã giả khác nhau cho cả hai process. Quá trình sẽ chỉ tham gia khi nó thấy rằng biến lượt bằng với ID tiến trình của nó, nếu không thì không Do đó không có quá trình nào có thể vào phần quan trọng bất kể lượt của nó.

Progress

Progress không được đảm bảo trong cơ chế này. Nếu Pi không muốn vào phần quan trọng trong lượt của mình thì Pj đã bị chặn trong thời gian vô hạn. Pj phải đợi quá lâu cho đến lượt vì biến lượt sẽ vẫn là 0 cho đến khi Pi gán nó cho j.

Portability

Giải pháp cung cấp tính Portability. Đây là một cơ chế phần mềm thuần túy được triển khai ở chế độ người dùng và không cần bất kỳ hướng dẫn đặc biệt nào từ Hệ điều hành.

Xem thêm Từ khóa This trong Dart

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now