http://www.ebook.edu.vn 81 5 KỸ THẬT LẬP TRÌNH NHÚNG 5.1 Tác vụ và quá trình (process) Tácvụ(task)?Làmộtcôngviệccầnthựcthithamgiatronghệthống Quátrình(process)làmộtdiễnbiếnthựcthimộttácvụcủahệthống. Đôikhingườ itavẫndùnglẫnhaikháiniệmnàyvàkhôngphânbiệt. Tácvụchukỳ(period)vàkhôngchukỳ(aperiod) Cáctácvụphảithựchiệnlặplạimộtcáchđềuđặntheonhững khoảngthờigianpđược gọilàcáctácvụcóchukỳvàpđượcgọilàchukỳcủatácvụ.Cácloạitácvụkhácthì đượcgọilàtácvụkhôngchukỳ. 5.2 Lập lịch (Scheduling) Tạisaophảilậplịch? Đểđảmbảođượccơchếthực thichias ẻtàinguyênhữuhạnvàthoảmãnyêucầuthời gianthực.Lậplịchphảinhằmthoảmãnhayđạttớ iđượcsựthoảhiệpgiữacácràng buộcvềtàinguyên,sựphụthuộclẫnnhauhaythờigianthựchiện. 5.2.1 Các khái niệm Lậplịchlàmộtphépthựchiệnphânbổvàgánquytrìnhthựcthicáctácvụchobộxửlý saochomỗitácvụđượcthựchiệnhoàntoàn. Lậplịch=tìmkiếmmột giảnđồphânbốthờigianthựchiệnđanhiệmhợplývớicác điềukiệnràngbuộcchotrước.Haynóicáchkháclàbộlậplịchphảixửlýđểquyếtđịnh vàđiều phốiquátrình/tácvụthựchiện. Cómộtsốthôngtinvềtácvụluônphảiquantâmđốivớib ấtkỳbộlậplịchthờigian thựcnào,baogồm: • Thờigianxuấthiện i a (arrivaltime):Khisựkiệnxảyravàtácvụtươngứngđược kíchhoạt. • Thờiđiểmbắtđầuthựcthi i r (releasetime):Thờiđiểmsớmnhấtkhiviệcxửlýđã sẵnsàngvàcóthểbắtđầu. • Thờiđiểmbắtđầuthựchiện i s (startingtime):Làthờiđiểmmàtạiđótácvụbắt đầuviệcthựchiệncủamình. • Thờigiantínhtoán/thựcthi i c (Computationtime):Làkhoảngthờigiancầnthiết đểbộxửlýthựchiệnxongnhiệmvụcủamìnhmàkhôngbịngắt. • Thờiđiểmhoànthành i f (finishingtime):Làthờiđiểmmàtạiđótácvụhoànthành việcthựchiệncủamình. • Thờigianrủiro/xấunhất i w (worstcasetime):khoảngthờigianthựchiệnlâunhất cóthểxảyra. 82 • Thờiđiểmkếtthúc i d (duetime):Thờiđiểmmàtácvụphảihoànthành. Hình5‐1:GiảnđồthựchiệncủamộttácvụT i Trêncơsởđóbộlậplịchsẽphảithựchiệnbàitoántốiưuvề: Thờigianđápứng(responsetime) Hiệusuấtthựchiện(sốlượngcôngviệcthựchiện xongtrongmộtđơnvịthời gian) Sựcôngbằngvàthờigianchờđợi(cáctácvụkhôngphảichờđợiquálâu) Vídụvềmộtlịchthựchiện2tácvụđượcmôtảnhưtrongHình 5‐2. Hình5‐2:Giảnđồlậplịchthựchiện2tácvụ Trongtrườnghợpcủavídụnàycácthôngsốvềthờigianthựchiệncủacáctácvụtính đượcnhưsau: ¾ Thờigiantínhtoán 1 9C = và 2 12C = . ¾ Thờigianbắtđầuthựchiện: 1 0s = , 2 6s = . ¾ Thờiđiểmhoànthành: 1 18f = , 2 28f = . ¾ Khoảngthờigianchênhlệchthờiđiểm kếtthúcvàdeadline(Lateness) iii Lfd=−: 1 4L =− , 2 1L = . ¾ Khoảngthờigianrỗi/dưthừagiữathờigianchophépthựchiệnvàthờigiancần đểthựchiệntácvụ(Laxity) iiii X daC=−−: 1 13X = , 2 11X = . 5.2.2 Các phương pháp lập lịch phổ biến http://www.ebook.edu.vn 83 Hình5‐3:Phânloạicácphươngpháplậplịch Tuỳthuộcvàoloạihìnhtácvụ,ngườitarahaiphươngpháplậplịchlàcóchukỳvà khôngcóchukỳ. Lập lịch non‐preemptive:Phương phápnàyđảmbảo các tác vụđược th ực hiệnhoàn thànhmỗikhithựcthi,vìvậythờigianđápứngchocácsựkiệnkháccóthểlâu. Lập lịch preemptive: Phương pháp này khắc phục nhượcđiểm của lập l ịch non‐ preemptivekhithờigianthựcthicáctácvụlâu.Cáctácvụsẽđượcthựchiệnvàcóthểbị ngắtgiữachừngđểphụcvụthựcthicáctácvụkhác.Cơchếlậplịchnày chophépđảm bảothờigianđápứngchocácsựkiệnvàtácvụngắnvànhanhhơn. Lậplịchoffline/tĩnh:Việclậplịchđượcthựchiệndựatrêncáchiểubiếthoặ cdựbáovề cácsựkiệntácvụthựchiệntronghệthống(thờiđiểmxuấthiện,thờigianthựchiện, deadline…)vàđượcquyếtđịnhtạithờiđiểmthiếtkếvàđược ápdụngcốđịnhtrong suốtquátrìnhhoạtđộngcủahệthống.Việclậplịchtrướccómộtsốcácưuđiểmsau: • Tácvụtiếptheocóthểđượclựachọnthựcthitrongkhoảngthờigianlàhằngsố • Khảnăngđápứngyêucầuthờigianthựccóthểđượcbiếttrướcvàđượcđảm bảo Nhượcđiểm: o Khôngthểthayđổilịchtrìnhthựchiệncủahệthốngtrongquátrìnhthự chiện o Đòihỏiphảicóthôngtinthờigianchínhxácvềcáctácvụđểtínhtoánlậplịch Mộtthuậttoánlậplịchtĩnhđượcgọilàtốiưunếunóluônluôn cóthểtìmđượcmột lịchđiềuphốithoảmãncácràngbuộcđãchotrongkhimộtthuậttoántĩnhkháccũng tìmđượcmộtlờigiải. Lậplịchonline/động:Bộxửlýth ựchiệnviệclậplịchtrongquátrìnhthựcthidựatrên cơsởcácthôngtinhoạtđộnghiệnhànhcủahệthống.Sơđồlậplịchlàkhôngxácđịnh trướcvàthayđổiđộngtheo quátrìnhthựchiện. Cácthuậttoánlậplịchtĩnhtốiưukhôngphảilàtốiưutronghệthốngđộng. 84 Khôngtồntạimộtlờigiảitốiưuchoviệclậplịchtronghệthốngnhiềubộxửlýnếu thờiđiểmxuấthiệnyêucầuthựcthicủacáctác vụkhôngđượcbiếttrước. Cáchạtnhânđượcđiềukhiểntheocơchếngắtthườngthựcthicơchếlậplịchnon‐ preemtiveđộngtrongkhiloạihạtnhânvậnhànhtheoquátrìnhlại thựcthitheocơchế preemptiveđộng. Mộtthuật toánlậplịchđộngđượcgọilàtốiưunếunócóthểtìmrađượcmộtlịchđiều phốiđiềukhiểnhệthốngthoảmãncác ràngbuộcthờigianđãchobấtkểkhinàomà thuậttoántĩnhkhôngtìmrađược. Lậplịchtậptrunghoặcphântán:Việclậplịchđượcthựchiệnápdụngchocác tácvụ thựcthibởimột(tậptrung)hoặcnhiềubộxửlý(phântán). LậplịchMonohayMulti‐processor:Nhiệmvụlậplịchvàthựcthiđượcđảmnhiệmbởi một(mono) hoặcnhiềubộvixửlý(multi).Tuỳthuộc vàođộphứctạpvềthuậttoáncần xửlýkhilậplịchmàngườitaquyếtđịnhphảisửdụngphươngpháplậplịch monohay multi‐processor. Tínhkhảlậplịch:Mộthệthốngvớimộttậpcáctácvụvàcácđiềukiệnràngbuộcđược gọilàkhảlậplịchnếutồntạiítnhấ tmộtc ơchếlịchtrìnhthựchiệnthoảmãn cáctácvụ vàđiềukiệnràngbuộcđó. Vídụvềlậplịchchohệthốngđanhiệmvới2tácvụ.Tácvụ1thực hiệntheochukỳvà tácvụ2thựchiệnkhôngtheochukỳvớithờigianthựcthilớnhơnthờigianchukỳlặp lạicủatácvụ1. Hình5‐4:Giảnđồthờigianthựchiệnlịchcủatácvụ http://www.ebook.edu.vn 85 5.2.3 Kỹ thuật lập lịch FCFS Trongcơchếlậplịchđếntrướcđượcphụvụtrướcthìcácquátìnhđượcxửlýtheothứ tựmànóxuấthiệnyêucầuvàchođếnkhihoànthành.Cơchếlậplịchnàythuộc loại khôngngắtđượcvàcóưuđiểmlàdễdàngthựcthi.Tuynhiên,nókhôngphùhợpcho cáchệthốngmàhỗtrợnhiềungườisửdụngvìcómộtsựbiếnđổilớnvề thờigian trungbìnhmàmộtquátrìnhhaytácvụphảichờđợiđểđượcxửlý.Hơnnữadoviệc xửlýkhôngngắtđượcnêncóhiệntượngchiếmhữuđộcquyềnbộxửlýtrongth ờigian dàivàcóthểgâyrasựtrễbấtthườngtrongquátrìnhthựchiệncủacáctácvụphảichờ đợikhác. ShortestJobFirst‐SJF Trongcơchếlậplịchnàytácvụcóthờigianthựcthingắnnhấtsẽcóquyềnưutiêncao nhấtvà sẽđượcphục vụtrước. Vấnđềchính gặp phải trongcơ chế lậplịch nàylà khôngbiếttrướcđượcthờigianth ựcthicủacáctácvụthamgiatrongchươngtrìnhvà thôngthườngphảiápdụngcơchếtiênđoánvàđánhgiádựavàokinhnghiệmvềcác tácvụthựcthitronghệthống.Điềunàychắ cchắnrấtkhóđểluônđảmbảođượcđộ chínhxác.Cơchếlậplịchnàycóthểápdụngchocảloạingắtđượcvàkhôngngắtđược. Ratemonotonic(RM): PhươngpháplậplichRMcólẽ hiệnnàylàthuậttoánđượcbiếttớinhiềunhấtápdụng chocáctácvụhayquátrìnhđộclập.Phươngphápnàydựatrênmộtsốgiảthiếtsau: (1) Tấtcảcáctácvụtham giahệthốngphảicódeadlinekiểuchukỳ (2) Tấtcảcáctácvụđộclậpvớinhau (3) Thờigianthựchiệncủacáctácvụbiếttrướcvàkhôngđổi (4) Thờigianchuyể nđổingữcảnhthựchiệnlàrấtnhỏvàcóthểbỏqua ThuậttoánRMđượcthựcthitheonguyênlýgánmứcưutiênchocáctácvụdựatrên chukỳcủachúng.Tácvụnàocó chukỳnhỏthìsẽcóđượcgánmứcưutiêncao.Theo nguyênlýnàyvớicáctácvụchukỳkhôngthayđổithìRMsẽlàphươngpháplậplịch chophépngắtvàmứcưutiêncốđịnh.Tuynhiên RMhỗtrợyêucầuhệthốngkhông tốt. Earliest‐deadline‐first(EDF) Nhưđúngtêngọicủaphươngpháp,thuậttoánlậplichtheophươngphápnàysửdụng deadlinecủatácvụhaynhưđiều kiệnưutiênđểxửlýđiềuphốihoạtđộng.Tácvụcó deadlinegầnnhấtsẽcómứcưutiêncaonhấtvàcáctácvụcódeadlinexanhấtsẽnhận mứcưutiênthấpnhất.Ư uđiểmnổibậtcủaphươngphápnàylàgiớihạncóthểlậplịch đápứngđược100%chotấtcảcáctậptácvụ.Hơnnữamứcưutiêngánchomỗi tácvụ trongquátrìnhhoạtđộnglàđộngvìvậychukỳcủatácvụcóthểthayđổibấtkỳlúc nàotheothờigian. 86 EDFcóthểđượcápdụngchocáctậptácvụchukỳvàcũngcóthểmởrộngđểđápứng chocáctrườnghợpcácdeadlinethayđổikhácnhautheochukỳ. Vấnđềchínhcủathuậttoán lậplichEDFlàkhôngthểđảmbảođượctácvụnàotrong hệthốngcóthểkhôngđượcthựcthitrongtìnhhuốngquáđộhệthốngbịquátải.Trong nhiềutrườnghợpmặcdùmứcđộsửd ụngtrungbìnhnhỏhơn100%nhữngvẫncóthể trongmộttìnhhuốngnàođóvẫnvượtquakhảnăngđápứngcủahệthốngtứclàsẽcó tácvụkhôngđượcđảmbảothực thiđúng.Trongnhữngtrườnghợpnhưvậycầnphải điềukhiểnđểbiếttácvụnàobịlỗikhôngthựchiệnthànhcônghoặctácvụnàođược thựchiệnthànhcôngtrongquátrình quáđộ. MinimumLaxityfirst(MLF) Cơchếlậplịchnàysẽưutiêntácvụnàocònítthờigiancònlạiđểthựchiệnnhấttrước khinóphảikếtthúcđểđảmbảoyêucầuthự cthiđúng.Đâyđượcxemlàcơchếlậplịch gánquyềnưutiênđộngvàdễđạtđượcsựtốiưuvềhiệusuấtthựchiệnvàsựcông bằngtronghệthống. RoundRobin Đâylàmộtcơchếlậplịchphânbổđềuđặn,ngắtđượcvàđơngiản.Mỗimộttácvụ đượcxửlý/phụcvụtrongmộtkhoảngthờigiannhấtđịnhvàlặplạitheom ộtchu trình xuyênsuốttoànbộcáctácvụthamgiatronghệthống.Khoảngthờigianphụcvụcho mỗitácvụtrongquátrìnhlàmộtsựthoảhiệpgiữathờigianthựchiệnc ủacác tácvụ vàthờigianthựchiệnmộtchutrình.Cóthểchọnkhoảngthờigianđórất nhỏvàđôi lúcchúngtakhôngnhậnđượcrarằngđangcósựphânbổthựchiệntronghệth ống. Tuynhiênnếuthờigianđóquánhỏcóthểlàmmấttínhhiệuquảthựchiệntoànhệ thốngvìcầnnhiềuthờigiantrongviệcchuyểnđổingữcảnhchomỗitácvụ saumỗi chutrìnhthựchiện. http://www.ebook.edu.vn 87 5.3 Truyền thông và đồng bộ 5.3.1 Semaphore Hình5‐5:Truyềnthôngquátrình Semaphoreslàmộtcấutrúcdữliệuđượcđịnhnghĩađểloạitrừkhảnăngxungđột trongquátrìnhchiasẻtàinguyêncủacáctácvụtronghoạtđộngcủahệthống. Semaphoreshỗtrợhaihoạtđộngchính nhưsau: wait(semaphore):giảmvàkhoáchotớikhisemaphoređượcmở signal(semaphore): tăng và chophép thêmmột luồngmớiđược thamgia hoạt động Tronghoạtđộngphốihợpcùngvớisemaphore cómộthàngđợigồmcáctácvụcầnđược thựcthisẽcómộtsốtìnhhuốnghoạtđộngcơbảnnhưsau: Khimộtluồng(thread)gọiwait(): • Nếusemaphoređượcmởthìluồngđósẽđượcgianhậpvàtiếptụcthựcthi • Nếu semaphoređangbị đóng thì nhánhđósẽ bịkhoá và phảinằm chờ tronghàngđợichotớikhinàosemaphoređượcmở signal()sẽmởsemaphore: • nếumộtluồngđangnằmtronghàngđợivàkhôngbịkhoá • nếukhôngcóluồngnàotronghàngđợivàtínhiệusignalsẽđượcnhớvà dànhcholuồngtiếptheo CácloạiSemaphore Mutexsemaphore 9 Chophépđiềukhiểnhoạtđộngtruynhậpđơnlẻvàotàinguyênchiasẻcủa hệthống. 88 9 Đảmbảoloạitrừxungđộttronghoạtđộngtruynhậpđồngthờicủanhiềutác vụ,vàchỉcómộttácvụđượcthựcthitạimỗithờiđiểm. Countingsemaphore 9 Điềukhiểntàinguyênmàcóthểphục vụcùngmộtlúcnhiềutácvụhoặcmột nguồntàinguyênchophépphụcvụmộtsốnhấtđịnhcáctácvụkhôngđồng bộvàhoạtđộngđồng thời. 9 NhiềuluồngcóthểtruyềnSemaphore 9 SốlượngluồngđượcquyếtđịnhbởibiếnđếmNcủaSemaphore Thựcchấtmutexsemaphorelàmộtdạngđặcbiệtcủacounting semaphorev ớibiếnđếm N=1. ThựcthiSemaphore SửdụngSemaphoretrongviệcđồngbộhaiquátrìnhtạovàsửdụnghạngmụcthông quabộđệmtrunggian. http://www.ebook.edu.vn 89 Nhậnxét: 9 Semaphorescóthểđượcsửdụngđểgiảiquyếtbấtkỳmộtbàitoánhayvấnđề đồngbộtruyềnthốngnào 9 Tuynhiênchúngcómộtsốnhượcđiểm o Chúngchủyếu sửdụngcácbiếntoàncụctrongviệcđiềukhiểnhoạtđộng đồngbộnêncóthểtruynhậpbấtkỳđâutronghệthốngÆkhókiểmsoát o Khôngcósựliênkếtchặtchẽ giữasemaphorevàdữliệumàđượcnóđiều khiển. o Đượcsửdụngđồngthờichocảviệcloạitrừxungđột(mutualexclusion)và hoạtđộngđồngbộchocáctácvụ(scheduling) 5.3.2 Monitor Monitorlàmộtngônngữlậptrìnhđượcxâydựngđểđiềukhiểnviệctruynhậpvào vùngdữliệuchiasẻtronghoạtđộngcủahệthống.Mãchươngtrìnhđồngbộđượcbổ sungvàotrongbộbiên dịchvàthựcthikhichạychươngtrình. 3Monitorlàmộtmodulđónggói • Cáccấutrúcdữliệuđượcchiasẻ • Cácthủtụchoạtđộngthaotáctrêncáccấutrúcdữliệuchiasẻ • Đồngbộcácluồngthựcthiđồngthờimàcóthểkíchhoạtcácthủtụctrong hoạtđộnghệthống 3Monitorcóthểbảovệdữliệukhỏisựtruynhậpkhôngcócấutrúc.Nó đảmbảorằng cácluồngtruynhậpvàodữliệuthôngquacácthủtụctươngtáctheonhữngcáchhợp phápvàcókiểmsoát. 3Monitorđảmbảoloạitrừxungđột • Chỉcómộtluồngcóthểthựcthibấtkỳthủtụcnàotạimỗimộtthờiđiểm (luồngtrongmonitor) • Nếucómộtluồngđangthựcthibêntrongmộtmonitornósẽkhoácácluồng khácmuốnvào,dođómonitorcũngphảicómộthàngđợi. 90 5.4 Xử lý ngắt TínhiệuđiềukhiểnbộVXLkíchhoạtbởimộtsựkiệnthamgia trongquátrìnhhoạt độngcủahệthốnglàmhệthốngngừngvàchuyểnhướngthựcthiđượcgọilà tínhiệu ngắt.NósẽngắtbộVXLkhỏihoạtđộngmànóđangthựcthivàchuyểnsangthựchiện mộtcôngviệckhácphụcvụchosựkiệnkíchhoạtngắttươngứng. Vídụnhưtrongquá trìnhthuthậpdữliệu,VXLluônphảichờđợithờiđiểmđónnhậndữliệuvàsẽkích hoạtsựkiệnngắtCPUmỗikhicódữliệuxuấthiệnđể kịpthờighidữliệuvàobộnhớ. Saukhihoànthành,CPUphụchồilạitrạngtháicủahệthốngvàtrởlạitiếptụcthực hiệnchươngtrìnhtừthờiđiểm mànóbịngắt.Đốivớibộxửlýngắt,nósẽphảithực hiệnhainhiệmvụchínhđólà:(1)Xácđịnhcósựkiệnngắtvà(2)nhậndạngsựkiện ngắttrước khitácvụphụcvụngắttươngứngđượckíchhoạt.Hình5‐6môtảmộtchu trìnhcơbảnthựchiệnngắttrongcáchệVXL/VĐK. Hình5‐6:Chutrìnhthựchiệnngắt Hình5‐7:Vídụvềcấutrúcphầncứngxửlýngắt http://www.ebook.edu.vn 91 Hình5‐8:Cơchếthựchiệnthủtụcngắt ThủtụckíchhoạtmộttácvụphụcvụsựkiệnngắtđượcmôtảnhưtrongHình5‐8. ThôngthườngngườitahayquantâmnhiềuđếnđápứngcủaCPUvớisựkiệnngắtvà thờigianthựchiệntácvụngắt.Ởđâythờigianđápứngphụthuộcvàquyếtđịnhbởi tốcđộvàkhảnăngxửlýcủaphầncứngcònthờigianthựchiệntácvụ ngắtchủyếu quyếtđịnhbởitácvụngắtđódàihayngắnvàdochươngtrìnhquyếtđịnh. Hình5‐9:Vídụvềnguồnngắt(DSPTMS320C2812) 92 Cácnguồnngắtngoài/cứngcóthểđượcnhậndạngtheokiểutínhiệungắt • Theosườnxung(ngắtđượckíchhoạtkhixuấthiệnsườnxungdươngtớichân nhậntínhiệungắt) • Theomức(ngắtđượckíchhoạtkhixuấthiệnmộttínhiệuxungmứctíchcựctới chânnhậntínhiệungắt) Mộtsựkiệnngắtcũngcóthểđượckíchhoạt chỉbởimộthoạtđộngđọchoặcviếtvào mộtthanhghithiếtbịngoạivihoặccácthanhghiđiều khiểnhoặctrạngthái. Sựxungđộttranhchấpgiữacácnguồnngắt cùngxuấthiệntạimộtthờiđiểmcóthể đượcgiảiquyếtbằngmứcđộưutiênhoặckếtnốicứngvớibộxửlý.Cácnguồnngắt ngoàicóthểđượctối giảnviệcxửlýbằngsựkếthợpvớiphầnmềmvàcùngchias ẻcác đườngtínhiệungắt.Cơchếthựchiệnngắtcósựtranhchấpvàgiảiquyếtb ằng mứcđộ ưutiênđượcmôtảnhưtrongHình5‐10. Hình5‐10:Cơchếthựchiệnngắttheomứcđộưutiên . Nếucómộtluồngđangthựcthibêntrongmộtmonitornósẽkhoácácluồng khácmuốnvào,dođómonitorcũngphảicómộthàngđợi. 90 5. 4 Xử lý ngắt Tínhiệu điều khiển bộVXLkíchhoạtbởimộtsựkiệnthamgia trongquátrìnhhoạt độngcủa hệ thống làm hệ thống ngừngvàchuyểnhướngthựcthiđượcgọilà tínhiệu ngắt.NósẽngắtbộVXLkhỏihoạtđộngmànóđangthựcthivàchuyểnsangthựchiện mộtcôngviệckhácphụcvụchosựkiệnkíchhoạtngắttươngứng. Vídụnhưtrongquá trìnhthuthậpdữliệu,VXLluônphảichờđợithờiđiểmđónnhậndữliệuvàsẽkích hoạtsựkiệnngắtCPUmỗikhicódữliệuxuấthiệnđể kịpthờighidữliệuvàobộnhớ. Saukhihoànthành,CPUphụchồilạitrạngtháicủa hệ thống vàtrởlạitiếptụcthực hiệnchươngtrìnhtừthờiđiểm mànóbịngắt.Đốivớibộxửlýngắt,nósẽphảithực hiệnhainhiệmvụchínhđólà:(1)Xácđịnhcósựkiệnngắtvà(2)nhậndạngsựkiện ngắttrước khitácvụphụcvụngắttươngứngđượckíchhoạt.Hình 5 6môtảmộtchu trìnhcơbảnthựchiệnngắttrongcác hệ VXL/VĐK. Hình 5 6:Chutrìnhthựchiệnngắt Hình 5 7:Vídụvềcấutrúc phần cứngxửlýngắt http://www.ebook.edu.vn 91 Hình 5 8:Cơchếthựchiệnthủtụcngắt ThủtụckíchhoạtmộttácvụphụcvụsựkiệnngắtđượcmôtảnhưtrongHình 5 8. ThôngthườngngườitahayquantâmnhiềuđếnđápứngcủaCPUvớisựkiệnngắtvà thờigianthựchiệntácvụngắt.Ởđâythờigianđápứngphụthuộcvàquyếtđịnhbởi tốcđộvàkhảnăngxửlýcủa phần cứngcònthờigianthựchiệntácvụ ngắtchủyếu quyếtđịnhbởitácvụngắtđódàihayngắnvàdochươngtrìnhquyếtđịnh. Hình 5 9:Vídụvềnguồnngắt(DSPTMS320C2812) 92 Cácnguồnngắtngoài/cứngcóthểđượcnhậndạngtheokiểutínhiệungắt •. Đòihỏiphảicóthôngtinthờigianchínhxácvềcáctácvụđểtínhtoánlậplịch Mộtthuậttoánlậplịchtĩnhđượcgọilàtốiưunếunóluônluôn cóthểtìmđượcmột lịch điều phốithoảmãncácràngbuộcđãchotrongkhimộtthuậttoántĩnhkháccũng tìmđượcmộtlờigiải. Lậplịchonline/động:Bộxửlýth ựchiệnviệclậplịchtrongquátrìnhthựcthidựatrên cơsởcácthôngtinhoạtđộnghiệnhànhcủa hệ thống. Sơđồlậplịchlàkhôngxácđịnh trướcvàthayđổiđộngtheo quátrìnhthựchiện. Cácthuậttoánlậplịchtĩnhtốiưukhôngphảilàtốiưutrong hệ thống động. 84 Khôngtồntạimộtlờigiảitốiưuchoviệclậplịchtrong hệ thống nhiềubộxửlýnếu thờiđiểmxuấthiệnyêucầuthựcthicủacáctác vụkhôngđượcbiếttrước. Cáchạtnhânđược điều khiển theocơchếngắtthườngthựcthicơchếlậplịchnon‐ preemtiveđộngtrongkhiloạihạtnhânvậnhànhtheoquátrìnhlại thựcthitheocơchế preemptiveđộng. Mộtthuật toánlậplịchđộngđượcgọilàtốiưunếunócóthểtìmrađượcmộtlịch điều phối điều khiển hệ thống thoảmãncác ràngbuộcthờigianđãchobấtkểkhinàomà thuậttoántĩnhkhôngtìmrađược. Lậplịchtậptrunghoặcphântán:Việclậplịchđượcthựchiệnápdụngchocác tácvụ thựcthibởimột(tậptrung)hoặcnhiềubộxửlý(phântán). LậplịchMonohayMulti‐processor:Nhiệmvụlậplịchvàthựcthiđượcđảmnhiệmbởi một(mono) hoặcnhiềubộvixửlý(multi).Tuỳthuộc. Semaphorescóthểđượcsửdụngđểgiảiquyếtbấtkỳmộtbàitoánhayvấnđề đồngbộtruyền thống nào 9 Tuynhiênchúngcómộtsốnhượcđiểm o Chúngchủyếu sửdụngcácbiếntoàncụctrongviệc điều khiển hoạtđộng đồngbộnêncóthểtruynhậpbấtkỳđâutrong hệ thống Ækhókiểmsoát o