11520034_KTMT_C56_T3

7
Chương 5: các giải pháp đồng bộ. Bài 1. Xét giải pháp đồng bộ sau: while (TRUE) { int j = 1-i; flag[i]= TRUE; turn = j; while (turn == j && flag[j]==TRUE); critical-section (); flag[j] = FALSE; Noncritical-section (); } Giải: Có thỏa mãn 3 điều kiện. Đây là 1 giải pháp đảm bảo việc độc quyền truy xuất vì khi cả hai tiến trình Pi và Pj cùng hướng đến việc vào miền găng (flag[i]=TRUE và flag[j]=TRUE) thì chỉ có 1 process được vào miền găng tùy theo giá trị trả về của turn. Nếu process pj đang xử lý Noncritical- section thì trước đó flag[j] đã được gán cho giá trị FALSE do vậy nó không ngăn cản Pi quay lại critical- section. Bài 2: Sử dụng semaphore để viết lại chương trình sau theo mô hình xử lý đồng hành: (1)A = x1 + x2; // 1 starts before 2 and 3 (2)B = A*x3; // 2 starts before after 1 and before 4

description

bao cao ktmt

Transcript of 11520034_KTMT_C56_T3

Chng 5: cc gii php ng b.Bi 1. Xt gii php ng b sau:while (TRUE) {int j = 1-i;flag[i]= TRUE; turn = j;while (turn == j && flag[j]==TRUE); critical-section ();flag[j] = FALSE;Noncritical-section ();}Gii: C tha mn 3 iu kin.y l 1 gii php m bo vic c quyn truy xut v khi c hai tin trnh Pi v Pj cng hng n vic vo min gng (flag[i]=TRUE v flag[j]=TRUE) th ch c 1 process c vo min gng ty theo gi tr tr v ca turn. Nu process pj ang x l Noncritical-section th trc flag[j] c gn cho gi tr FALSE do vy n khng ngn cn Pi quay li critical-section.

Bi 2: S dng semaphore vit li chng trnh sau theo m hnh x l ng hnh:(1)A = x1 + x2; // 1 starts before 2 and 3(2)B = A*x3; // 2 starts before after 1 and before 4(3)C= A + x4;// 3 starts after 1 and before 4 , 5(4)D= B + C; // 4 starts after 2 ,3 and before 5 (5)E = D*x5 + C; 5 starts alter 3,4Gii:ng vi mi s c xem nh mt process hoc thread.

Ta s to ra cc semaphore gm: s12, s13, s24, s24,s34, s35, s45. Initial value ca tt c cc semaphore u l 0. Gii thch vic t tn nh sau: process no thc thi trc s c s i din ng trc, process thc thi sau s c s i din ng sau, v d process 1 thc thi trc process 2 v process 3 nn s c s12, s13. //Process 1:A = x1 + x2;signal (s12);signal (s13);//Process 2:Wait(s12);B = A*x3;signal (s24);//Process 3:Wait(s13);C= A + x4;signal (s34);signal(s35);//Process 4:Wait(s24);Wait(s34);D= B + C;signal(s45);//Process 5:Wait (s35);Wait (s45);E = D*x5 + CChng 6: DeadlockBi 1: Lit k 3 trng hp xy ra deadlock trong cuc sng?VD1:- Mt nhn vin trc tng i vi mt chic in thoi duy nht. Nu trong mt thi im,c ti 6 cuc gi ti cng mt lc,th iu tt nghn l iu xy ra.--> Gii php: p dng mt trong nhng iu kin cn ca Deadlock:Loi tr tng h,chng ta s chia nhiu ng line in thoi.VD2:Khi samsung tung ra sn phm in thoi Galaxy S3 vo khong thng 6/2012 th mt s lng ln cc tn Galaxy tm n cc trung tm samsung ch mua cho c sn phm m c ny,lm cho cc ca hng cht kn c ng. Ti thi im sp ra mt S3 do mt s ngi mun mua trc nn chen ln gy mt n nh lm cho ca hng ngng bn sn phm ra-> khng ai mua c. Gii php: p dng mt trong nhng iu kin cn ca Deadlock l tng ngi mt xp hng mua xong s n lt ngi khc.VD 3: Hin tng deadlock trn mt cy cuHai(hoc nhiu hn) t i u nhau trn mt cy cu hp ch rng cho mt chic. Gii php: Nu deadlock xut hin, n c th c gii quyt nu mt hay mt s t li li nhng ng ri tin ra sau.Bi 2:Nhn vo th th ta thy cc process hot ng nh sau:P3 (gi 1 thc th t ti nguyn R3) sau khi nhn 1 thc th t ti nguyn R4 s thc thi u tin sau nhng li thc th t ti nguyn R3 cho P2 thc thi (gi 1 thc th t ti nguyn R1) sau P2 s nhng li thc th t ti nguyn R1 cho P1 thc thi.Mt khc: ta thy y l mt th c cha chu trnh. Nu mi loi ti nguyn c 1 thc th th s xy ra deadlock. V theo th ca bi ti nguyn R2 c 2 thc th v ti nguyn R4 c 4 thc th. Nn khng xy ra deadlock. Bi 3:a) Tm bng Need = Max - AllocationAllocationMaxAvailableNeed

A B C DA B C DA B C DA B C D

P0 0 0 1 2 0 0 1 2 1 5 2 0 0 0 0 0

P1 1 0 0 0 1 7 5 0 0 7 5 0

P2 1 3 5 4 2 3 5 6 1 0 0 2

P3 0 6 3 2 0 6 5 2 0 0 2 0

P4 0 0 1 4 0 6 5 6 0 6 4 2

b)AllocationNeed

Work

A B C DA B C DA B C D

P0 0 0 1 2 0 0 0 0 1 5 2 0

P1 1 0 0 0 0 7 5 0 1 5 3 2

P2 1 3 5 4 1 0 0 2 2 8 8 6

P3 0 6 3 2 0 0 2 0 2 14 11 8

P4 0 0 1 4 0 6 4 2 2 14 12 12

3 14 12 12

Vy tn tai 1 chui an toan: < P0P2P3P4 P1>So snh avalable vi cc need H thng an tonc) AllocationNeed

Work

A B C DA B C DA B C D

P0 0 0 1 2 0 0 0 0 1 1 0 0

P1 1 4 2 0 0 3 3 0 1 1 1 2

P2 1 3 5 4 1 0 0 2 2 4 6 6

P3 0 6 3 2 0 0 2 0 2 10 9 8

P4 0 0 1 4 0 6 4 2 2 10 10 12

3 14 12 12

Vy chui tn tai chui an toan la: P0P2P3P4 P1co th cp phat cho P1 ngay

Quy tc-so snh p1 vi avalable :- p1 mi cp nht = p1+ p1 (yu cu) -avalable cp nht=avalable-p1(yu cu)-so snh avalable cp nht vi need ca tng p cp nht