Tải bản đầy đủ (.pdf) (6 trang)

Hệ thống điều khiển nhúng - Phần 5 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (815.44 KB, 6 trang )


81
5 KỸ THẬT LẬP TRÌNH NHÚNG
5.1 Tác vụ và quá trình (process)
 Tácvụ(task)?Làmộtcôngviệccầnthựcthithamgiatronghệthống
 Quátrình(process)làmộtdiễnbiếnthựcthimộttácvụcủahệthống.

Đôikhingườ
itavẫndùnglẫnhaikháiniệmnàyvàkhôngphânbiệt.
Tácvụchukỳ(period)vàkhôngchukỳ(aperiod)

Cáctácvụphảithựchiệnlặplạimộtcáchđềuđặntheonhững
khoảngthờigianpđược
gọilàcáctácvụcóchukỳvàpđượcgọilàchukỳcủatácvụ.Cácloạitácvụkhácthì
đượcgọilàtácvụkhôngchukỳ.
5.2 Lập lịch (Scheduling)
Tạisaophảilậplịch?
Đểđảmbảođượccơchếthực thichias ẻtàinguyênhữuhạnvàthoảmãnyêucầuthời
gianthực.Lậplịchphảinhằmthoảmãnhayđạttớ
iđượcsựthoảhiệpgiữacácràng 
buộcvềtàinguyên,sựphụthuộclẫnnhauhaythờigianthựchiện.
5.2.1 Các khái niệm
Lậplịchlàmộtphépthựchiệnphânbổvàgánquytrìnhthựcthicáctácvụchobộxửlý
saochomỗitácvụđượcthựchiệnhoàntoàn.

Lậplịch=tìmkiếmmột
giảnđồphânbốthờigianthựchiệnđanhiệmhợplývớicác
điềukiệnràngbuộcchotrước.Haynóicáchkháclàbộlậplịchphảixửlýđểquyếtđịnh
vàđiều
phốiquátrình/tácvụthựchiện.


Cómộtsốthôngtinvềtácvụluônphảiquantâmđốivớib ấtkỳbộlậplịchthờigian
thựcnào,baogồm:
• Thờigianxuấthiện
i
a (arrivaltime):Khisựkiệnxảyravàtácvụtươngứngđược
kíchhoạt.
• Thờiđiểmbắtđầuthựcthi
i
r (releasetime):Thờiđiểmsớmnhấtkhiviệcxửlýđã
sẵnsàngvàcóthểbắtđầu.
• Thờiđiểmbắtđầuthựchiện
i
s (startingtime):Làthờiđiểmmàtạiđótácvụbắt
đầuviệcthựchiệncủamình.
• Thờigiantínhtoán/thựcthi
i
c (Computationtime):Làkhoảngthờigiancầnthiết
đểbộxửlýthựchiệnxongnhiệmvụcủamìnhmàkhôngbịngắt.
• Thờiđiểmhoànthành
i
f
(finishingtime):Làthờiđiểmmàtạiđótácvụhoànthành
việcthựchiệncủamình.
• Thờigianrủiro/xấunhất
i
w (worstcasetime):khoảngthờigianthựchiệnlâunhất
cóthểxảyra.
82
• Thờiđiểmkếtthúc
i

d (duetime):Thờiđiểmmàtácvụphảihoànthành.

Hình5‐1:GiảnđồthựchiệncủamộttácvụT
i
Trêncơsởđóbộlậplịchsẽphảithựchiệnbàitoántốiưuvề:
 Thờigianđápứng(responsetime)
 Hiệusuấtthựchiện(sốlượngcôngviệcthựchiện
xongtrongmộtđơnvịthời
gian)
 Sựcôngbằngvàthờigianchờđợi(cáctácvụkhôngphảichờđợiquálâu)

Vídụvềmộtlịchthựchiện2tácvụđượcmôtảnhưtrongHình
5‐2.


Hình5‐2:Giảnđồlậplịchthựchiện2tácvụ
Trongtrườnghợpcủavídụnàycácthôngsốvềthờigianthựchiệncủacáctácvụtính
đượcnhưsau:
¾ Thờigiantínhtoán
1
9C = và
2
12C = .
¾ Thờigianbắtđầuthựchiện:
1
0s = ,
2
6s = .
¾ Thờiđiểmhoànthành:
1

