Tải bản đầy đủ (.ppt) (7 trang)

BÀI 5 : CÁC GIẢI PHÁP ĐỒNG BỘ HOÁ pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (107.66 KB, 7 trang )

1
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
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
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ợ
4
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;
5

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); …}
6
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
7
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)
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

×