Nhóm giải pháp BusyWaiting Sử dụng các biến cờ hiệu Sử dụng việc kiểm tra luân phiên Giải pháp của Peterson Cấm ngắt Chỉ thị TSL Nhóm giải pháp Sleep &Wakeup Semaphore Monitor Message
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 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 găng Không đòi hỏi trợ giúp Hệ điều hành 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ợ 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) P2: Down (s); Job2; Down (s) CS; Up(s) Tổ chức “hò hẹn” 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ò hẹn” Function F2() { ….signal(c); …} 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 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 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 noäi dung CSDL .. .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 găng Không đòi hỏi trợ giúp Hệ điều hành Các giải pháp. .. CPU chưa vào miền găng Cần Hệ điều hành hỗ trợ Semaphore Semaphore s; // s >=0 Down (s) & Up(s) Được hỗ trợ HĐH Tổ chức độc quyền truy xuaát P1 : Job1; Up(s) P 2: Down (s); Job2; Down (s)... dụng biến điều kiện để thực “Hò hẹn” Function F2() { ….signal(c); …} 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 Các toán đồng hoá kinh