18f = ,
2
28f = .
¾ Khoảngthờigianchênhlệchthờiđiểm kếtthúcvàdeadline(Lateness)
iii
Lfd=−:
1
4L =− ,
2
1L = .
¾ Khoảngthờigianrỗi/dưthừagiữathờigianchophépthựchiệnvàthờigiancần
đểthựchiệntácvụ(Laxity)
iiii
X
daC=−−:
1
13X = ,
2
11X = .
5.2.2 Các phương pháp lập lịch phổ biến


83

Hình5‐3:Phânloạicácphươngpháplậplịch
Tuỳthuộcvàoloạihìnhtácvụ,ngườitarahaiphươngpháplậplịchlàcóchukỳvà
khôngcóchukỳ.

Lập lịch non‐preemptive:Phương phápnàyđảmbảo các tác vụđược th
ực hiệnhoàn

thànhmỗikhithựcthi,vìvậythờigianđápứngchocácsựkiệnkháccó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‐
preemptivekhithờigianthựcthicáctácvụlâu.Cáctácvụsẽđượcthựchiệnvàcóthểbị
ngắtgiữachừngđểphụcvụthựcthicáctácvụkhác.Cơchếlậplịchnày
chophépđảm
bảothờigianđápứngchocácsựkiệnvàtácvụngắnvànhanhhơn.

Lậplịchoffline/tĩnh:Việclậplịchđượcthựchiệndựatrêncáchiểubiếthoặ
cdựbáovề
cácsựkiệntácvụthựchiệntronghệthống(thờiđiểmxuấthiện,thờigianthựchiện,
deadline…)vàđượcquyếtđịnhtạithờiđiểmthiếtkếvàđược
ápdụngcốđịnhtrong
suốtquátrìnhhoạtđộngcủahệthống.Việclậplịchtrướccómộtsốcácưuđiểmsau:
• Tácvụtiếptheocóthểđượclựachọnthựcthitrongkhoảngthờigianlàhằngsố
• Khảnăngđápứngyêucầuthờigianthựccóthểđượcbiếttrướcvàđượcđảm
bảo
Nhượcđiểm:
o Khôngthểthayđổilịchtrìnhthựchiệncủahệthốngtrongquátrìnhthự
chiện
o Đòihỏiphảicóthôngtinthờigianchínhxácvềcáctácvụđểtínhtoánlậplịch
Mộtthuậttoánlậplịchtĩnhđượcgọilàtốiưunếunóluônluôn
cóthểtìmđượcmột
lịchđiềuphốithoảmãncácràngbuộcđãchotrongkhimộtthuậttoántĩnhkháccũng
tìmđượcmộtlờigiải.

Lậplịchonline/động:Bộxửlýth
ựchiệnviệclậplịchtrongquátrìnhthựcthidựatrên
cơsởcácthôngtinhoạtđộnghiệnhànhcủahệthống.Sơđồlậplịchlàkhôngxácđịnh

trướcvàthayđổiđộngtheo
quátrìnhthựchiện.
Cácthuậttoánlậplịchtĩnhtốiưukhôngphảilàtốiưutronghệthốngđộng.
84
Khôngtồntạimộtlờigiảitốiưuchoviệclậplịchtronghệthốngnhiềubộxửlýnếu
thờiđiểmxuấthiệnyêucầuthựcthicủacáctác
vụkhôngđượcbiếttrước.
Cáchạtnhânđượcđiềukhiểntheocơchếngắtthườngthựcthicơchếlậplịchnon‐
preemtiveđộngtrongkhiloạihạtnhânvậnhànhtheoquátrìnhlại
thựcthitheocơchế
preemptiveđộng.

Mộtthuật toánlậplịchđộngđượcgọilàtốiưunếunócóthểtìmrađượcmộtlịchđiều
phốiđiềukhiểnhệthốngthoảmãncác
ràngbuộcthờigianđãchobấtkểkhinàomà
thuậttoántĩnhkhôngtìmrađược.

