Slide He dieu hanh HỆ ĐIỀU HÀNH Chương 5 – Đồng bộ (3) 2/12/2020 2/12/2020 Copyrights 2020 CE UIT All Rights Reserved 1 1 Ôn tập chương 5 (2) Khi nào thì xảy ra tranh chấp race condition? Vấn đề Criti[.]
HỆ ĐIỀU HÀNH Chương – Đồng (3) 02/25/2023 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Ôn tập chương (2) Khi xảy tranh chấp race condition? Vấn đề Critical Section gì? Yêu cầu lời giải cho CS problem? Có loại giải pháp? Kể tên? 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Mục tiêu chương (3) 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 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Nội dung chương (2) Các giải pháp “Sleep & Wake up” Semaphore Các toán đồng kinh điển Critical Region Monitor Áp dụng giải pháp vào toán đồng kin h điển 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Các giải pháp “Sleep & Wake up” int busy; // =1 nếu 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); 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Semaphore Là công cụ đồng cung cấp bởi OS mà khơng địi hỏi busy waiting Semaphore S biến số ngun Ngồi thao tác khởi động biến chỉ truy xuất qua hai tác v ụ có́ tính đơn nguyên (atomic) loại trừ (mutual exclusive) wait(S) hay gọi P(S): giảm giá trị semaphore (S=S-1) Kế gi trị âm process thực hiện lệnh wait() bị blocked signal(S) hay gọi V(S): tăng giá trị semaphore (S=S+1) Kế giá trị khơng dương, process blocked bởi lệnh wait() sẽ hồi phục để thực thi Tránh busy waiting: phải đợi process sẽ đặt vào blocke d queue, chứa process chờ đợi cùng sự kiện 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Semaphore (tt) P(S) hay wait(S) sử dụng để giành tài nguyên giảm biến đếm S =S-1 V(S) hay signal(S) sẽ giải phóng tài nguyên tăng biến đếm S= S+1 Nếu P thực hiện biến đếm