Đang chuẩn bị liên kết để tải về tài liệu:
Bài giảng Hệ điều hành: Chapter 5.3 - ThS. Trần Thị Như Nguyệt
Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
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. | Chương 5 Đồng bộ - 3 CuuDuongThanCong.com https fb.com tailieudientucntt 01 2015 Mục tiêu Biết được các giải pháp đồng bộ tiến trình theo kiểu Sleep amp Wake up bao gồm Semaphore Critical Region Monitor Áp dụng các giải pháp này vào các bài toán đồng bộ kinh điển CuuDuongThanCong.com 2 https fb.com tailieudientucntt Đồng bộ Nội dung Các giải pháp Sleep amp Wake up Semaphore Các bài toán đồng bộ kinh điển Monitor CuuDuongThanCong.com 3 https fb.com tailieudientucntt Đồng bộ Các giải pháp Sleep amp Wake up int busy 1 nếu CS đang bị chiếm int blocked số P đang 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 4 https fb.com tailieudientucntt Đồng bộ Semaphore Một trong những công cụ đảm bảo sự đồng bộ của các process mà hệ điều hành cung cấp là Semaphore. Ý tưởng của Semaphore Semaphore S là một biến số nguyên. Ngoài thao tác khởi động biến thì Semaphore chỉ có thể được truy xuất qua hai hàm có tính đơn nguyên atomic là wait và signal Hàm wait và signal còn có tên gọi khác lần lượt là P và V CuuDuongThanCong.com 5 https fb.com tailieudientucntt Đồng bộ Semaphore Đầu tiên hàm wait và signal được hiện thực như sau Tuy nhiên với cách hiện thực này vòng lặp while S Semaphore Hàm wait và signal của Semaphore cải tiến không busy waiting như sau Định nghĩa semaphore là một record typedef struct int value struct process L process queue semaphore Mỗi Semaphore có một giá trị nguyên của nó và một danh sách các process. Khi các process chưa sẵn sàng để thực thi thì sẽ được đưa vào danh sách này. Danh sách này còn gọi là hàng đợi semaphore. Lưu ý Các process khi ra khỏi hàng đợi semaphore sẽ vào hàng đợi Ready để chờ lấy CPU thực thi. Đồng bộ CuuDuongThanCong.com 7 https fb.com tailieudientucntt Semaphore Hàm wait và signal của Semaphore cải tiến không busy waiting như sau Hàm wait và signal được hiện thực như sau void wait semaphore S S.value-- Lập trình thực tế tùy if .