Lậplịchtậptrunghoặcphântán:Việclậplịchđượcthựchiệnápdụngchocác
tácvụ
thựcthibởimột(tậptrung)hoặcnhiềubộxửlý(phântán).

LậplịchMonohayMulti‐processor:Nhiệmvụlậplịchvàthựcthiđượcđảmnhiệmbởi
một(mono)
hoặcnhiềubộvixửlý(multi).Tuỳthuộc vàođộphứctạpvềthuậttoáncần
xửlýkhilậplịchmàngườitaquyếtđịnhphảisửdụngphươngpháplậplịch
monohay
multi‐processor.

Tínhkhảlậplịch:Mộthệthốngvớimộttậpcáctácvụvàcácđiềukiệnràngbuộcđược
gọilàkhảlậplịchnếutồntạiítnhấ

tmộtc ơchếlịchtrìnhthựchiệnthoảmãn cáctácvụ
vàđiềukiệnràngbuộcđó.

Vídụvềlậplịchchohệthốngđanhiệmvới2tácvụ.Tácvụ1thực
hiệntheochukỳvà
tácvụ2thựchiệnkhôngtheochukỳvớithờigianthựcthilớnhơnthờigianchukỳlặp
lạicủatácvụ1.


Hình5‐4:Giảnđồthờigianthựchiệnlịchcủatácvụ

85
5.2.3 Kỹ thuật lập lịch
FCFS
Trongcơchếlậplịchđếntrướcđượcphụvụtrướcthìcácquátìnhđượcxửlýtheothứ
tựmànóxuấthiệnyêucầuvàchođếnkhihoànthành.Cơchếlậplịchnàythuộc
loại
khôngngắtđượcvàcóưuđiểmlàdễdàngthựcthi.Tuynhiên,nókhôngphùhợpcho
cáchệthốngmàhỗtrợnhiềungườisửdụngvìcómộtsựbiếnđổilớnvề
thờigian
trungbìnhmàmộtquátrìnhhaytácvụphảichờđợiđểđượcxửlý.Hơnnữadoviệc
xửlýkhôngngắtđượcnêncóhiệntượngchiếmhữuđộcquyềnbộxửlýtrongth
ờigian
dàivàcóthểgâyrasựtrễbấtthườngtrongquátrìnhthựchiệncủacáctácvụphảichờ
đợikhác.

ShortestJobFirst‐SJF
Trongcơchếlậplịchnàytácvụcóthờigianthựcthingắnnhấtsẽcóquyềnưutiêncao
nhấtvà sẽđượcphục vụtrước. Vấnđềchính gặp phải trongcơ chế lậplịch nàylà
khôngbiếttrướcđượcthờigianth

ựcthicủacáctácvụthamgiatrongchươngtrìnhvà
thôngthườngphảiápdụngcơchếtiênđoánvàđánhgiádựavàokinhnghiệmvềcác
tácvụthựcthitronghệthống.Điềunàychắ
cchắnrấtkhóđểluônđảmbảođượcđộ
chínhxác.Cơchếlậplịchnàycóthểápdụngchocảloạingắtđượcvàkhôngngắtđược.

Ratemonotonic(RM):
PhươngpháplậplichRMcólẽ
hiệnnàylàthuậttoánđượcbiếttớinhiềunhấtápdụng
chocáctácvụhayquátrìnhđộclập.Phươngphápnàydựatrênmộtsốgiảthiếtsau:
(1) Tấtcảcáctácvụtham
giahệthốngphảicódeadlinekiểuchukỳ
(2) Tấtcảcáctácvụđộclậpvớinhau
(3) Thờigianthựchiệncủacáctácvụbiếttrướcvàkhôngđổi
(4) Thờigianchuyể
nđổingữcảnhthựchiệnlàrấtnhỏvàcóthểbỏqua

ThuậttoánRMđượcthựcthitheonguyênlýgánmứcưutiênchocáctácvụdựatrên
chukỳcủachúng.Tácvụnàocó
chukỳnhỏthìsẽcóđượcgánmứcưutiêncao.Theo
nguyênlýnàyvớicáctácvụchukỳkhôngthayđổithìRMsẽlàphươngpháplậplịch
chophépngắtvàmứcưutiêncốđịnh.Tuynhiên
RMhỗtrợyêucầuhệthốngkhông
tốt.

