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 - Trần Hạnh Nhi
BAØI 5 : CAÙC GIAÛI PHAÙP ÑOÀNG BOÄ
HOAÙ
◼ Nhoùm giaûi phaùp Busy Waiting
◼
◼
◼
◼
◼
Söû duïng caùc bieán côø hieäu
Söû duïng vieäc kieåm tra luaân phieân
Giaûi phaùp cuûa Peterson
Caám ngaét
Chæ thò TSL
◼ Nhoùm giaûi phaùp Sleep & Wakeup
◼
◼
◼
Semaphore
Monitor
Message
1
Caùc giaûi phaùp “Busy waiting”
While (chöa coù quyeàn) donothing() ;
CS;
Töø boû quyeàn söû duïng CS
▪ Tieáp tuïc tieâu thuï CPU trong khi chôø ñôïi vaøo mieàn ga
▪ Khoâng ñoøi hoûi söï trôï giuùp cuûa Heä ñieàu haønh
2
Caùc giaûi phaùp “Sleep & Wake up”
if (chöa coù quyeàn) Sleep() ;
CS;
Wakeup( somebody);
▪ Töø boû CPU khi chöa ñöôïc vaøo mieàn gaêng
▪ Caàn ñöôïc Heä ñieàu haønh hoã trôï
3
Semaphore
▪ Ñöôïc hoã trôï bôûi HÑH
Semaphore s; // s >=0
Down (s) & Up(s)
▪ Toå chöùc ñoäc quyeàn truy xuaát
Down (s)
CS;
Up(s)
P1 :
P2:
Down (s);
Job2;
Job1;
Up(s)
▪ Toå chöùc “hoø heïn”
4
Monitor
Monitor m
▪ Ñöôïc hoã trôï bôûi NNLT
▪ Baûo ñaûm ñoäc quyeàn
truy xuaát töï ñoäng
▪ Söû duïng bieán ñieàu kieän
ñeå thöïc hieän “Hoø heïn”
int x;
Condition c;
Function F1()
{ ….wait(c); …}
Function F2()
{ ….signal(c); …}
5
Message
1. Send Request
3. Send Finish
Server
P
2. Receive Accept
▪ Ñöôïc hoã trôï bôûi HÑH
▪ Ñoàng boä hoùa treân moâi tröôøng phaân taùn
6
Caùc baøi toaùn ñoàng boä hoaù kinh ñieån
Producer-Consumer
▪P khoâng ñöôïc ghi döõ lieäu vaøo buffer ñaõ ñaày
▪C khoâng ñöôïc ñoïc döõ lieäu töø buffer ñang
P
Buffer (N)
C
troáng
▪P vaø C khoâng ñöôïc thao taùc treân buffer
cuøng luùc
R2
R3
Readers - Writers
▪ W khoâng ñöôïc caäp nhaät döõ lieäu khi coù
moät R ñang truy xuaát CSDL .
R1
W1
W2
▪ Taïi moät thôøi ñieåm , chæ cho pheùp moät
Wñöôïc
Database
söûa ñoåi noäi dung CSDL.
7
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 - Trần Hạnh Nhi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_he_dieu_hanh_nang_cao_bai_5_cac_giai_phap_dong_bo.ppt

