flow of control

Click here to load reader

Upload: gio-chelsea

Post on 19-Jan-2016

14 views

Category:

Documents


0 download

TRANSCRIPT

FLOW OF CONTROL

GVHD: Nguyn Quc nh Nhm 13: 1. L Ph Nht 2. Trn Xun Hiu 3. L Mnh DngFLOW OF CONTROL(IU KHIN LUNG)IU KHIN LUNG L G?iu khin lung lin quan n trnh t lnh c thc thi cch linh hot trong qu trnh thc hin chng trnh.

iu khin lung lin quan n trnh t lnh c thc thi cch linh hot trong qu trnh thc hin chng trnh. Nhn chung trong khi khng c cc nhnh v cuc gi th tc, cc lnh lin tc-thc hin c ly t v tr b nh lin tip. Cuc gi th tc gy ra dng chy ca kim sot phi c thay i, dng cc th tc hin ang thc hin v bt u cc th tc gi. Coroutines l lin quan n th tc v gy ra nhng thay i tng t trong dng chy ca kim sot. Chng rt hu ch m phng cc qu trnh song song. By v ngt cng gy ra dng chy ca kim sot phi c thay i khi iu kin c bit xy raKhi lp trnh vin gp kh khn khi theo di cc trnh t m trong cc b vi x l s thc hin cc hng dn, h l d b lm cho sai st. Quan st ny dn Dijkstra (1968a) vit mt l th sau gy tranh ci mang tn'' GO TO Tr xem l c hi,'' trong ng ngh trnh bo co goto. Th sinh ra cuc cch mng lp trnh cu trc, mt trong nhng gio l m l s thay th bo co goto vi cc hnh thc cu trc hn kim sot dng chy, chng hn nh trong khi vng. Tt nhin, cc chng trnh bin dch n cp 2 chng trnh m c th cha nhiu chi nhnh, v nu thc hin, trong khi, v cu trc iu khin cp cao khc i hi phi phn nhnh xung quanh.

3IU KHIN TUN T V NHNHHu ht cc lnh khng lm thay i kim sot lung lnh. Sau khi mt lnh c thc hin, l sau trong b nh c ly mt lnh khc v thc hin.Chng trnh l mt hm theo thi gian:

Hnh a cc lnh cha c nhnh.Hinh b cc lnh c nhnh

Hu ht cc lnh khng lm thay i dng chy ca kim sot. Sau khi mt lnh c thc hin, l sau trong b nh c ly v thc hin. Sau mi lnh, chng trnh truy cp c tng chiu di lnh. Nu quan st thy trong mt khong thi gian m di so vi thi gian trung bnh lnh, chng trnh truy cp l khong mt hm tuyn tnh ca thi gian, tng chiu di trung bnh cho mi lnhthi gian hng dn trung bnh. Ni cch khc, th t nng ng trong b vi x l thc s thc hin cc lnh tng t nh th t m chng xut hin trn danh sch chng trnh, nh hnh. 5-39 (a).Nu mt chng trnh c cha cc chi nhnh, mi quan h n gin gia th t lnh xut hin trong b nh v th t m chng c thc hin l khng cn ng na. Khi chi nhnh c mt, chng trnh truy cp khng cn l mt chc nng n iu ngy cng tng ca thi gian, nh th hin trong hnh. 5-39 (b). Kt qu l, n tr nn kh khn hnh dung trnh t hng dn thc hin t danh sch chng trnh4TH TCK thut quan trng nht cho cc chng trnh cu trc l th tc.Mt cuc gi th tc lm thay i lung iu khin ging nh l mt nhnh thc hin.Mt th tc c th c coi l xc nh mt ch dn mi trn mt mc cao hn.Mt th tc cuc gi c th c dng nh mt ch dn duy nht, mc d cc th tc c th c kh phc tp.T mt quan im, mt cuc gi th tc lm thay i dng chy ca kim sot ch l mt nhnh thc hin, nhng khng ging nh cc chi nhnh, thc hin nhim v ca mnh khi hon thnh, n s tr v kim sot tuyn b hoc hng dn sau y gi. Tuy nhin, t mt gc khc, mt c th th tc c th c coi l xc nh mt hng dn mi trn mt mc cao hn. T quan im ny, mt th tc cuc gi c th c dng nh mt ch dn duy nht, mc d cc th tc c th c kh phc tp. hiu mt on m c cha mt cuc gi th tc, l ch cn phi bit nhng g n lm, khng lm th no n c phi n.5TH TC QUYMt loi c bit th tc l th tc quy.V d cho th tc quy l bi Thp H Ni :