Earliest‐deadline‐first(EDF)
Nhưđúngtêngọicủaphươngpháp,thuậttoánlậplichtheophươngphápnàysửdụng
deadlinecủatácvụhaynhưđiều
kiệnưutiênđểxửlýđiềuphốihoạtđộng.Tácvụcó
deadlinegầnnhấtsẽcómứcưutiêncaonhấtvàcáctácvụcódeadlinexanhấtsẽnhận

mứcưutiênthấpnhất.Ư
uđiểmnổibậtcủaphươngphápnàylàgiớihạncóthểlậplịch
đápứngđược100%chotấtcảcáctậptácvụ.Hơnnữamứcưutiêngánchomỗi
tácvụ
trongquátrìnhhoạtđộnglàđộngvìvậychukỳcủatácvụcóthểthayđổibấtkỳlúc
nàotheothờigian.

86
EDFcóthểđượcápdụngchocáctậptácvụchukỳvàcũngcóthểmởrộngđểđápứng
chocáctrườnghợpcácdeadlinethayđổikhácnhautheochukỳ.

Vấnđềchínhcủathuậttoán
lậplichEDFlàkhôngthểđảmbảođượctácvụnàotrong
hệthốngcóthểkhôngđượcthựcthitrongtìnhhuốngquáđộhệthốngbịquátải.Trong
nhiềutrườnghợpmặcdùmứcđộsửd
ụngtrungbìnhnhỏhơn100%nhữngvẫncóthể
trongmộttìnhhuốngnàođóvẫnvượtquakhảnăngđápứngcủahệthốngtứclàsẽcó
tácvụkhôngđượcđảmbảothực
thiđúng.Trongnhữngtrườnghợpnhưvậycầnphải
điềukhiểnđểbiếttácvụnàobịlỗikhôngthựchiệnthànhcônghoặctácvụnàođược
thựchiệnthànhcôngtrongquátrình
quáđộ.

MinimumLaxityfirst(MLF)
Cơchếlậplịchnàysẽưutiêntácvụnàocònítthờigiancònlạiđểthựchiệnnhấttrước
khinóphảikếtthúcđểđảmbảoyêucầuthự
cthiđúng.Đâyđượcxemlàcơchếlậplịch
gánquyềnưutiênđộngvàdễđạtđượcsựtốiưuvềhiệusuấtthựchiệnvàsựcông
bằngtronghệthống.


RoundRobin
Đâylàmộtcơchếlậplịchphânbổđềuđặn,ngắtđượcvàđơngiản.Mỗimộttácvụ
đượcxửlý/phụcvụtrongmộtkhoảngthờigiannhấtđịnhvàlặplạitheom ộtchu
trình
xuyênsuốttoànbộcáctácvụthamgiatronghệthống.Khoảngthờigianphụcvụcho
mỗitácvụtrongquátrìnhlàmộtsựthoảhiệpgiữathờigianthựchiệnc ủacác
tácvụ
vàthờigianthựchiệnmộtchutrình.Cóthểchọnkhoảngthờigianđórất nhỏvàđôi
lúcchúngtakhôngnhậnđượcrarằngđangcósựphânbổthựchiệntronghệth
ống.
Tuynhiênnếuthờigianđóquánhỏcóthểlàmmấttínhhiệuquảthựchiệntoànhệ
thốngvìcầnnhiềuthờigiantrongviệcchuyểnđổingữcảnhchomỗitácvụ
saumỗi
chutrìnhthựchiện.

87
5.3 Truyền thông và đồng bộ
5.3.1 Semaphore

Hình5‐5:Truyềnthôngquátrình
Semaphoreslàmộtcấutrúcdữliệuđượcđịnhnghĩađểloạitrừkhảnăngxungđột
trongquátrìnhchiasẻtàinguyêncủacáctácvụtronghoạtđộngcủahệthống.

