Bài giảng Hệ điều hành nâng cao - Bài 5: Các giải pháp đồng bộ hóa

ppt 7 trang Hùng Dũng 04/01/2024 190
Bạn đang xem tài liệu "Bài giảng Hệ điều hành nâng cao - Bài 5: Các giải pháp đồng bộ hóa", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_he_dieu_hanh_nang_cao_bai_5_cac_giai_phap_dong_bo.ppt

Nội dung text: Bài giảng Hệ điều hành nâng cao - Bài 5: Các giải pháp đồng bộ hóa

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