Bài giảng Hệ điều hành nâng cao: Bài 5 - Trần Hạnh Nhi

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

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.