Semaphoreshỗtrợhaihoạtđộngchính
nhưsau:
 wait(semaphore):giảmvàkhoáchotớikhisemaphoređượcmở
 signal(semaphore): tăng và chophép thêmmột luồngmớiđược thamgia hoạt
động
Tronghoạtđộngphốihợpcùngvớisemaphore
cómộthàngđợigồmcáctácvụcầnđược

thựcthisẽcómộtsốtìnhhuốnghoạtđộngcơbảnnhưsau:
Khimộtluồng(thread)gọiwait():
• Nếusemaphoređượcmởthìluồngđósẽđượcgianhậpvàtiếptụcthựcthi
• Nếu semaphoređangbị đóng thì nhánhđósẽ bịkhoá và phảinằm chờ
tronghàngđợichotớikhinàosemaphoređượcmở
signal()sẽmởsemaphore:
• nếumộtluồngđangnằmtronghàngđợivàkhôngbịkhoá
• nếukhôngcóluồngnàotronghàngđợivàtínhiệusignalsẽđượcnhớvà
dànhcholuồngtiếptheo

CácloạiSemaphore
Mutexsemaphore
9 Chophépđiềukhiểnhoạtđộngtruynhậpđơnlẻvàotàinguyênchiasẻcủa
hệthống.
88
9 Đảmbảoloạitrừxungđộttronghoạtđộngtruynhậpđồngthờicủanhiềutác
vụ,vàchỉcómộttácvụđượcthựcthitạimỗithờiđiểm.

Countingsemaphore
9
Điềukhiểntàinguyênmàcóthểphục vụcùngmộtlúcnhiềutácvụhoặcmột
nguồntàinguyênchophépphụcvụmộtsốnhấtđịnhcáctácvụkhôngđồng
bộvàhoạtđộngđồng
thời.
9 NhiềuluồngcóthểtruyềnSemaphore
9 SốlượngluồngđượcquyếtđịnhbởibiếnđếmNcủaSemaphore

Thựcchấtmutexsemaphorelàmộtdạngđặcbiệtcủacounting semaphorev
ớibiếnđếm
N=1.


ThựcthiSemaphore



SửdụngSemaphoretrongviệcđồngbộhaiquátrìnhtạovàsửdụnghạngmụcthông
quabộđệmtrunggian.




89
Nhậnxét:
9 Semaphorescóthểđượcsửdụngđểgiảiquyếtbấtkỳmộtbàitoánhayvấnđề
đồngbộtruyềnthốngnào
9 Tuynhiênchúngcómộtsốnhượcđiểm
o Chúngchủyếu
sửdụngcácbiếntoàncụctrongviệcđiềukhiểnhoạtđộng
đồngbộnêncóthểtruynhậpbấtkỳđâutronghệthốngÆkhókiểmsoát
o Khôngcósựliênkếtchặtchẽ
giữasemaphorevàdữliệumàđượcnóđiều
khiển.
o Đượcsửdụngđồngthờichocảviệcloạitrừxungđột(mutualexclusion)và
hoạtđộngđồngbộchocáctácvụ(scheduling)
5.3.2 Monitor
Monitorlàmộtngônngữlậptrìnhđượcxâydựngđểđiềukhiểnviệctruynhậpvào
vùngdữliệuchiasẻtronghoạtđộngcủahệthống.Mãchươngtrìnhđồngbộđượcbổ
sungvàotrongbộbiên
dịchvàthựcthikhichạychươngtrình.
3Monitorlàmộtmodulđónggói

• Cáccấutrúcdữliệuđượcchiasẻ
• Cácthủtụchoạtđộngthaotáctrêncáccấutrúcdữliệuchiasẻ
• Đồngbộcácluồngthựcthiđồngthờimàcóthểkíchhoạtcácthủtụctrong
hoạtđộnghệthống
3Monitorcóthểbảovệdữliệukhỏisựtruynhậpkhôngcócấutrúc.Nó
đảmbảorằng
cácluồngtruynhậpvàodữliệuthôngquacácthủtụctươngtáctheonhữngcáchhợp
phápvàcókiểmsoát.
3Monitorđảmbảoloạitrừxungđột
• Chỉcómộtluồngcóthểthựcthibấtkỳthủtụcnàotạimỗimộtthờiđiểm
(luồngtrongmonitor)
• Nếucómộtluồngđangthựcthibêntrongmộtmonitornósẽkhoácácluồng
khácmuốnvào,dođómonitorcũngphảicómộthàngđợi.


