62procedure body Pn (…) {

Một phần của tài liệu giáo trình nguyên lý hệ điều hành Chương 2: QUẢN LÝ TIẾN TRÌNH; CHƯƠNG 3. LẬP LỊCH CPU; CHƯƠNG 4. ĐỒNG BỘ HOÁ TIẾN TRÌNH; CHƯƠNG 5. BẾ TẮC (Trang 42 - 44)

procedure body Pn (…) { . . . } { initialization code } }

Hình 4.3. Mô hình của một monitor đơn giản

Monitor có các đặc tính:Biến cục bộ chỉ có thể truy xuất bởi các thủ tục của monitor. Tiến trình vào monitor bằng cách gọi một trong các thủ tục cục bộ. Chỉ có một tiến trình có thể vào monitor tại một thời điểm nhờ đó độc quyền truy xuất được bảo đảm.

Tuy nhiên, xây dựng monitor như được định nghĩa là không đủ mạnh để mô hình hoá các cơ chế đồng bộ. Chúng ta cần định nghĩa các cơ chế đồng bộ hoá bổ sung. Những cơ chế này được cung cấp bởi các biến điều kiện (condition). Người lập trình có thể định nghĩa một hay nhiều biến kiểu condition:

condition a, b;

Hình 4.4. Monitor có biến điều kiện.

63

tác lên biến điều kiện bằng hai thủ tục wait và signal.

a.wait: tiến trình gọi thủ tục này sẽ bị tạm dừng trên biến điều kiện a. Tiến trình này chỉ có thể tiếp tục thực thi khi có tiến trình khác thực hiện thủ tục a.signal.

a.signal: phục hồi quá trình thực thi của tiến trình bị tạm dừng trên biến điều kiện a. Nếu có nhiều tiến trình thì chỉ chọn một tiến trình. Nếu không có tiến trình thì không làm gì cả.

Việc đồng bộ hóa được thực hiện theo sơ đồ sau:

Hình 4.5. Sơ đồ đồng bộ hóa với monitor.

Các tiến trình có thể đợi ở entry queue hoặc đợi ở các condition queue (a, b,…). Khi thực hiện lệnh a.wait, tiến trình sẽ được chuyển vào condition queue a. Lệnh a.signal chuyển một tiến trình từ condition queue a vào monitor. Khi đó, để bảo đảm độc quyền truy xuất, tiến trình gọi a.signal sẽ bị tạm dừng và được đưa vào urgent queue.

CÂU HỎI ÔN TẬP

1. Tại sao phải giải quyết vấn đề vùng tương tranh?

2. Nêu các điều kiện của giải pháp cho bài toán vùng tương tranh. 3. Nêu các giải pháp đồng bộ hóa cơ bản.

4. Trình bày các bài toán đồng bộ hóa kinh điển.

TÀI LIỆU THAM KHẢO

1. Hồ Đắc Phương. Giáo trình nguyên lý hệ điều hành. Nhà xuất bản Giáo dục, 2009. Chương 6.

2. A.Silberschatz, P. B. Galvin, G. Gagne. Operating System Concepts, 8th Edition. John Wiley & Sons, 2009. Chương 6.

3. William Stallings. Operating Systems: Internals and Design Principles (6th Edition). Pearson Prentice Hall, 2009. Chương 5.

64

Một phần của tài liệu giáo trình nguyên lý hệ điều hành Chương 2: QUẢN LÝ TIẾN TRÌNH; CHƯƠNG 3. LẬP LỊCH CPU; CHƯƠNG 4. ĐỒNG BỘ HOÁ TIẾN TRÌNH; CHƯƠNG 5. BẾ TẮC (Trang 42 - 44)