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

Tham khảo bài thuyết trình bài 5 : các giải pháp đồng bộ hoá, công nghệ thông tin, phần cứng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | 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 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êng Khoâng ñoøi hoûi söï trôï giuùp cuûa Heä ñieàu haønh 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ôï Semaphore Ñöôïc hoã trôï bôûi HÑH Toå chöùc ñoäc quyeàn truy xuaát Semaphore s; // s >=0 Down (s) & Up(s) Down (s) CS; Up(s) Toå chöùc “hoø heïn” P1 : Job1; Up(s) P2: Down (s); Job2; Monitor Ñöôï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” Monitor m int x; Condition c; Function F1() { .wait(c); } Function F2() { .signal(c); } Message Ñöôïc hoã trôï bôûi HÑH Ñoàng boä hoùa treân moâi tröôøng phaân taùn Server P 1. Send Request 2. Receive Accept 3. Send Finish 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 troáng P vaø C khoâng ñöôïc thao taùc treân buffer cuøng luùc P C Buffer (N) Readers - Writers W khoâng ñöôïc caäp nhaät döõ lieäu khi coù moät R ñang truy xuaát CSDL . Taïi moät thôøi ñieåm , chæ cho pheùp moät Wñöôïc söûa ñoåi noäi dung CSDL. Database R1 R2 R3 W1 W2 | 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 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êng Khoâng ñoøi hoûi söï trôï giuùp cuûa Heä ñieàu haønh 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ôï Semaphore Ñöôïc hoã trôï bôûi HÑH Toå chöùc ñoäc quyeàn truy xuaát Semaphore s; // s >=0 Down (s) & Up(s) Down (s) CS; Up(s) Toå chöùc “hoø heïn” P1 : Job1; Up(s) P2: Down (s); Job2; Monitor Ñöôï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” Monitor m int x; Condition

TỪ KHÓA LIÊN QUAN