Mt loi c bit th v v th tc l th tc quy, l mt th tc m cc cuc gi ring ca mnh, hoc trc tip hoc gin tip thng qua mt chui cc khc th tc. Nghin cu cc th tc quy cho ci nhn su sc ng k vo nh th no cuc gi th tc c thc hin, v nhng g cc bin a phng thc s l. by gi chng ti

Cc gii php di chuyn n a t cc 1 n cc 3 bao gm u di chuyn n - 1 a t cc 1 n cc 2, sau di chuyn 1 a t cc 1 n cc 3, sau chuyn n - 1. a t peg peg 2 n 3

Bin a phng c khai bo trong phng thc, hm dng, hoc l khi lnh.Bin a phng c to khi cc phng thc, hm dng, hoc l khi lnh c gi v bin s b hy khi thot khi phng thc, hm dng, hoc l khi lnh.Khng th s dng cc B t truy cp (Access Modifiers) cho cc bin a phng.Bin a phng ch c tm vc hot ng (tn ti) trong phng thc, hm dng hoc cc khi lnh.Bin a phng c lu tr ngm tng stack.Khng c gi tr khi to mc nh cho cc bin a phng nn cc bin a phng phi c gn gi tr trc khi dng.

6TH TC QUYThp (2,1,2)

Thp (1,1,3)

Cc gii php di chuyn n a t cc 1 n cc 3 bao gm u di chuynn - 1 a t cc 1 n cc 2, sau di chuyn 1 a t cc 1 n cc 3, sau chuyn n - 1. a t peg peg 2 n 3 gii php ny c minh ha trong hnh. 5-41. gii quyt vn chng ta cn mt th tc di chuyn n a t peg ti pegj. Khi qu trnh ny c gi l, bng cchthp (n, i, j)

cc gii php c a ra. Th tc u tin lm mt th nghim xem nu n = 1. Nu vy, gii php l tm thng, ch cn di chuyn mt a t i ti j. Nu n 1, cc gii php bao gm ba phn nh ni trn, tng c mt cuc gi th tc quy.Cc gii php hon chnh c th hin trong hnh. 5-42. Cuc githp (3, 1, 3)7TH TC QUYThp (2,2,3)

