Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,79 MB
Nội dung
Chương 5: Đồng - SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn Đồng Nội dung Các giải pháp “Sleep & Wake up” Semaphore Các toán đồng kinh điển Monitor SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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); SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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() SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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