Bài giảng Hệ điều hành - Chương 5: Đồng bộ phần 3 giúp người học có thể biết được các giải pháp đồng bộ tiến trình theo kiểu “Sleep & Wake up”; áp dụng các giải pháp này vào các bài toán đồng bộ kinh điển. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương 5: Đồng - CuuDuongThanCong.com https://fb.com/tailieudientucntt 01/2015 Mục tiêu Biết giải pháp đồng tiến trình theo kiểu “Sleep & Wake up” bao gồm: Semaphore Critical Region Monitor Áp dụng giải pháp vào toán đồng kinh điển CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Nội dung Các giải pháp “Sleep & Wake up” Semaphore Các toán đồng kinh điển Monitor CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Các giải pháp “Sleep & Wake up” int busy; // =1 CS bị chiếm int blocked; // số P bị khóa do{ if (busy){ blocked = blocked +1; sleep(); } else busy =1; CS; busy = 0; if (blocked !=0){ wakeup (process); blocked = blocked -1; } RS; } while (1); CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Semaphore Một công cụ đảm bảo đồng process mà hệ điều hành cung cấp Semaphore Ý tưởng Semaphore: Semaphore S biến sớ ngun Ngồi thao tác khởi động biến thì Semaphore chỉ truy xuất qua hai hàm có tính đơn nguyên (atomic) wait signal Hàm wait() signal() có tên gọi khác P() V() CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Semaphore Đầu tiên, hàm wait signal thực sau: Tuy nhiên, với cách thực này, vòng lặp “while (S