Cc gii php hon chnh c th hin trong hnh. 5-42. Cc cuc gi n gii quyt vn ca hnh. 5-41 to ra ba nhiu cuc gi. C th, n lm cho cc cuc githp (2, 1, 2)thp (1, 1, 3)thp (2, 2, 3)Th ba u tin v s to ra ba cuc gi mi, cho tng cng by.8TH TC QUYPublic voidtowers(int n, int I, int j){int k;if(n ==1) System.out.println(Move a disk from " + i + " to " + j);else{k = 6 i j;towers(n 1, i, k); towers(1, i, j);towers(n-1,k,j);}}thp (3, 1, 3)thp (2, 1, 2)thp (1, 1, 3)thp (2, 2, 3) c cc th tc quy, chng ta cn mt ngn xp lu tr cc thng s v bin a phng cho mi li gi, ging nh chng ti c trong IJVM. Mi ln mt th tc c gi, mt stack frame mi c phn b cho cc th tc v u ngn xp. Khung gn y nht l to ra l khung hin hnh. Trong v d ca chng ti, ngn xp pht trin i ln, t cc a ch b nh cho nhng ngi cao, ging nh trong IJVM.

9TH TC QUY

Ngoi cc con tr ngn xp, m ch vo nh ca stack, n thng l thun tin c mt con tr khung hnh, FP, m ch vo mt v tr c nh trong khung. N c th tr n con tr lin kt, nh trong IJVM, hoc cc bin a phng u tin. Hnh 5-43 cho thy khung stack cho mt my tnh vi mt t 32-bit. Cc cuc gi ban u y thp n, i, k vo stack v sau thc hin mt lnh CALL y a ch tr li vo ngn xp, ti a ch 1012. Ngy nhp cnh, th tc c gi l lu tr cc gi tr c ca FP trn stack ti 1016 v sau tin b con tr ngn xp phn b lu tr cho cc bin a phng. Ch vi mt 32-bit bin a phng (k), SP c tng ln 4-1020.

iu u tin mt th tc phi lm khi c gi l lu FP trc (v vy n c th c khi phc li ra th tc), sao chp SP vo FP, v c th tng bi mt t, ty thuc vo ni cc im khung FP mi. Trong v d ny, ch FP bin a phng u tin, nhng trong IJVM, LV ch vo con tr lin kt. khc nhaumy x l con tr khung hi khc nhau, i khi a n vo di cng ca khung ngn xp, i khi pha trn, v i khi gia nh trong hnh. 5-43. V mt ny, n l gi tr so snh hnh. 5-43 vi hnh. 4-12 xem hai cch khc nhau qun l cc con tr lin kt. Cch khc cng c th. Trong mi trng hp, chnh l kh nng sau c th lm th tc quay tr li v khi phc trng thi ca ngn xp vi nhng g n c ch l trc khi gi th tc hin hnh.

thp (3, 1, 3)Hnh 5-43 (a) cho thy chng ch sau khi cuc gi ny c thc hin. Cc th tc kim tra u tin nhn thy nu n = 1, v pht hin ra rng n = 3,, in vo k v lm cho cc cuc githp (2, 1, 2)Sau cuc gi ny c hon thnh stack l nh hnh. 5-43 (b), v cc th tc bt u li t u (mt th tc gi l lun lun bt u vo u). Thi gian ny, kim tra vi n = 1 khng mt ln na, lp y trong k mt ln na v lm cho cc cuc githp (1, 1, 3)Ngn xp sau l nh hnh. 5-43 (c) v chng trnh truy cp im bt u cc th tc. Thi gian ny, th nghim thnh cng v mt dng c in. Tip theo, tr v th tc bng cch loi b mt stack frame, t li FP v SP hnh. 5-43 (d). Sau n tip tc thc hin ti a ch tr li, l cuc gi th hai:thp (1, 1, 2)Ny cho bit thm mt khung mi ngn xp nh hnh. 5-43 (e). Dng khc c in; sau khi tr v mt khung c ly ra khi stack. Cc cuc gi th tc tip tc theo cch ny cho n khi cuc gi ban u hon tt thc hin v khung hnh. 5-43 (a) c ly ra t ngn xp. hiu r quy hot ng, n c khuyn khch m bn m phng vic thc hin y ccthp (3, 1, 3)s dng bt ch v giy.10CORUTINESKhi mt th tc c gi li, thc hin cc th tc lun lun bt u t cu lnh u tin ca th tc.

Trong chui gi in thoi thng thng, c s phn bit r rng gia cc th tc gi in thoi v cc th tc c gi l. Xem xt mt th tc A, trong ku gi mt th tc B trong hnh. 5-44. Th tc B tnh trong mt thi gian v sau tr v A. Ngay t ci nhn u tin bn c th xem xt tnh hnh i xng ny, bi v khng A hoc B l mt chng trnh chnh, c hai l th tc. (Th tc A c th c gi bi cc chng trnh chnh nhng iu l khng thch hp.) Hn na, kim sot u tin c chuyn t A n B-cuc gi v iu khin sau c chuyn t B n A-s tr li.

S khc bit ny c phn nh trong phng php m kim sot c thng qua giaA v B. Khi A gi B, n s dng cc lnh gi th tc, trong ttr v a ch (v d, a ch ca cc tuyn b sau cuc gi) u hu ch, v d, trn cng ca ngn xp. Sau n t a ch ca B vo chng trnh truy cp hon thnh cuc gi. Khi B tr v, n khng s dng cc cuc gi hng dn nhng thay vo n s dng cc ch dn li, m ch n gin l bt a ch tr li t ngn xp v t n vo chng trnh truy cp.

11CORUTINESKhi th tc c gi li, th tcthc hin culnh m n ri i ln gi trc.

i khi n l hu ch c hai th tc, A v B, mi cuc gi khc nh l mt th tc, nh th hin trong hnh. 5-45. Khi B tr v A, ngnh tuyn b sau cc cuc gi n B, nh trn. Mt khi chuyn iu khin n B, n khng i n u (ngoi tr ln u tin) nhng vi tuyn b sau cc'' tr li gn y nht,'' c ngha l, c

Khng CALL bnh thng cng khng phi hng dn RETURN bnh thng lm vic cho gi coroutines, bi v a ch chi nhnh xut pht t chng nh quay tr li, nhng, khng ging nh quay tr li, cuc gi coroutine t t mt a ch tr li mt ni no cho s tr li tip theo vi n. N s c tt p nu c mt ch dn trao i trn cng ca ngn xp vi chng trnh truy cp. Chi tit, hng dn ny u tin s bt tr li a ch c ra khi ngn xp vo mt ng k ni b, sau y chng trnh truy cp vo ngn xp, v cui cng, sao chp ng k ni b vo chng trnh truy cp. Bi v mt t c ly ra khi ngn xp v mt t c y vo stack, ngn xp con tr khng thay i. Hng dn ny him khi tn ti, v vy n phi c m phng nh mt s hng dn trong nhiu trng hp12BY (TRAPS)By l mt loi th tc n s c gi khi mt s iu kin gy ra bi chng trnh, thng l mt iu kin quan trng t xy ra.VD: TrnKhi by xy ra lung iu khin chuyn sang mt v tr nh c nh thay v tip tc ci nh theo th t. v tr c nh l mt th tc x l by. Mt ci by l mt loi gi th tc t ng khi xng bi mt s iu kin gy ra bi cc chng trnh, thng l mt iu kin quan trng nhng him khi xy ra. Mt v d l trn. Trn nhiu my tnh, nu kt qu ca php ton s hc vt qu s lng ln nht c th biu din, mt ci by xy ra, c ngha l dng chy ca iu khin c chuyn sang mt s v tr b nh c nh thay v tip tc theo th t. v tr c nh l mt chi nhnh mt th tc c gi l x l ci by, thc hin mt s hnh ng thch hp, chng hn nh in mt thng bo li. Nu kt qu ca mt hot ng trong phm vi, khng c ci by xy ra.The essential point about a trap is that it is initiated by some exceptional condition caused by the program itself and detected by the hardware or microprogram. An alternative method of handling overflow is to have a 1-bit register that is set to 1 whenever an overflow occurs. A programmer who wants to check for overflow must include an explicit branch if overflow bit is set instruction after every arithmetic instruction. Doing so is both slow and wasteful of space. Traps save both time and memory compared with explicit programmer-controlled checking.

Mt vi trong s cc iu kin ph bin m c th gy ra by c im ni qu dng chy, im ni Van cn bng, trn s nguyn, vi phm bo v, khng xc nh opcode, trn stack, n lc bt u khng tn ti thit b I / O, n lc ly mt t t mt a ch s l, v chia cho khng.

13NGT (Interrupts)Nh ci by, ngt dng chng trnh ang chy v chuyn iu khin n mt on x l, thc hin mt s hnh ng thch hp. Khi hon tt, x l ngt tr v kim sot cho chng trnh khi b gin on. Ngt nhng thay i trong dng chy ca kim sot gy ra khng phi do chy pro-gram, nhng bi ci g khc, thng lin quan n I / O. V d, mt chng trnh c th hng dn cc a bt u chuyn giao thng tin, v thit lp cc a ln cung cp mt ngt ngay sau khi vic chuyn giao c hon tt. Nh ci by, ngt dng chng trnh ang chy v chuyn iu khin n mt gin on x l, thc hin mt s hnh ng thch hp. Khi hon tt, x l ngt tr v kim sot cho chng trnh b gin on. N phi khi ng li qu trnh b gin on trong chnh xc cng mt trng thi rng l trong khi ngt xy ra, c ngha l khi phc li tt c cc thanh ghi bn trong ngt trc trng thi ca h.S khc bit ch yu gia by v ngt l: by c ng b vi chng trnh v ngt l khng ng b. Nu chng trnh c chy li mt triu ln vi cng mt u vo, cc by s ti xut hin trong cng mt v tr nhng mi ln ngt c th thay i, ty thuc, v d, trn chnh xc khi mt ngi ti mt thit b u cui truy cp tr v vn chuyn. L do cho s ti sinh ca by v kh nng ti ngt l by c trc tip gy ra bi chng trnh v ngt c, tt nht, gin tip gy ra bi chng trnh. 14NGT (Interrupts)HOT NG PHN CNG1. B iu khin thit b khng nh mt ng dy gin on trn bus h thng bt u tin trnh b gin on.2. Ngay sau khi CPU c chun b x l cc gin on, n khng nh mt gin on tha nhn tn hiu trn bus.3. Khi b iu khin thit b thy rng tn hiu ngt ca n c tha nhn, n t mt s nguyn nh trn cc dng d liu xc nh chnh n. Con s ny c gi l vector ngt.4. Cc CPU loi b cc vector ngt t bus v lu n tm thi.5. Sau , CPU y chng trnh truy cp v PSW vo ngn xp.6. CPU sau t mt chng trnh mi truy cp bng cch s dng ngtvector nh mt ch s vo mt bng di cng ca b nh. Nu chng trnh truy cp l 4 byte, v d, sau ngt vector n tng ng n a ch 4n. Chng trnh mi ny im truy cp bt u thng xuyn gin on dch v cho cc thit b gy ra gin on. Thng l PSW c np hoc sa i cng nh (v d, v hiu ha ngt hn na).15NGT (Interrupts)

7. iu u tin cc dch v thng xuyn b gin on, khng c g lu tt c cc ng k n s dng h c th c phc hi sau . H c th c lu trn stack hay trong mt bng h thng. 8. Mi gin on vector ni chung c chia s bi tt c cc thit b ca mt loi nht nh, v vy n l cha bit m thit b u cui gy ra gin on. S lng thit b u cui c th c tm thy bng cch c mt s thit b ng k. 9. Bt k thng tin khc v gin on, chng hn nh m trng thi, c th c c in 10. Nu xy ra mt li I / O, n c th c x l y.11. The global variables, ptr and count, are updated. The former is incremented, to point to the next byte, and the latter is decremented, to indicate that 1 byte fewer remains to be output. If count is still greater than 0, there are more characters to output. Copy the one now pointed to by ptr to the output buffer register.12. If required, a special code is output to tell the device or the interrupt controller that the interrupt has been processed.13. Restore all the saved registers.14. Execute the RETURN FROM INTERRUPT instruction, putting the CPU back into the mode and state it had just before the interrupt happened. The computer then continues from where it was.

16Mt my tnh c ba I / Othit b, my in, a, v RS232 (ni tip) dng, vi cc u tin 2, 4, v 5,tng ng. Ban u, (t = 0) l mt chng trnh ngi dng ang chy, khi t nhin ti t = 10mt my in ngt xy ra. My in Gin on dch v thng xuyn (ISR) c bt uln, nh th hin trong hnh. 5-46.Ti t = 15, dng RS232 mun s ch v to ra mt ngt. Tdng RS232 c u tin cao hn (5) so vi my in (2), ngt xy ra.Trng thi ca my, m by gi chy my in gin on dch v Rou-tine, c y vo stack, v cc dch v thng xuyn ngt RS232 c bt u.Mt lt sau, ti t = 20, a xong v mun dch v. Tuy nhin, nu tin (4) l thp hn so vi cc thi quen ngt ang chy (5), do ,Phn cng CPU khng tha nhn s gin on, v n c t chc ang ch gii quyt. Khit = 25, cc thi quen RS232 kt thc, do , n tr v cho nh nc l ch trc khi RS232 ngt xy ra, c th l, chy my in gin on dch v Rou-tine mc u tin 2. Ngay sau khi CPU chuyn sang u tin 2, thm ch trc khi mthng dn c th c thc hin, a ngt mc u tin 4 gi c cho php trong, vdch v a chy thng xuyn. Khi n kt thc, cc thi quen my in c con-tinue. Cui cng, ti t = 40, tt c cc thi quen gin on dch v hon thnh vchng trnh ngi dng vn tip tc t ni n ri i.17