BÀI : CÁC GIẢI PHÁP ĐỒNG BỘ HOÁ Nhóm giải pháp Busy Waiting Sử dụng biến cờ hiệu Sử dụng việc kiểm tra luân phiên Giải pháp Peterson Cấm ngắt Chỉ thị TSL Nhóm giải pháp Sleep & Wakeup Semaphore Monitor Message CuuDuongThanCong.com https://fb.com/tailieudientucntt Các giải pháp “Busy waiting” While (chưa có quyền) donothing() ; CS; Từ bỏ quyền sử dụng CS Tiếp tục tiêu thụ CPU chờ đợi vào miền ga Không đòi hỏi trợ giúp Hệ điều hành CuuDuongThanCong.com https://fb.com/tailieudientucntt Các giải pháp “Sleep & Wake up” if (chưa có quyền) Sleep() ; CS; Wakeup( somebody); Từ bỏ CPU chưa vào miền găng Cần Hệ điều hành hỗ trợ CuuDuongThanCong.com https://fb.com/tailieudientucntt Semaphore Semaphore s; // s >=0 Down (s) & Up(s) Được hỗ trợ HĐH Tổ chức độc quyền truy xuất P1 : Job1; Up(s) CuuDuongThanCong.com P2: Down (s); Job2; Down (s) CS; Up(s) Tổ chức “hò heïn” https://fb.com/tailieudientucntt Monitor Monitor m int x; Condition c; Function F1() { ….wait(c); …} Được hỗ trợ NNLT Bảo đảm độc quyền truy xuất tự động Sử dụng biến điều kiện để thực “Hò heïn” Function F2() { ….signal(c); …} CuuDuongThanCong.com https://fb.com/tailieudientucntt Message Send Request Server Send Finish P Receive Accept Được hỗ trợ HĐH Đồng hóa môi trường phân tán CuuDuongThanCong.com https://fb.com/tailieudientucntt Các toán đồng hoá kinh điển Producer-Consumer P P không ghi liệu vào buffer đầy Buffer (N) C R2 R3 R1 W1 W2 Database CuuDuongThanCong.com C không đọc liệu từ buffer trống P C không thao tác buffer lúc Readers - Writers W không cập nhật liệu có R truy xuất CSDL Tại thời điểm , cho phép Wđược sửa đổi nội dung CSDL https://fb.com/tailieudientucntt ... Producer-Consumer P P không ghi liệu vào buffer ñaày Buffer (N) C R2 R3 R1 W1 W2 Database CuuDuongThanCong.com C không đọc liệu từ buffer trống P C không thao tác buffer lúc Readers - Writers