90
5.4 Xử lý ngắt
TínhiệuđiềukhiểnbộVXLkíchhoạtbởimộtsựkiệnthamgia trongquátrìnhhoạt
độngcủahệthốnglàmhệthốngngừngvàchuyểnhướngthựcthiđượcgọilà
tínhiệu
ngắt.NósẽngắtbộVXLkhỏihoạtđộngmànóđangthựcthivàchuyểnsangthựchiện
mộtcôngviệckhácphụcvụchosựkiệnkíchhoạtngắttươngứng.
Vídụnhưtrongquá
trìnhthuthậpdữliệu,VXLluônphảichờđợithờiđiểmđónnhậndữliệuvàsẽkích
hoạtsựkiệnngắtCPUmỗikhicódữliệuxuấthiệnđể
kịpthờighidữliệuvàobộnhớ.
Saukhihoànthành,CPUphụchồilạitrạngtháicủahệthốngvàtrởlạitiếptụcthực
hiệnchươngtrìnhtừthờiđiểm
mànóbịngắt.Đốivớibộxửlýngắt,nósẽphảithực
hiệnhainhiệmvụchínhđólà:(1)Xácđịnhcósựkiệnngắtvà(2)nhậndạngsựkiện

ngắttrước
khitácvụphụcvụngắttươngứngđượckíchhoạt.Hình5‐6môtảmộtchu
trìnhcơbảnthựchiệnngắttrongcáchệVXL/VĐK.


Hình5‐6:Chutrìnhthựchiệnngắt



Hình5‐7:Vídụvềcấutrúcphầncứngxửlýngắt

91

Hình5‐8:Cơchếthựchiệnthủtụcngắt
ThủtụckíchhoạtmộttácvụphụcvụsựkiệnngắtđượcmôtảnhưtrongHình5‐8.
ThôngthườngngườitahayquantâmnhiềuđếnđápứngcủaCPUvớisựkiệnngắtvà

thờigianthựchiệntácvụngắt.Ởđâythờigianđápứngphụthuộcvàquyếtđịnhbởi
tốcđộvàkhảnăngxửlýcủaphầncứngcònthờigianthựchiệntácvụ
ngắtchủyếu
quyếtđịnhbởitácvụngắtđódàihayngắnvàdochươngtrìnhquyếtđịnh.


Hình5‐9:Vídụvềnguồnngắt(DSPTMS320C2812)
92
Cácnguồnngắtngoài/cứngcóthểđượcnhậndạngtheokiểutínhiệungắt
• Theosườnxung(ngắtđượckíchhoạtkhixuấthiệnsườnxungdươngtớichân
nhậntínhiệungắt)
• Theomức(ngắtđượckíchhoạtkhixuấthiệnmộttínhiệuxungmứctíchcựctới
chânnhậntínhiệungắt)

Mộtsựkiệnngắtcũngcóthểđượckíchhoạt
chỉbởimộthoạtđộngđọchoặcviếtvào
mộtthanhghithiếtbịngoạivihoặccácthanhghiđiều khiểnhoặctrạngthái.

Sựxungđộttranhchấpgiữacácnguồnngắt
cùngxuấthiệntạimộtthờiđiểmcóthể
đượcgiảiquyếtbằngmứcđộưutiênhoặckếtnốicứngvớibộxửlý.Cácnguồnngắt
ngoàicóthểđượctối
giảnviệcxửlýbằngsựkếthợpvớiphầnmềmvàcùngchias ẻcác
đườngtínhiệungắt.Cơchếthựchiệnngắtcósựtranhchấpvàgiảiquyếtb ằng
mứcđộ
ưutiênđượcmôtảnhưtrongHình5‐10.


Hình5‐10:Cơchếthựchiệnngắttheomứcđộưutiên

×