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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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ợ SinhVienZone.com https://fb.com/sinhvienzonevn 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) SinhVienZone.com P2: Down (s); Job2; Down (s) CS; Up(s) Tổ chức “hò heïn” https://fb.com/sinhvienzonevn 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); …} SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.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/sinhvienzonevn ... https://fb .com/ sinhvienzonevn 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ợ SinhVienZone. com https://fb .com/ sinhvienzonevn... …} SinhVienZone. com https://fb .com/ sinhvienzonevn 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 SinhVienZone. com https://fb .com/ sinhvienzonevn.. .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 SinhVienZone. com