H thi gian thc
1
MC LC
Gii thiu :
CHNG 1 : TNG QUAN V H THI GIAN TH!C
1. Khái nim h th&ng thi gian thc :
2. Các lo*i h th&ng thi gian thc:
3. ,-c .i/m c0a các h th&ng thi gian thc
4. Thi gian trong h th&ng thi gian thc:
4.1. ,3ng h3 h th&ng:
4.2. Các lo*i .3ng h3 h th&ng:
4.3. Quan nim v6 s ri r*c thi gian:
4.4. Ràng bu;c v6 thi gian:
5. X> lý thi gian thc
6. H th&ng .i6u khi/n và h thi gian thc
CHNG 2 : H ,IU HÀNH THI GIAN TH!C
1. ,*i cCDng v6 h .i6u hành thi gian thc
1.1. H .i6u hành
1.2. H .i6u hành th i gian thc so vEi h .i6u hành trên PC
1.3. ,-c .i/ m c0a h .i6u hành thi gian thc
1.4. Phân lo*i h .i6u hành thi gian thc
4.1. H iu hành thi gian thc nh vi mc ích thng mi
4.2. H iu hành thi gian thc m r ng ti Unix và các h iu hành khác
4.3. Các nhân cho mc ích nghiên c*u
2.TI chJc và kiKn trúc h .i6u hành thi gian th c
2.1. Tng quan
2.2. Các ki+n trúc h iu hành
2.2.1.Vi ht nhân :
2.2.2.n ht nhân:
2.3. H*t nhân h .i6u hành thi gian thc
2.3.1.H th-ng thi gian thc nh:
2.3.2. Công ngh a nhim
2.3 3. Các d1ch v cung c2p bi ht nhân
3. Các dNch vO cD bPn
3.1. Tác v và các trng thái tác v
3.2. B l8p l1ch
3.3. Tác v và d9 liu
3.4. :èn báo và chia s= d9 liu (Semaphore)
4. Các dNch vO mQ r;ng c0a RTOS thCD ng m*i
4.1. Message Queues, Mailboxes và Piles
a. Hàng Fi - Queue
b. Mailbox
c. Pipe
d. SH dng queue, mailbox, pipe
H thi gian thc
2
4.2. Ch*c nJng b 1nh thi (Timer Functions)
4.3. Các s kin - Event
4.4. Các hàm ngMt trong môi trng RTOS
5. GiEi thiu m;t s& h .i6u hành thi gian thc
5.1. RTX51-Real Time Operating System
5.2. ARTX-Advanced Real Time Operating System
5.3. TC/OS
5.4. QNX Neutrino
a. Kin trúc microkernel
b. Giao tip liên quá trình d&a trên vic truy)n th*ng ,ip
CHNG 3 : KT THUT LUP TRÌNH THI GIAN TH!C
1 Tác vO và quá trình (process)
2. ,a nhim (Multitasking) và .3ng thi (Concurrency)
2 L^p lNch (Scheduling)
2.1 Các khái nim
2.2 Các phCDng pháp l^p lNch phI biKn
2.2.1.L^p lNch offline/tanh:
2.2.2.L^p lNch online/.;ng:
2.2.3.L^p lNch t^p trung ho-c phân tán:
2.2.4.L^p lNch Mono hay Multi-processor:
2.3 Kc thu^t l^p lNch
2.3.1.FCFS
2.3.2.Shortest Job First -SJF
2.3.3.Rate monotonic (RM):
2.3.4.Earliest-deadline-first (EDF)
2.3 5Minimum Laxity first (MLF)
2.3.6.Round Robin
3 Truy6n thông và .3ng b;
3.1 Semaphore
3.2.Các lo*i Semaphore
3.3 Monitor
3.4 X> lý ngjt
CHNG 4 : THIkT Kk lNG DNG THI GIAN TH!C
1. B; .Nnh thi gian c0a 8051
2.1 Các thanh ghi cD sQ c0a b; .Nnh thi.
2.1.1 Các thanh ghi c0a b; Timer 0.
2.1.2 Các thanh ghi c0a b; Timer 1.
2.1.3 Thanh ghi TMOD (chK .; c0a b; .Nnh thi).
a.Các bít M1, M0:
b. C/ T (Xng hX/ b 1nh thi).
c. Bít cYng GATE.
2.1.4 Ngu3n xung .3ng h3 cho b; .Nnh thi:
H thi gian thc
3
1.2. Các chK .; c0a b; .Nnh thi
1.2.1 L^p trình cho chK .; Mode1.
1.2.2. Các bCEc l^p trình Q chK .; Mode 1.
1.2.3 Tìm các giá trN cpn .Cqc n*p vào b; .Nnh thi.
1.2.4 ChK .; 0.
1.2.5 L^p trình chK .; 2.
2. L^p trình x> lý ngjt
H thi gian thc
4
GIrI THIU
Giáo trình này nh2m cung c3p cho sinh viên các n5i dung ch6 yu sau ,ây
- T9ng quan v) h th*ng th:i gian th&c và ;ng d<ng
- Môi tr?:ng chung quanh c6a h th*ng máy tính th:i gian th&c
- Kin trúc phân b* cho h th*ng th:i gian th&c
- Th:i gian toàn c<c; mô hình c6a h th*ng th:i gian th&c
- i l?Bng th:i gian th&c và khái nim Cnh
- Các giao tip th:i gian th& c;
- Các giao th;c kích hot do th:i gian; input/output;
- Các h ,i)u hành th:i gian th&c; ,Fnh th:i; validation;
- Thit k h th*ng; kin trúc kích hot do th:i gian.
H thi gian thc
5
CHNG 1 :
TNG QUAN V H THI GIAN TH!C
REALTIME SYSTEM - RTS
MOc .ích :
GiEi thiu tIng quan v6 mô hình h thi gian thc, các khái nim
cD bPn c0a h thi gian thc, c .i/m c0a các h thi gian thc, phân bit các
h thi gian thc . ChCDng này cvng .3ng thi giEi thiu h th&ng .i6u khi/n
vEi thi gian thc
Trong nhGng nHm gIn ,ây, các h th*ng ,i)u khiKn theo th:i gian th&c là
m5t trong nhGng lLnh v&c thu hút nhi)u s& chú ý trong gii khoa hNc nghiên c;u
v) khoa hNc máy tính. Trong ,ó, v3n ,) ,i)u hành th:i gian th&c và v3n ,) lPp lFch
là ,Qc bit quan trNng. M5t s* ;ng d<ng quan trNng c6a h th*ng th:i gian th&c
(RTS) ,ã và ,ang ,?Bc ;ng d<ng r5ng rãi hin nay là các dây chuy)n sCn xu3t t&
,5ng, rôb*t, ,i)u khiKn không l?u, ,i)u khiKn các thí nghi m t& ,5ng, truy)n thông,
,i)u khiKn trong quân s& Th h ;ng d<ng tip theo c6a h th*ng này sW là ,i)u
khiKn rôb*t có hot ,5ng gi*ng con ng?:i, h th*ng kiKm soát thông minh trong các
nhà máy công nghip, ,i)u khiKn các trm không gian, thH m dò ,áy ,i d?ng
1. Khái nim h th&ng thi gian thc :
M5t h th*ng th:i gian th&c (RTS – Realtime Systems) có thK ,?Bc hiKu nh?
là m5t mô hình xZ lý mà tính ,úng ,[n c6a h th*ng không ch\ ph< thu5c vào kt
quC tính toán lôgic mà còn ph< thu5c vào th:i gian mà kt quC này phát sinh ra.
H th*ng th:i gian th&c ,?Bc thit k nh2m cho phép trC l:i (response) li
các yu t* kích thích phát sinh t_ các thit bF phIn c;ng trong m5t ràng bu5c th:i
gian xác ,Fnh. ` ,ây ta có thK hiKu th nào là m5t RTS b2ng cách hiKu th nào là
m5t tin trình, m5t công vic th:i gian th&c.
Nhìn chung, trong nhG ng RTS ch\ có m5t s* công vic ,?Bc gNi là công vic
th:i gian th& c, các công vic này có m5t m;c ,5 khbn c3p riêng phCi hoàn t3t, ví d<
m5t tin trình ,ang c* g[ng ,i)u khiKn hoQt giám sát m5t s& kin ,ang xC y ra trong
th gii th&c. Bdi vì mei s& kin xu3t hin trong th gii th&c nên tin trình giám
sát s& kin này phCi xZ lý theo kFp vi nhGng thây ,9i c6a s& ki n này. S& thay ,9i
c6a s& kin trong th gii th&c xCy ra r3t nhanh, mei tin trình giám sát s& kin này
phCi th&c hin vic xZ lý trong m5t khoCn th:i gian ràng bu5c gNi là deadline,
khoCn th:i gian ràng bu5c này ,?Bc xác ,Fnh bdi th:i gian b[t ,Iu và th:i gian
hoàn t3t công vic. Trong th&c t, các yu t* kích thích xCy ra trong th:i gian r3t
ng[n vào khoCng vài mili giây, th:i gian mà h th*ng trC l:i li yu t* kích thích ,ó
t*t nh3t vào khoCng d?i m5t giây, th?:ng vào khoCng vài ch<c mili giây,
khoCng th:i gian này bao gfm th:i gian tip nhPn kích thích, xZ lý thông tin và trC
l:i li kích thích. M5t yu t* khác cI n quan tâm trong RTS là nhGng công vic th:i
gian th&c này có tuIn hoàn hay không ? Công vic tuIn hoàn thì ràng bu5c th:i gian
3n ,Fnh theo t_ng chu kh xác ,Fnh. Công vic không tuIn hoàn xC y ra vi ràng bu5c
th:i gian vào lúc b[ t ,I u và lúc kt thúc công vic, ràng bu5c này ch\ ,?Bc xác ,Fnh
vào lúc b[t ,Iu công vic. Các bin c* kích hot công vic không tuI n hoàn th?:ng
d&a trên ki thuPt xZ lý ng[t c6a h th*ng phIn c;ng.
H thi gian thc
6
V) mQt c3u to, RTS th?:ng ,?Bc c3u thành t_ các thành t* chính sau :
-fng hf th:i gian th&c : Cung c3p thông tin th:i gian th&c.
-B5 ,i)u khiKn ng[t : QuCn lý các bin c* không theo chu kh.
-B5 ,Fnh biKu : QuCn lý các qua trình th&c hin.
-B5 quCn lý tài nguyên : Cung c3p các tài nguyên máy tính.
-B5 ,i)u khiKn th&c hin : Khdi ,5ng các tin trình.
Các thành t* trên có thK ,?Bc phân ,Fnh là thành phIn c;ng hay m)m tùy
thu5c vào h th*ng và ý nghLa sZ d<ng. Thông th?:ng, các RTS ,?Bc kt hBp vào
phIn c;ng có khC nHng t*t hn so vi h th*ng phIn m)m có ch;c nHng t?ng ;ng
và tránh ,?Bc chi phí quá ,[t cho vic t*i ?u hoá phIn m)m. Ngày nay, chi phí
phIn c;ng ngày càng rl, chNn l&u ?u tiên phIn c;ng là m5t xu h?ng
chung.
2. Các lo*i h th&ng thi gian thc:
Các RTS th?:ng ,?B c phân thành hai loi sau Soft reatime system và
Hard realtime system :
* i vi Soft realtime system, th:i gian trC l:i c6a h th*ng cho yu t* kích
thích là quan trNng, tuy nhiên trong tr?:ng hBp ràng bu5c này bF vi phm, t;c là
th:i gian trC l:i c6a h th*ng v?Bt quá gii h n trn cho phép, h th*ng von cho phép
tip t<c ho t ,5ng bình th?:ng, không quan tâm ,n các tác hi do s& vi phm này
gây ra (Th?:ng thì tác hi này là không ,áng kK).
Ng?Bc li vi Soft realtime system là Hard realtime system, tr?:ng hBp này
ng?:i ta quan tâm kh[c khe ,n các hPu quC do s& vi phm gii hn th:i gian ,K
cho phép bdi vì nhGng hPu quC này có thK là r3t tfi t, thit hi v) vPt ch3t, có thK
gây ra nhGng Cnh h?dng x3u ,n ,:i s*ng con ng?:i. M5t ví d< cho loi này là h
th*ng ,i)u khiKn không l?u, m5t phân ph*i ,?:ng bay, th:i gian c3t cánh, h cánh
không hBp lý, không ,úng lúc có thK gây ra tai nn máy bay mà thCm hNa c6a nó
khó mà l?:ng tr?c ,?Bc.
Trong th&c t thì có nhi)u RTS bao gfm cC hai loi soft và hard. Trong cC
hai loi này, máy tính th?:ng can thip tr&c tip hoQc gián tip ,n các thit bF vPt
lý ,K kiKm soát cpng nh? ,i)u khiKn s& hot ,5ng c6a thit bF này. ; ng trên góc
,5 này, ng?:i ta th?:ng chia các RTS ra làm hai loi sau :
(1) Embedded system : B5 vi xZ lý ,i)u khiKn là m5t phIn trong toàn b5 thit bF, nó
,?Bc sCn xu3t trNn gói t_ yu t* c;ng ,n yu t* m)m t_ nhà máy, ng?:i sZ d<ng
không bit v) chi tit c6a nó và ch\ sZ d<ng thông qua các nút ,i)u khiKn, các bCng
s*. Vi h th*ng này, ta sW không th3 y ,?Bc nhGng thit bF nh? trong máy tính bình
th?:ng nh? bàn phím, màn hình mà thây vào ,ó là các nút ,i)u khiKn, các bCng
s*, ,èn tín hiu hay các màn hình chuyên d<ng ,Qc tr?ng cho t_ng h th*ng. Máy
giQt là m5t ví d<. Ng?:i sZ d<ng ch\ vic b3m nút chNn ch?ng trình giQt, xem kt
quC qua h th*ng ,èn hiu B5 vi xZ lý trong Embedded system này ,ã ,?Bc lPp
trình tr?c và g[n chQt vào ngay t_ khi sCn xu3t và không thK lPp trình li. NhGng
ch?ng trình này chy ,5c lPp, không có
H thi gian thc
7
s& giao tip vi h ,i)u hành (HH) cpng nh? không cho phép ng?:i sZ d<ng
can thip vào.
(2) Loi th; hai là bao gfm nhGng h th*ng có s& can thip c6a máy tính thông
th?:ng. Thông qua máy tính ta hoàn toàn có thK kiKm soát cpng nh? ,i)u khiKn mNi
hot ,5ng c6 a thit bF phIn c;ng c6a h th*ng này. NhGng ch?ng trình ,i)u khiKn
này có r3t nhi)u loi, ph<c v< cho nhi)u m<c ,ích khác nhau và có thK ,?Bc vit li
cho phù hBp vi yêu cIu th&c t. HiKn nhiên thì loi h th*ng này hot ,5ng ,?Bc
phCi cIn m5t HH ,i)u khiKn máy tính. HH này phCi có khC nHng nhPn bit ,?Bc
thit bF phIn c;ng, có khC nHng hoàn t3t công vic trong gii hn th:i gian nghiêm
ngQt. HH này phCi là HH h9 trB xZ lý th:i gian th&c – Realtime operating
system (RTOS).
3. ,-c .i/m c0a các h th&ng thi gian thc
Khái nim h th:i gian th&c không ,fng nghL a vi khái ni m h xZ lý t*c ,5
cao, xZ lý nhanh. Nu ta cho r2 ng, phCi là các ;ng d<ng ,i)u khiKn có yêu cIu th:i
gian tính toán r3t nhanh mi gNi là ,i)u khiKn th:i gian th&c, thì m5t câu hvi sW
,?Bc ,Qt ra là: nh? th nào mi ,?Bc gNi là nhanh? Ta có thK th*ng nh3t là, cw m5t
vài micro-giây là r3t nhanh, tuy nhiên nu m5t vài ch<c micro-giây thì sao, m5t
trHm micro-giây thì sao? Nu m5t trHm micro-giây mi gNi là nhanh, thì 101, 102,
có nhanh không? Các h ,i)u khiKn vi chu kh trích mou 5ms, 6 ms, 7ms có ,?Bc
gNi là h th:i gian th&c hay không?
Có thK nói m5t cách nôm na, tính th:i gian th&c là khC nHng ,áp kFp th:i và
chính xác. Và ta hoàn toàn có thK ,Fnh nghLa nh? th nào là kFp th:i theo b*n yêu
cIu khác nhau, nh? minh hNa
M5t h th*ng th:i gian th& c có các ,Qc ,iKm tiêu biKu sau:
* Tính bF ,5ng: H th*ng phCi phCn ;ng vi các s& kin xu3t hin vào các th:i ,iK m
th?:ng không bit tr?c. Ví d<, s& v?Bt ng?wng c6a m5t giá trF ,o, s& thay ,9i
trng thái c6a m5t thit bF quá trình phCi don ,n các phCn ;ng trong b5 ,i)u khiKn.
* Tính nhanh nhy: H th*ng phCi xZ lý thông tin m5t cách nhanh chóng ,K có thK
H thi gian thc
8
,?a ra kt quC phCn ;ng m5t cách kFp th:i. Tuy tính nhanh nhy là m5t ,Qc ,iKm
tiêu biKu, nh?ng m5t h th*ng có tính nHng th:i gian th&c không nh3t thit phCi có
,áp ;ng thPt nhanh mà quan trNng hn là phCi có phCn ;ng kFp th:i ,*i vi các yêu
cIu, tác ,5ng bên ngoài.
* Tính ,fng th:i: H th*ng phCi có khC nHng phCn ;ng và xZ lý ,fng th:i nhi)u s&
kin dinn ra. Có thK, cùng m5t lúc m5t b5 ,i)u khiKn ,?Bc yêu cIu th&c hin nhi)u
vòng ,i)u ch\nh, giám sát ng?wng giá trF nhi)u ,Iu vào, cCnh gii trng thái làm
vic c6a m5t s* ,5ng c.
* Tính ti)n ,Fnh: D& ,oán tr?c ,?Bc th:i gian phCn ;ng tiêu biKu, th:i gian phCn
;ng chPm nh3t cpng nh? trình t& ,?a ra các phCn ;ng. Nu m5t b5 ,i)u khiKn phCi
xZ lý ,fng th:i nhi)u nhim v<, ta phCi tham gia quyt ,Fnh ,?Bc v) trình t& th&c
hin các công vic và ,ánh giá ,?Bc th:i gian xZ lý mei công vi c. Nh? vP y ng?:i
sZ d<ng mi có c sd ,K ,ánh giá v) khC nHng ,áp ;ng tính th:i gian th&c c6a h
th*ng.
4. Thi gian trong h th&ng thi gian thc:
4.1. ,3ng h3 h th&ng:
Th:i gian h th*ng ,?Bc báo b2ng m5t ,fng hf gNi là ,fng hf h th*ng.
Trong môi tr?:ng có nhi)u vi xZ lý có thK tfn ti nhi)u ,fng hf, thì nhG ng ,fng hf
này phCi ,?Bc ,fng b5 vi nhau.
Có thK biKu dinn m;c ,5 chính xác c6a ,fng hf h th*ng qua hàm s* sau: C(t) = t,.
fng hf ,?Bc gNi là chính xác vào th:i ,iKm ti nu : C(ti) = ti
4.2. Các lo*i .3ng h3 h th&ng:
n giCn nh3t là h th*ng ch\ có m5t ,fng hf (sever clock), yêu cIu ,5
chính xác và tin cPy r3t cao. Loi này giá thành r3t ,[t.
M5t loi khác gfm m5t ,fng hf chính (master clock) ,fng b5 vi nhi)u
,fng hf ph< (slave clock) theo kiKu “polling”, t3t cC các ,fng có cùng ,5 chính xác,
nu ,fng hf chính bF hvng thì m5t trong nhGng ,fng hf ph< sW thay th.
*i vi các h th*ng phân tán, ,fng hf h th*ng bao gf m t3t cC các ,fng hf
phân tán và ,?Bc ,fng b5 vi nhau theo cùng m5t thuPt toán.
4.3. Quan nim v6 s ri r*c thi gian:
Trong quan nim c6a RTS, th:i gian ,?Bc xem nh? là m5t yu t* r:i rc.
ây là m5t khía cnh r3t ph;c tp và lý thú.
(1) Trong các HH kinh ,iKn, có m5t ,fng hf quCn lý th:i gian ,fng b5
giGa các tin trình. fng hf này phát sinh ra ng[t báo hiu cho h th*ng theo chu
kh. Chu kh này có thK ,?Bc ,i)u ch\nh nh?ng không quá nhanh hay quá chPm làm
Cnh h?dng ,n th:i gian th&c thi các tin trình, và th?:ng là vào khoCng
vài ch<c mili giây. Chính chu kh này ,ã chia th:i gian ra thành các mCnh
,6 nhv.
(2) Còn trong các RTOS, h th*ng sZ d<ng m5t ,fng hf có khC nHng lPp
H thi gian thc
9
trình ,i)u ph*i ng[t theo m5t chu kh ,6 nhv hBp lý, chu kh d h th*ng này vào
khoCng vài micrô giây.
Trong th&c t thì các RTS th?:ng d&a trên cách tip cPn kt hBp giGa hai
quan nim trên, th?:ng thì quan ,iKm (1) là n)n tCng có s& h9 trB c6a quan ,iKm(2).
4.4. Ràng bu;c v6 thi gian:
Vi mei yu t* kích thích, h th*ng tip nhPn vào m5t th:i ,iKm t0, h th*ng
tin hành c3p phát tài nguyên, th&c hin các xZ lý tính toán và hoàn t3t vic trC l:i
vào th:i ,iKm tk khác sau ,ó.
M5t ràng bu5c t*i thiK u có thK ,?Bc ,Fnh nghLa qua b5 ba sau:
(ID, Tbegin(condition1), Tend(condition2))
Trong ,ó: ID : Ch\ s* c6a tin trình
Tbegin(condition1) : Th:i gian b[t ,Iu tin trình
Tend(condition2) : Th:i gian tin trình hoàn t3t xZ lý
Ph< thu5c vào h th*ng và th:i gian xác ,Fnh ,?Bc tài nguyên cIn c3p phát,
cpng nh? quá trình giCi phóng tài nguyên sau khi tin trình sZ d<ng… M5t ràng
bu5c kh[c khe hn có thK xác ,Fnh nh? sau:
(ID, Tbegin(condition1), CID, FID, Tend(condition2)) dC(t) dt ti
Trong ,ó: ID : Ch\ s* c6a tin trình
Tbegin(condition1) : Th:i gian b[t ,Iu tin trình
Tend(condition2) : Th:i gian tin trình hoàn t3t xZ lý
CID : Th:i gian ?c tính c6a tin trình (s* mou th:i gian)
FID : TIn s* mou th:i gian
Mei ch\ thF c sd (Assembly) có m5t th:i gian th&c thi c* ,Fnh ph< thu5c
vào phIn c;ng, ví d< :
Ch\ thF Th:i gian th&c thi (clock)
MOV reg8, reg8 2 JMP 15 IRET 24 IN 10 OUT 10
Nh? vPy, mei tiKu trình th&c hin m5t công vic ,?Bc vit b2ng m5t nhóm
các ch\ thF (hàm) sW có th:i gian th&c hin là c* ,Fnh, thêm vào ,ó còn có th:i gian
dùng ,K khdi to tiKu trình, k t thúc tiKu trình don ,n th:i gian th&c hin công vic
,ó sW ln hn th:i gian th&c th< th&c hin tiKu trình. Câu hvi ,Qt ra là làm th nào
nhGng công vic có thK th&c thi m5t cách hoàn ch\nh trong th:i gian bF hn ch.
Câu trC l:i ,ó là c ch i)u Ph*i Quá Trình ,?Bc xem xét d phIn sau.
5. X> lý thi gian thc
XZ lý th:i gian th&c là hình th;c xZ lý thông tin trong m5t h th*ng ,K ,Cm
bCo tính nHng th:i gian th&c c6a nó. Nh? vP y, xZ lý th:i gian th&c cpng có các ,Qc
,iKm tiêu biKu nêu trên nh? tính bF ,5ng, tính nhanh nhy, tính ,fng th:i và tính
ti)n ,Fnh. K có thK phCn ;ng vi nhi)u s& kin dinn ra cùng m5t lúc, m5t h th*ng
xZ lý th:i gian th&c sZ d<ng các quá trình tính toán ,fng th:i.
H thi gian thc
10
Quá trình tính toán là m5t tin trình th&c hin m5t hoQc m5t phIn ch?ng
trình tuIn t& do h ,i)u hành quCn lý trên m5t máy tính, có thK tfn ti ,fng th:i vi
các quá trình khác kK cC trong th:i gian th&c hin lnh và th:i gian xp hàng ch:
,Bi th&c hin.
Các hình th;c t9 ch;c các quá trình tính toán ,fng th:i:
* XZ lý cnh tranh: Nhi)u quá trình tính toán chia sl th:i gian xZ lý thông tin c6a
m5t b5 xZ lý.
* XZ lý song song: Các quá trình tính toán ,?Bc phân chia th&c hin song song trên
nhi)u b5 xZ lý c6a m5t máy tính.
* XZ lý phân tán: Mei quá trình tính toán ,?Bc th&c hin riêng trên m5t máy tính.
Trong các hình th;c trên ,ây thì hình th;c xZ lý cnh tranh có vai trò ch6 ch*t. MQc
dù h th*ng ,i)u khiKn có thK có nhi)u trm, và mei trm có thK là m5t h ,a vi xZ
lý, s* l?Bng các quá trình tính toán cIn th&c hin th?:ng bao gi: cpng ln hn s*
l?Bng vi xZ lý. Trong khi m5t vi xZ lý không thK th&c hin song song nhi)u lnh, nó
phCi phân chia th: i gian ,K th&c hin xen kW nhi)u nhim v< khác nhau theo th; t&
tùy theo m;c ?u tiên và ph?ng pháp lPp lFch.
Trong các h th*ng ,i)u khiKn, khái nim tác v< (task) cpng hay ,?Bc sZ
d<ng bên cnh quá trình tính toán. Có thK nói, tác v< là m5t nhim v< xZ lý thông
tin trong h th*ng, có thK th&c hin theo c ch tuIn hoàn (periodic task) hoQc theo
s& kin (event task). Các dng tác v< qui ,Fnh trong chubn IEC
61131-3
(Programmable Controllers – Part3: Programming Languages) ,?Bc minh hNa trên
hình 2. Ví d<, m5t tác v< th&c hin nhim v< ,i)u khiKn cho m5t hoQc nhi)u mch
vòng kín có chu kh trích mou gi*ng nhau. HoQc, m5t tác v< có thK th&c hin nhim
v< ,i)u khiKn logic, ,i)u khiKn trình t& theo các s& kin xCy ra. Tác v< có thK th&c
hin d?i dng m5t quá trình tính toán duy nh3t, hoQc m5t dãy các quá trình tính
toán khác nhau.
6. H th&ng .i6u khi/n và h thi gian thc
H thi gian thc
11
Có thK nói, t3t các các h th*ng ,i)u khiKn là h th:i gian th&c. Ng?Bc li,
m5t s* ln các h th*ng th:i gian th&c là các h th*ng ,i)u khiKn. Không có h
th*ng ,i)u khiKn nào có thK hot ,5ng bình th?:ng nu nh? nó không ,áp ;ng ,?Bc
các yêu cIu v) th:i gian, b3t kK là h th*ng ,i)u khiKn nhit ,5, ,i)u khiKn áp su3t,
,i)u khiKn l?u l?Bng hay ,i)u khiKn chuyKn ,5ng. M5t b5 ,i)u khiKn phCi ,?a ra
,?Bc tín hiu ,i)u khiKn kFp th:i sau m5t th:i gian nhPn ,?Bc tín hiu ,o ,K ,?a
quá trình ki thuPt v) trng thái mong mu*n. M5t mng truy)n thông trong m5t h
th*ng ,i)u khiKn có tính nHng th:i gian th&c phCi có khC nHng truy)n tin m5t cách
tin cP y và kFp th:i ,*i vi các yêu cIu c6a các b5 ,i)u khiKn, các thit bF vào/ra, các
thit bF ,o và thit bF ch3p hành. Tính nHng th:i gian th&c c6a m5t h th*ng ,i)u
khiKn phân tán không ch\ ph< thu5c vào tính nHng th:i gian th&c c6a t_ng thành
phIn trong h th*ng, mà còn ph< thu5c vào s& ph*i hBp hot ,5ng giGa các thành
phIn ,ó.
Trong th&c t, yêu cIu v) tính th:i gian th&c ,*i vi mei ;ng d<ng ,i)u
khiKn cpng có các ,Qc thù khác nhau, m;c ,5 ngQt nghèo khác nhau. Ví d<, các h
th*ng ,i)u khiKn nhúng th?:ng ,?Bc ;ng d< ng vi các sCn phbm ch to hàng lot,
chi phí phIn c;ng cho t_ng sCn phbm cIn ,?Bc giCm thiKu, vì vPy dung l?Bng b5
nh cpng nh? hiu nHng vi xZ lý th?:ng th3p. Hn nGa, ,i)u khiKn nhúng li là giC i
pháp ,Qc thù trong các ;ng d<ng nhanh, tiêu biKu là ,i)u khiKn chuyKn ,5ng, don
,n các yêu cIu ngQt nghèo hn v) hiu su3t phIn m)m. Trong khi ,ó, các h ,i)u
khiKn công nghip nh? PLC hoQc DCS ,Qt ra yêu cIu cao v) khC nHng lPp trình và
,?a vào vPn hành thuPn tin cho các bài toán ln. Các h th*ng ;ng d<ng PLC và
DCS cpng th?:ng chPm hn (ví d< trong ,i)u khiKn các quá trình công ngh)
Nh?ng nh? vPy không có nghLa là các giCi pháp PLC hoQc DCS không phCi là các
h th:i gian th&c. i)u gì sW xCy ra trong m5t nhà máy ,in nguyên tZ hay trong
m5t nhà máy lNc dIu, nu thuPt toán ,i)u khiKn mQc dù r3t hin ,i nh?ng b5 ,i)u
khiKn không có khC nH ng ,?a ra kt quC ,áp ;ng kFp th:i vào nhGng th:i ,iK m trích
mou, hay khi không ,?a ra ,?Bc các quyt ,Fnh d_ng khbn c3p m5t cách kFp th:i
trong nhGng tình hu*ng b3t th?:ng?
H thi gian thc
12
CHNG 2 :
H , IU HÀNH THI GIAN TH!C
REALTIME OPERATING SYSTEM – RTOS
MOc .ích :
GiEi thiu v6 kiKn trúc c0a m;t h .i6u hành thi gian thc, các
khác bit c0a h .i6u hành thi gian thc vEi các h .i6u hành PC. ,-c .i/m
và phân lo*i các h .i6u hành thi gian thc, vxn .6 x> lý thi gian trong h
.i6u hành thi gian thc. ChCDng này cvng .3ng thi giEi thiu m;t s& h .i6u
hành thi gian thc phI biKn nhC : Window Mobile, Symbyan ….
1. ,*i cCDng v6 h .i6u hành thi gian thc
1.1. H .i6u hành
Ngufn g*c ra ,:i c6a h ,i)u hành là ,K ,Cm nhi m vai trò trung gian ,K
t?ng tác tr&c tip vi phIn c;ng c6a máy tính, ph<c v< cho nhi)u ;ng d<ng ,a
dng. Các h ,i)u hành cung c3p m5t tPp các ch;c nHng cIn thit ,K cho
phép các gói phIn m)m ,i)u khiKn phIn c;ng máy tính mà không cIn phCi
can thip tr&c tip sâu. H ,i)u hành c6a máy tính có thK th3y nó bao gfm các
drivers cho các ngoi vi tích hBp vi máy tính nh? card màn hình, card âm thanh
Các công c< ,K quCn lý tài nguyên nh? b5 nh và các thit bF ngoi vi nói chung.
i)u này to ra m5t giao din r3t thuPn lBi cho các ;ng d<ng và ng?:i sZ d<ng phát
triKn phIn m)m trên các n)n phIn c;ng ,ã có. fng th:i tránh ,?Bc yêu cIu và
hiKu bit sâu s[c v) phIn c;ng và có thK phát triKn d&a trên các ngôn ngG bPc cao.
H th*ng ,i)u hành bCn ch3t cpng là m5t loi phIn m)m nh?ng nó khác vi
các loi phIn m)m thông th?:ng. S& khác bit ,iKn hình là h th*ng ,i)u hành
,?Bc np và th&c thi ,Iu tiên khi h th*ng b[t ,Iu khdi ,5ng và ,? Bc th&c hin tr&c
tip bdi b5 xZ lý c6a h th*ng. H th*ng ,i)u hành ,?Bc vit ,K ph< c v< ,i)u khiKn
b5 xZ lý cpng nh? các tài nguyên khác trong h th*ng bdi vì nó sW ,Cm nhim ch;c
nHng quCn lý và lPp lFch các quá trình sZ d<ng CPU và cùng chia sl tài nguyên
H thi gian thc
13
1.2. H .i6u hành th i gian thc so vEi h .i6u hành trên PC
H ,i)u hành th:i gian th&c (RTOS) cho các h th*ng nhúng r3t khác so vi
h ,i)u hành trên máy tính desktop nh? Windows hay UNIX :
Th; nh3t, trên máy tính desktop h ,i)u hành sW chim quy)n ,i)u khiKn
ngay sau khi máy ,?Bc bPt và sau ,ó mi cho chúng ta b[ t ,Iu ;ng d<ng c6a mình.
Chúng ta biên dFch và liên kt các ;ng d<ng c6a mình tách bit vi h ,i)u hành.
Ng?Bc li, trong m5t h th*ng nhúng, ;ng d<ng th?:ng xuyên liên kt vi RTOS.
Ti lúc khdi ,5ng, ;ng d<ng nhPn l3y quy)n ,i)u khiKn ,Iu tiên và sau ,ó nó mi
b[t ,Iu RTOS. Bdi vPy ;ng d<ng và RTOS phCi có m*i quan h chQt chW hn.
Th; hai, r3t nhi)u RTOS không bCo v chính bCn thân chúng m5t cách cbn
thPn nh? h ,i)u hành trên desktop.
Th; ba, ,K tit kim b5 nh các RTOS mQc ,Fnh ch\ bao gfm các dFch v<
cIn thit cho ;ng d<ng nhúng c6a chúng ta. HIu ht các RTOS cho phép chúng ta
c3u hình bao quát tr?c khi chúng ta liên kt chúng vi ;ng d<ng.
Th; t?, hIu ht các ,i)u hành trên máy desktop quan tâm ,n hiu nHng trung bình
trong khi các h ,i)u hành th:i gian th&c li quan tâm ,n các gii hn, th:i gian
,áp ;ng.
` trong phIn này, chúng ta tìm hiKu khái nim tác v< - Task trong môi
tr?:ng RTOS và v3n ,) chia sl dG liu, semaphores, mailbox, queue… Ngoài ra,
chúng ta còn xem xét v3n ,) truy)n thông liên quá trình, dFch v< b5 ,Fnh th:i, quCn
lý b5 nh và t?ng tác giGa các th6 t<c ng[t.
Các h ,i)u hành th:i gian th&c nh3n mnh ,n khC nHng d& ,oán và các
ràng bu5c v) th:i gian ,áp ;ng. Nói chung, h ,i)u hành th:i gian th&c th?:ng
,?Bc phân thành ba kiKu li chính là:
1.3. ,-c .i/ m c0a h .i6u hành thi gian thc
H thi gian thc
14
Do các yêu cIu kh[t khe v) th:i gian, v) vic sZ d<ng tài nguyên, và s& quan
trNng c6a vic lPp lFch, các RTOS ,óng vai trò r3t quan trNng trong phát triKn h
nhúng th:i gian th& c. Chúng gi*ng nh? nhGng th? vin, chúng ta có thK dùng, thêm
bt các dFch v< cho phù hBp vi ;ng d<ng nhúng th: i gian th&c ,K có thK phát triKn
;ng d<ng nhúng th:i gian th&c m5t cách nhanh hn, tin t?dng hn. Vì vPy s& tfn
ti c6a các RTOS là r3t cIn thit và quan trNng.
Tr?c khi xem xét các dFch v< c6a h ,i)u hành th:i gian th& c xác ,Fnh, ta cIn bit
nh? th nào ,K có thK ,ánh giá ,ây là h ,i)u hành th:i gian th&c t*t, phù hBp vi
các ;ng d<ng nhúng th:i gian th&c c6a ta. Theo FQA cho comp.realtime:
M5t RTOS t*t ch\ khi có m5t nhân t*t. M5t RTOS t*t sW có m5t tài liu t*t và ,?Bc
phân phát cùng các công c< t*t ,K phát triKn và vPn hành ;ng d<ng c6a chúng ta. Vì
vPy, các tính toán v) khoCng th:i gian ng[t và th:i gian chuyKn mch ngG cCnh là
r3t quan trNng, cùng vi các thông s* khác làm nên m5t RTOS t*t. Cho ví d<, m5t
RTOS he trB nhi)u dFch v< có nhi)u thuPn lBi hn m5t RTOS ,n giCn.
Thêm vào ,ó, có nhGng ,Qc tC chính xác là r3t quan trNng ,K nhPn ra RTOS
t*t. Theo comp.realtime thì các nhà sCn xu3t RTOS nên ch\ rõ các yu t*:
1. KhoCng th:i gian trn ng[t - Interrupt Latency: là khoCng th:i gian t_ lúc ng[t
ti lúc ch y tác v<. KhoCng th:i gian này phCi t?ng thích vi các ,òi hvi c6a ;ng
d<ng và phCi d& ,oán ,?Bc. Các giá trF này ph< thu5c trên s* l?Bng c6a các ng[t
,fng th:i ch: ,Bi.
2. Cho mei l:i gNi h th*ng, th:i gian t*i ,a ,?Bc bit tr?c. Nó sW có thK ,oán
và không ph< thu5c vào s* l?Bng các ,*i t?Bng trong h th*ng.
3. Th:i gian c&c ,i c6a RTOS và ,i)u khiKn các mQt n ng[t.
4. Các m;c ng[t h th*ng.
5. Trình thit bF ,i)u khiKn các ng[t (IRQ: Interrupt ReQuest), th:i gian c&c ,i
c6a h th*ng mà trình thit bF ,i)u khiKn ng[t th&c hin.
H ,i)u hành th:i gian th&c t?ng t& nh? m5t h ,i)u hành ,a m<c ,ích và cung
c3p các ch;c nHng nh?:
+ Giao tip vi phIn c;ng d lp d?i
+ LPp lFch và xZ lý ?u tiên
+ QuCn lý b5 nh
+ Các dFch v< vào ra
+ He trB s& l&a chNn b5 vi xZ lý
+ Tính khC chuyKn ti các b5 vi xZ lý khác
+ Tính m)m dlo ,K phù hBp vi các yêu cIu ;ng d<ng khác nhau
+ He trB b5 ,a vi xZ lý
+ Md r5ng các dF ch v< nh? he trB mng
H thi gian thc
15
Theo nhGng tiêu chubn POSIX - M5t khuynh h?ng giúp nhGng nhà thit k
di chuyKn t_ h ,i)u hành th:i gian th&c này ti h ,i)u hành th:i gian th&c khác.
Qc bit, b3t c; RTOS nào tuân theo chubn POSIX ,)u chia sl m5t chubn API
(giao din lPp trình ;ng d<ng). LynxOS là m5t RTOS tuân theo ,Iy ,6 chubn
POSIX
M5t RTOS th?:ng có tính m)m dlo và có tính c3u trúc. Nó cho phép tích
hBp thêm các dFch v< gia tHng theo vòng tròn ,fng tâm. Vòng trong cùng hay nhân
cung c3p nhGng ,Qc tính quan trNng nh3t c6a h ,i)u hành th:i gian th&c. Các ,Qc
,iKm khác có thK ,?Bc thêm vào nh? m5t vòng ngoài khi cIn thit. Nhân nhv c6a
m5t RTOS thích hBp cho m5t ;ng d<ng b5 xZ lý nhv, trong khi nhGng vòng ngoài
có thK giúp ,w xây d&ng h th*ng th:i gian th&c ln. Các RTOS th?:ng cung c3p
các m;c xZ lý ?u tiên. Các công vic ? u tiên cao hn sW ,?Bc th&c hin tr?c.
Các RTOS thích hBp vi các yêu cIu c6a h th*ng nhúng. Nó cung c3p khdi
,5ng t_ ROM, cho nhGng h th*ng không có b3t c; ,La l?u trG nào, nh? vPy giCm
m5t cách ,áng kK th:i gian khdi ,5ng c6a h th*ng.
M5t vài ví d< c6a các h ,i)u hành th:i gian th&c là: VxWorks, QNX, LynxOS,
ŒCOS, RTX-51…
1.4. Phân lo*i h .i6u hành thi gian thc
+ H ,i)u hành th:i gian th&c nhv vi m<c ,ích th?ng mi.
+ H ,i)u hành th:i gian th&c md r5ng ti UNIX và các h ,i)u hành khác.
+ Các nhân cho m<c ,ích nghiên c;u.
4.1. H iu hành thi gian thc nh vi mc ích thng mi
Các h ,i)u hành này th?:ng nhv và nhanh. Nh?: QNX, PDOS, pSOS,
VxWorks, Nulceus, ERCOS, EMERALDS, Windows CE, chúng có các ,Qc ,iKm
sau:
+ Có th:i gian chuyKn ngG cCnh và th:i gian ,áp ;ng nhanh.
+ Kích th?c r3t nhv.
+ Không có b5 nh Co và có thK c* ,Fnh mã, dG liu trong b5 nh.
+ H th*ng ,a tác v< và chubn giao tip liên quá trình. Các mailbox, các s& kin,
các tín hiu và các ,èn báo ,?Bc ,Fnh nghLa t*t.
NhGng h ,i)u hành này th?:ng có các ,Qc tC t*t và có các công c< t*t ,K
phát triKn các ;ng d<ng nhúng th:i gian th&c. Nó he trB các ràng bu5c th:i gian
th&c vi các dFch v< nh?:
+ Các gii hn th:i gian th&c hin.
+ fng hf th:i gian th&c.
+ LPp lFch th; t& ?u tiên.
+ CCnh báo ,Qc bit và th:i gian quá hn (timeout).
+ He trB các hàng ,i th:i gian th&c.
+ Cung c3p vic xZ lý ,5 trn, treo hay kích hot vic th&c hin.
H thi gian thc
16
4.2. H iu hành thi gian thc m r ng ti Unix và các h iu hành khác
Các h ,i)u hành này nh?: RT-UNIX, RT-LINUX, RT-MACH, RT-POSIX.
Chúng chPm hn và có khC nHng d& ,oán ít hn so vi các h ,i)u hành th:i gian
th&c th?ng mi d trên nh?ng chúng li có nhi)u ch;c nHng và môi tr?:ng phát
triKn t*t hn d&a trên tPp các giao tip chubn và thân thin.
4.3. Các nhân cho mc ích nghiên c*u
Các h ,i)u hành này có các ,Qc ,iKm sau:
+ He trB các thuPt toán lPp lFch th:i gian th&c và vic phân tích th:i gian.
+ He trB các dFch v< c bCn ,K ,fng b5 th:i gian th&c.
+ Nh3n mnh khC nHng d& ,oán hn là hiu nHng trung bình.
+ He trB cho khC nHng chFu lei.
Ví d< nh?: Spring, MARS, HARTOS, MARUTI, ARTS, CHAOS, DARK.
2.TI chJc và kiKn trúc h .i6u hành thi gian th c
2.1. Tng quan
Nh? chúng ta ,ã ,?Bc bit ,*i vi các h th*ng th:i gian th&c, yêu cIu thit
k m5t h ,i)u hành khá ,Qc bit. H nhúng th:i gian th&c li yêu cIu h
,i)u hành phCi th&c hin vi m5t ngufn tài nguyên th?:ng r3t hn h•p. MQc dù
kích th?c b5 nh tích hBp onchip sW có thK tHng lên trong t?ng lai nh?ng vi s&
phát triKn hin nay h ,i)u hành cho các h nhúng ch\ nên cw khoCng nhv hn 32
Kbytes.
H th*ng ,i)u hành ,Cm nhim vic ,i)u khiKn các ch;c nHng c bCn c6a h
th*ng bao gfm ch6 yu là quCn lý b5 nh, ngoi vi và vào ra giao tip vi h th*ng
phIn c;ng. M5t ,iKm khác bit c bCn nh? chúng ta ,ã bit v) h ,i)u
hành vi các phIn m)m khác là nó th&c hin ch;c nHng ,i)u khiKn s& kin th&c
thi trong h th*ng. Có nghLa là nó th&c hin các tác v< theo mnh lnh yêu cIu t_
các ch?ng trình ;ng d<ng, thit bF vào ra và các s& kin ng[t.
H thi gian thc
17
B*n nhân t* chính tác ,5ng tr&c tip ti quá trình thit k h ,i)u hành là :
(1) khC nHng th&c hin,
(2) nHng l?Bng tiêu th<
(3) giá thành
(4) khC nHng t?ng thích.
Hin nay chúng ta cpng có thK b[t gQp r3t nhi)u h ,i)u hành khác
nhau ,Qc bit cho các h nhúng cpng vì s& tác ,5ng c6a 4 nhân t* nêu trên. HI u
ht chúng ,)u có kiKu dng và giao din khá gi*ng nhau nh?ng c ch quCn lý
và th&c thi các tác v< bên trong r3t khác nhau. Mei h ,i)u hành ,?Bc thit
k ph<c v< tr&c tip các ch;c nHng ,Qc thù phIn c;ng c6a h nhúng và không
dn dàng so sánh ,?Bc giGa chúng vi nhau.
2.2. Các ki+n trúc h iu hành
Hai thành phIn chính trong thit k h ,i)u hành là: phIn ht nhân
(kernel) và các ch?ng trình h th*ng.
Ht nhân chính là phIn lõi c6a h ,i)u hành. Nó ,?Bc sZ d<ng ,K ph<c v<
cho các b5 quCn lý quá trình, b5 lPp lFch b5 quCn lý tài nguyên và b5 quCn lý vào
ra. PhIn ht nhân ,Cm nhim ch;c nHng lPp lFch, ,fng b5 và bCo v h
th*ng bdi vic sZ d<ng sai, xZ lý ng[t…Ch;c nH ng ,i)u khiKn chính c6a nó là ph<c
v< ,i)u khiKn phIn c;ng bao gfm ng[t, các thanh ghi ,i)u khiKn, các t_ trng thái
và các b5 ,Fnh th:i gian. Nó np các phIn m)m ,i)u khiKn thit bF ,K cung c3p các
tin ích chung và ph*i hBp vi các hot ,5ng vào ra vi h th*ng. PhIn ht nhân có
vai trò ,i)u khiKn r3t quan trNng ,K ,Cm bCo t3t cC các phIn c6a h th*ng có thK làm
vic 9n ,Fnh và th* ng nh3t.
Hai kin trúc thit k phIn ht nhân kinh ,iKn nh3t là kin trúc vi ht nhân và
,n ht nhân (monolithic).
Vi h*t nhân :
Các vi ht nhân cung c3p các ch;c nHng ,i)u hành c bCn c*t lõi (thô) theo
c ch các module t?ng ,*i ,5c lPp ,Cm nhim các tác v< c< thK và chuyKn r:i r3t
nhi)u các dFch v< ,iKn hình ,i)u hành h th*ng th&c thi trong không gian
ng?:i sZ d<ng. Nh: c ch này mà các dFch v< có thK ,?Bc khdi to hoQc c3u hình
li mà không nh3t thit phCi khdi to li toàn b5 h th*ng. Kin trúc vi ht nhân
cung c3p ,5 an toàn cao bdi vì dFch v< h th*ng ch y d tIng ng?:i sZ d<ng vi hn
ch v) truy nhPp vào tài nguyên c6a h th*ng và có thK ,?Bc giám sát. Kin trúc vi
ht nhân có thK ,?Bc xây d&ng m5t cách m)m dlo ,K phù hBp vi c3u hình phIn
c;ng khác nhau m5t cách llinh hot hn so vi kiKu kin trúc ht nhân monilithic.
Tuy nhiên do tính ,5c lPp t?ng ,*i giGa các modul trong vi ht nhân nên cIn thit
phCi có m5t c ch trao ,9i thông tin hay truy)n thông giGa các modul ,ó vì vPy có
thK là lý do làm chPm t*c ,5 và giCm tính hiu quC hot ,5ng c6a h th*ng. Qc
,iKm n9i bPt và c*t lõi c6a ki n trúc vi ht nhân là kích th?c nhv và dn dàng sZa
,9i cpng nh? xây d&ng linh hot hn. Các dFch v< th&c thi d tIng trên c6a h t nhân
vì vPy ,t ,?Bc ,5 an toàn cao. Kin trúc vi ht nhân ,?Bc phát triKn mnh mW
trong các h th*ng ,a xZ lý ví d< nh? Windows 2000, Mach và QNX.
H thi gian thc
18
,Dn h*t nhân:
KiKu kin trúc monolithic cung c3p t3t cC ch;c nHng/dFch v< chính yu thông
qua m5t qua trình xZ lý ,n ll. Chính vì vPy kích th?c c6a chúng th?:ng ln hn
kiKu kin trúc vi ht nhân. Loi hình kin trúc này th?:ng ,?Bc áp d<ng ch6 yu
cho các phIn c;ng c< thK mà ht nhân monolithic có s& t?ng tác tr&c tip vi phIn
c;ng nh: vPy mà khC nHng t*i ?u cpng dn dàng hn so vi áp d<ng kiKu kin trúc vi
ht nhân. Chính vì vP y cpng là lý do ti sao kin trúc monolithic không thK thay ,9i
m)m dlo linh hot nh? kiKu vi ht nhân. Ví d< ,iK n hình v) loi hình kin trúc
ht nhân monolithic bao gfm Linux, MacOS, và DOS.
Vì h ,i)u hành cpng ,òi hvi v) tài nguyên và kiêm cC ch;c nHng quCn lý
chúng vì vP y ng?:i thit k cIn phCi n[m ,?B c thông tin v) chúng m5t cách ,Iy ,6.
2.3. H*t nhân h .i6u hành thi gian thc
H th*ng ,i)u hành vi phIn lõi là ht nhân phCi ,Cm nhim các tác v< chính
nh? sau:
XZ lý ng[t
L?u trG ngG cCnh ch? ng trình ti th:i ,iKm xu3t hin ng[t
NhPn dng và l&a chNn ,úng b5 xZ lý và ph<c v< dFch v< ng[t
i)u khiKn quá trình
To và kt thúc quá trình/tác v<
LPp lFch và ,i)u ph*i hot ,5ng h th*ng
Fnh th:i
i)u khiKn ngoi vi
XZ lý ng[t
Khdi to giao tip vào ra
Tùy theo c ch th&c hin và xây d&ng hot ,5ng c6a ht nhân ng?:i ta phân
loi m5t s* loi hình
(1)H th-ng thi gian thc nh:
H thi gian thc
19
Vi loi này các phIn m)m ,?Bc phát triKn mà không cIn có h ,i)u hành, ng?:i
lPp trình phCi t& quCn lý và xZ lý các v3n ,) v) ,i)u khiKn h th*ng bao gfm:
XZ lý ng[t
i)u khiKn quá trình/ tác v<
QuCn lý b5 nh
(2) Công ngh a nhim
Mei quá trình có m5t không gian b5 nh riêng
Các quá trình phCi ,?Bc chia nhv thành các Thread cùng chia sl không gian
b5 nh.
(3) Các d1ch v cung c2p bi ht nhân
To và kt thúc quá trình/ tác v<
Truy)n th*ng giGa các quá trình
Các dFch v< v) ,Fnh th:i gian
M5t s* các dFch v< cung c3p he trB vic th&c thi liên quan ,n ,i)u khiKn h
h*ng
Ht nhân ,iKn hình c bCn
Loi ht nhân ,n giCn nh3t là m5t vòng lQp vô hn thHm dò các s& kin xu3t
hin trong h th*ng và phCn ;ng li theo s& thay ,9i nu có.
Vi m5t b5 xZ lý c3u hình nhv nh3t, không phCi lúc nào nó cpng có thK l?u
c3t ngG cCnh vì không thK thay ,9i con trv ngHn xp hoQc vùng ngHn xp r3t
hn ch.
Thay vì sZ d<ng các thanh ghi thit bF, vòng lQp thHm dò có thK giám sát các
bin mà chF u s& thay ,9i cPp nhPt bdi các b5 xZ lý ng[t.
Ht nhân có thK ,?Bc xây d&ng sao cho t3t cC các tín hiu logic ,?Bc ,i)u
khiKn bdi vòng lQp và nhFp ,?Bc ,i)u khiKn bdi các ng[t.
Các tác v< ln cIn nhi)u th:i gian th&c hin có thK ,?Bc chia nhv thành các
tác v< nhv và ,?Bc th&c hin ti các th:i ,iKm khác nhau nh: vào c ch
chuyKn và sZ d<ng b5 ,m.
Các ht nhân th&c thi theo c ch ng[t r3t gi*ng vi loi ht nhân
th&c hin theo c ch vòng lQp thHm dò. Nó xZ lý t3t cC các tác v< thông qua
các dFch v< ng[t.
Các ht nhân ln và ph;c tp hn sW bao gfm m5t s* các dFch v< ph< ph<c
v< cho vic truy)n thông giGa các quá trình. Và nu ,?Bc b9 sung ,Iy ,6 nó
sW trd thành m5t h ,i)u hành ,Iy ,6.
Các kiKu loi ht nhân c bCn
Ht nhân th&c hin vòng lQp thHm dò
Ht nhân th&c hin theo c ch ng[t
Ht nhân quá trình vPn hành quá trình
H thi gian thc
20
Vic l&a chNn loi ht nhân nào hoàn toàn tùy thu5c vào các b5 xZ
lý và kích th?c phIn m)m, tuy nhiên riêng loi ht nhân vPn hành theo quá trình
không phù hBp vi các b5 xZ lý nhv.
H*t nhân quá trình
Các ht nhân quá trình rõ ràng là ph;c tp hn các ht nhân th&c hin theo
c ch thHm dò và ,i)u khiKn ng[t. Các ,?:ng truy)n tín hiu logic bên trong các
quá trình và các dFch v< ng[t ,?Bc tích hBp và th&c hin thông qua vic truy)n dG
liu.
Ht nhân sW phCi ,Cm nhim ch;c nHng lPp lFch cho các quá trình theo ,úng mô
hình trng thái.
RUN: quá trình ,?Bc th&c hin
WAIT: các quá trình ch: m5t s& kin hoQc tín hiu vào ra kích hot quá trình
READY: các quá trình s•n sàng ,?Bc th&c hin
Các phIn tZ thu5c tính c6a m5t quá trình: Các phIn tZ này cIn thit ,K ph<c v< cho
vic lPp lFch. Ví d< ,*i vi c ch lPp lFch theo m;c ,5 ?u tiên sW yêu cIu thông tin
sau vi mei quá trình:
• Tên (,Fa ch\ b5 nh c6a phIn tZ quá trình)
• Trng thái: RUN, WAIT, READY
• M;c ,5 ?u tiên
• NgG cCnh (dùng con trv ,K quCn lý l?u c3t thông tin trong ngHn xp)
3. Các dNch vO cD bPn
3.1. Tác v và các trng thái tác v
Xây d&ng các kh*i c bCn c6a phIn m)m d?i RTOS là tác v< - Task. Vic
to ra các tác v< d?i RTOS là r3t ,n giCn. M5t tác v< ,n giCn ch\ là m5t th6 t<c
con. Ti m5t s* ,iK m trong ch?ng trình, chúng ta th&c hin m5t hoQc nhi)u l:i gNi
ti m5t hàm trong RTOS ,K b[t ,Iu các tác v<. Mei tác v< trong RTOS luôn luôn d
m5t trong ba trng thái chính:
1. Running: Vi ý nghLa b5 xZ lý ,ang th&c hin tác v<. Vi m5t b5 xZ lý thì
chúng ta ch\ chy m5t tác v< ti m5t th:i ,iKm nh3t ,Fnh.
2. Ready: Vi ý nghLa m5t s* tác v< khác s•n sàng chy nu b5 xZ lý rei.
3. Blocked: Vi ý nghLa tác v< không s•n sàng chy kK cC khi b5 xZ lý trong
trng thái ngh\ - Idle. Tác v< d trong trng thái này vì chúng ,Bi m5t s& kin bên
ngoài tác ,5ng ,K kích hot nó trd li tr ng thái s•n sàng.
H thi gian thc
21
3.2. B l8p l1ch
M5t phIn c6a RTOS ,?Bc gNi là b5 lPp lFch, l?u vt các trng thái c6a mei
tác v< và quyt ,Fnh m5t tác v< duy nh3t sW ,i vào trng thái Running. Không gi*ng
nh? b5 lPp lFch trong Windows hay UNIX, b5 lPp lFch trong hIu ht các RTOS là
khá ,n giCn: Chúng nhìn vào m;c ?u tiên ,?Bc gán ti mei tác v< và giGa nhGng
tác v< ,ang s•n sàng m5t tác v< có m;c ?u tiên cao nh3t sW ,?Bc th&c hin. B5 lPp
lFch sW ph<c v< tác v< nào có m;c ?u tiên cao hn trong khi các tác v< ?u tiên th3p
hn sW ,Bi cho ,n khi giCi phóng b5 xZ lý khvi tác v< ?u tiên cao hn. B5 lPp lFch
giúp chúng ta bit tác v< nào phCi làm tr?c khi chúng ta thit lPp th; t& ?u tiên.
K b5 lPp lFch bit ,?Bc tác v< nào khoá và s• n sàng thì RTOS cung c3p m5t
tPp các hàm mà tác v< có thK gNi ,K b5 lPp lFch nhPn bit ,?Bc các s& kin mà các
tác v< này ,ang ,Bi tín hiu ,K s& kin xCy ra ,ó.
Nu t3t cC tác v< ,)u bF khoá, không thK ch: ,?Bc tín hiu nào làm cho các
tác v< trd li trng thái s•n sàng bên trong hay bên ngoài RTOS thì ta nói r2ng h
th*ng c6a chúng ta bF hvng, phIn m)m chúng ta thit k bF lei. Nu hai tác v< cùng
m;c ?u tiên s•n sàng, thì nó ph< thu5c vào cách xZ lý c6a RTOS mà chúng ta sZ
d<ng. Ít nh3t m5t h th*ng giCi quyt v3n ,) này là vic không bao gi: cho phép hai
tác v< có cùng m;c ?u tiên, m5t s* khác sZ d<ng phân chia th:i gian (time-slice)
giGa các tác v< ,ó, m5t s* khác li chy m5t tác v< b3t kh cho ,n khi nó bF khoá.
Nu m5t tác v< ,ang chy, có m5t tác v< khác ?u tiên cao hn ,?Bc kích
hot thì RTOS sW d_ng tác v< ,ang chy và sW chy tác v< ?u tiên cao hn kia. Tác
v< có m;c ?u tiên th3p hn sW khoá.
3.3. Tác v và d9 liu
Mei tác v< có m5t ngG cCnh riêng, bao gf m giá trF thanh ghi, b5 ,m ch?ng
trình và m5t stack. T3t cC nhGng dG liu khác ,?Bc chia sl giGa các tác v<.
Khi chúng ta sZ d<ng bin chia sl dG liu giGa các tác v<, ,i)u ,ó r3t dn dàng ,K
chuyKn dG liu t_ tác v< này ti tác v< khác: hai tác v< cIn phCi truy nhPp ti cùng
bin. Tuy nhiên, v3n ,) chia sl dG liu r3t dn don ti vic không nh3t quán trong
ch?ng trình và có thK gây s<p ,9 h th*ng c6a chúng ta, vì vPy cIn có các bin
pháp trong RTOS ,K giCi quyt v3n ,) này.
3.4. :èn báo và chia s= d9 liu (Semaphore)
Semaphore có thK giCi quyt v3n ,) trong chia sl dG liu. Khi ,ó ch\ có m5t
tác v< có thK n[m quy)n sZ d<ng ,èn báo ti m5t th:i ,iKm. Các tác v< khác dù có
?u tiên cao hn von phCi ch: ,n khi giCi phóng ,èn báo vì vPy mà ,èn báo có thK
ngHn chQn vic chia sl dG liu don ,n lei. èn báo có hai hàm liên quan là take và
release. Hàm take n[m l3 y quy)n sZ d<ng ,èn báo ti th:i gian ,ó và hàm release là
hàm giCi phóng ,èn báo sau khi sZ d<ng xong.
Chúng ta có thK sZ d<ng ,èn báo nh? tín hiu ,K giao tip giGa các tác v< vi
nhau hoQc giGa hàm ng[t và tác v<.
Tuy ,èn báo không thK giCi quyt mNi v3n ,) v) chia sl dG liu nh?ng h
th*ng c6a chúng ta có thK làm vic t*t hn, ít th:i gian hn khi chúng ta sZ d<ng
H thi gian thc
22
,èn báo. V3n ,) d ,ây là ,èn báo ch\ làm vic t*t khi chúng ta sZ d<ng chúng ,úng
,[n. Nh?ng trong th&c t thì chúng ta gQp phCi m5t s* v3n ,) nh?:
- Quên l3 y quy)n sZ d<ng ,èn báo tr?c khi sZ d<ng.
- Quên giC i phóng ,èn báo khi sZ d<ng xong, ,i) u ,ó có thK gây ra treo ch?ng
trình c6a chúng ta.
- N[m l3y quy)n sZ d<ng ,èn báo lei. Nu chúng ta ,ang sZ d<ng nhi)u ,èn
báo, thì vic l3y quy)n sZ d<ng ,èn báo còn ph< thu5c vào các ,èn báo khác, ,ôi
khi chúng ta quên nên gây ra lei r3t ln.
- GiG m5t ,èn báo trong th:i gian quá lâu. V3n ,) này có thK vi phm th:i gian
,áp ;ng trong h th*ng nhúng th:i gian th&c c6a chúng ta.
M5t v3n ,) ,? Bc gNi là th; t& ?u tiên ,Co ng?Bc (Priority Inversion), nu tác
v< C có m;c ?u tiên th3p ,ang giG ,èn báo và phCi nh?:ng quy)n sZ d<ng b5 xZ lý
cho tác v< B có quy)n ?u tiên trung bình. Và m5t tác v< có quy)n ?u tiên cao là A
mu*n sZ d<ng ,èn báo mà C ,ang n[m giG, nh?ng C không thK giCi phóng cho ,n
khi nó chim quy)n sZ d<ng b5 xZ lý.
M5t s* RTOS giCi quyt v3n ,) này b2ng cách k th_a m;c ?u tiên, chúng
tm th:i nâng m;c ?u tiên tác v< C ,K chy và giCi phóng ,èn báo cho tác v< A.
4. Các dNch vO mQ r;ng c0a RTOS thCD ng m*i
4.1. Message Queues, Mailboxes và Piles
a. Hàng Fi - Queue
Các tác v< phCi có khC nHng giao tip vi nhau ,K kt hBp các hot ,5ng và
,K chia sl dG liu. HIu ht RTOS kt hBp c6a m5t s* dFch v< nh?: hàng các ,Bi
thông ,ip, các mailboxe, các pipe cho m<c ,ích này. Tính nHng xác ,Fnh c6a các
dFch v< này ph< thu5c vào RTOS, chúng ta phCi ,Nc h?ng don mà RTOS ,ó ,?a
ra.
HIu ht RTOS yêu cIu chúng ta phCi khdi to hàng ,Bi tr?c khi chúng ta sZ
d<ng chúng b2ng vic gNi hàm cung c3p cho m<c ,ích này. M5t s* h th*ng cho
phép chúng ta c3p phát b5 nh mà RTOS sW quCn lý nh? m5t hàng ,Bi.
HIu ht các RTOS cho phép ta sZ d<ng nhi)u hàng ,Bi nu chúng ta mu*n.
Chúng ta thêm m5t s* thông s* ,K ,Fnh danh hàng ,Bi và t_ ,ó chúng ta có thK ,Nc,
ghi vào hàng ,Bi ,ó.
Nu chúng ta c* ghi vào hàng ,Bi khi nó ,ã ,Iy, RTOS sW trC li m5t thông
báo lei ,K chúng ta bit hot ,5ng ,ó bF hvng hoQc là hot ,5ng ,ó phCi bF khoá cho
,n khi có m5t tác v< ,Nc dG liu khvi hàng ,Bi.
R3t nhi)u RTOS sZ d<ng m5t hàm ,K ,Nc t_ m5t hàng ,Bi nu có dG liu
trong hàng ,Bi và sW trC ra m5t lei nu hàng ,Bi reng. Và hàm này sW d trng thái
khoá (block) nu hàng ,Bi reng.
S* byte dG liu mà RTOS ghi vào hàng ,Bi trong m5t l:i gNi có thK không
chính xác vi s* byte dG liu chúng ta mu*n ghi. R3t nhi)u RTOS không m) m dlo
v) v3n ,) này nh?ng có m5t s* RTOS cho phép chúng ta ghi lên m5t hàng ,Bi trong
m5t lIn gNi s* l?Bng byte mang ,n b2ng m5t con trv hàm.
b. Mailbox
H thi gian thc
23
Nói chung, mailbox là gi*ng hàng ,Bi. MQc ,Fnh RTOS có các hàm ,K to,
,Nc và ghi vào mailbox và có lW các hàm này sW kiKm tra xem mailbox có ch;a ,?Bc
hay không b3t kh m5t thông ,ip nào. Khi mailbox không cIn thit nGa thì nó sW
,?Bc hu‘ ,K giCi phóng b5 nh. Trong các RTOS thì mailbox có nhGng ,Qc ,iKm
riêng:
+ M5t s* RTOS cho phép chính xác s* l?Bng thông ,ip trong mei mailbox, con
s* này chúng ta có thK chNn khi to mailbox, m5t s* khác thì ch\ cho phép m5t
thông ,ip trong m5t mailbox ti m5t th:i ,iKm. M5t thông ,ip ,?Bc ghi ti
mailbox, mailbox sW ,Iy khi ,ó các thông ,ip khác ch\ có thK ghi ti mailbox khi
thông ,ip ,Iu ,?Bc ,Nc.
+ Trong m5t s* RTOS, s* l?Bng c6a thông ,ip trong mei mailbox là không bF gii
hn. Ch\ có m5t gii hn là t9ng s* thông ,ip trong t3t cC các mailbox trong h
th*ng.
+ Trong m5t s* RTOS, chúng ta có thK ?u tiên các thông ,ip trong mailbox. Các
thông ,ip ?u tiên cao hn sW ,?Bc ,Nc tr?c các thông ,ip có ?u tiên th3p hn,
không ph< thu5c vào th; t& chúng ,?Bc ghi vào mailbox.
c. Pipe
Các pipe cpng r3t gi*ng hàng ,Bi. RTOS có thK to chúng, ghi lên chúng,
,Nc t_ chúng… Nh?ng trong mei RTOS chúng cpng có nhGng ,Qc ,iKm riêng:
+ M5t s* RTOS cho phép chúng ta ghi thông ,ip vi ,5 dài tuh ý lên trên pipe
(không gi*ng nh? mailbox và queue ,5 dài thông ,ip là c* ,Fnh).
+ Pipe trong m5t s* RTOS là toàn b5 h?ng byte: Nu task A ghi 11 byte ti pipe
và sau ,ó task B ghi 19 byte ti pipe, sau ,ó nu task C ,Nc 14 byte t_ pipe, nó sW
nhPn ,?Bc 11 byte c6a task A ,ã ghi c5ng vi 3 byte ,Iu tiên mà task B ,ã ghi.
+ M5t s* RTOS sZ d<ng hàm th? vin chubn C là fread và fwrite ,K ,Nc và ghi
ti pipe.
d. SH dng queue, mailbox, pipe
MQc dù queue, mailbox, pipe có thK làm v3n ,) chia sl dG liu giGa các tác
v< trd lên dn dàng hn nh?ng nó cp ng r3t dn gây ra lei trong h th*ng c6a chúng ta.
ây là m5t s* kinh nghim khi sZ d<ng chúng:
+ HIu ht RTOS không gii hn tác v< nào có thK ,Nc, ghi vào queue, mailbox,
pipe vì vPy chúng ta phCi ,Cm bCo r2ng các tác v< ,?Bc sZ d<ng là chính xác ti
mei th:i ,iKm.
+ RTOS không ,Cm bCo r2ng dG liu ,?Bc ghi vào trong queue, mailbox, pipe sW
,úng vi tác v< ,Nc nó. Ví d< m5t tác v< ghi vào m5t s* nguyên và tác v< khác ,Nc
và coi nó m5t con trv.
+ Chy ra ngoài không gian queue, mailbox hoQc pipe sW gây ra m5t s& phá hu‘
trong phIn m) m nhúng.
+ ChuyKn con trv t_ m5t tác v< này ti tác v< khác thông qua m5t queue, mailbox
hoQc pipe là cách ,K to ra chia sl dG liu. Chúng ta tránh dùng hàm malloc và free.
4.2. Ch*c nJng b 1nh thi (Timer Functions)
H thi gian thc
24
HIu ht các RTOS ,)u duy trì nhFp ,Pp c6a b5 ,Fnh th:i. B5 ,Fnh th:i này
ng[t m5t cách ,Fnh kh và ,?Bc sZ d<ng cho các dFch v< th:i gian c6a RTOS.
KhoCng th:i gian giGa các ng[t ,?Bc gNi là m5t ,n vF th:i gian c6a h th*ng
(System Tick). HIu ht các RTOS th?:ng sZ d<ng dFch v< th:i gian ,K:
+ M5t tác v< có thK khoá chính bCn thân nó sau m5t s* ,n vF th:i gian xác ,Fnh.
+ M5t tác v< sW bF gii hn bao nhiêu ,n vF th:i gian c6a h th*ng khi nó ,Bi m5t
,èn báo, hàng ,Bi
+ Ch?ng trình c6a chúng ta có thK ,i)u khiKn RTOS gNi m5t hàm xác ,Fnh sau
m5t s* ,n vF th:i gian c6a h th*ng.
4.3. Các s kin - Event
M5t dFch v< khác c6a RTOS ,?a ra là quCn lý các s& kin bên trong h
th*ng. Mei s& kin c bCn là m5t c: boolean mà các tác v< có thK thit lPp, thit lPp
li và có thK có các tác v< khác nhau cùng ,Bi nó. M5t s* ,Qc ,iKm c6a s& kin
trong các RTOS là:
+ Nhi)u hn m5t tác v< có thK cùng bF khoá ,Bi cho m5t s& kin, RTOS sW giC i
phóng t3t cC chúng và th&c hin chúng theo th; t& ?u tiên khi s& kin xCy ra.
+ RTOS mQc ,Fnh hình thành m5t nhóm các s& kin và các tác v< ,Bi cho b3t kh
tPp con nào c6a nhóm s& kin xCy ra.
+ Các h ,i)u hành th:i gian th&c khác nhau ,?a ra các cách khác nhau ,K thit
lPp li m5t s& kin sau khi nó ,ã xCy ra và các tác v< ,Bi s& kin ,ó sW ,?Bc giCi
phóng. M5t s* RTOS thit lPp li các s& kin m5t cách t& ,5ng, m5t s* khác ,òi hvi
các tác v< phIn m)m c6a chúng ta phCi t& làm.
Chúng ta sZ d<ng các queue, mailbox, pipe, semaphore, và các s& kin cho vic
giao tip giGa 2 tác v< hoQc giGa m5t ng[t và m5t tác v<. Nh?ng chúng có m5t s*
,Qc ,iKm riêng:
+ Semaphore là ph?ng th;c nhanh nh3t và ,n giCn nh3t. Tuy nhiên, không nhi) u
thông tin có thK thông qua m5t semaphore. Ch\ m5t bit thông ,ip ,?Bc chuyKn ,K
thông báo semaphore ,?Bc giCi phóng.
+ S& kin là ít ph;c tp hn semaphore nh?ng li tiêu t*n nhi)u th:i gian b5 xZ lý
hn semaphore. S& d< ng các s& kin thuPn lBi hn semaphore d che: m5t tác v< ,Bi
m5t hay nhi)u s& kin trong cùng th:i gian trong khi nó ch\ ,Bi m5t semaphore.
+ Hàng ,Bi cho phép chúng ta gZi m5t s* l?Bng ln thông tin t_ tác v< này ti tác
v< khác. Cho dù tác v< ch\ ,Bi trên m5t hàng ,Bi ti m5t th:i ,iK m nh?ng s& thPt là
chúng cho phép chúng ta có thK gZi dG liu thông qua m5t hàng ,Bi làm nó linh
hot hn m5t s& kin. S& b3t lBi là khi ,Nc và ghi thông ,ip sW chim nhi)u th:i
gian b5 xZ lý và r3t dn m[c phCi lei trong ch?ng trình c6a chúng ta. Mailboxe và
pipe có cùng ,Qc ,iKm vi queue.
4.4. Các hàm ngMt trong môi trng RTOS
Các hàm ng[t trong hIu ht các môi tr?:ng RTOS phCi tuân theo hai quy t[c,
,i)u này không áp d<ng cho mã c6a tác v<:
Quy t[c 1: M5t hàm ng[t không ,?Bc gNi b3t kh hàm RTOS nào mà nhGng
hàm ,ó có thK khoá l:i gNi. Bdi vP y th6 t<c ng[t không sZ d<ng ,èn báo, không ,Nc
t_ các hàng ,Bi hoQc mailbox khi các hàng ,Bi và mailbox reng, không ,Bi các s&
H thi gian thc
25
kin Nu hàm ng[t gNi m5t hàm RTOS và bF khoá, thì tác v< ,ang chy khi ng[t
xCy ra sW mãi bF khoá, thPm chí tác v< này có quy)n ?u tiên cao nh3t. Ngoài ra, hIu
ht các hàm ng[t phCi chy ,K hoàn thành vic thit lPp li phIn c;ng ,K s•n sàng
cho ng[t tip theo.
Quy t[c 2: M5t hàm ng[t có thK không gNi b3t kh hàm RTOS nào nhGng hàm
có thK gây ra cho RTOS chuyKn ti chy các tác v< tr_ khi RTOS bit ,ó là m5t
hàm ng[t và không là m5t tác v< trong lúc ,ang th&c hin hàm ng[t. Nu th6 t<c
ng[t phá vw quy t[c này thì RTOS có thK chuyKn vic ,i)u khiKn t_ hàm ng[t ti
ch y m5t tác v< khác, và hàm ng[t có thK không hoàn thành sau m5t th:i gian dài,
vì vPy khoá t3t cC các ng[t có m;c ?u tiên th3p hn và có thK là t3t cC các ng[t khác.
5. GiEi thiu m;t s& h .i6u hành thi gian thc
5.1. RTX51-Real Time Operating System
RTX51 là m5t h ,i)u hành th:i gian th&c ,a tác v< cho hN vi ,i)u khiKn
8051. RTX51 là m5t h th*ng ,n giCn ,?Bc thit k cho các phIn m)m có ,5 ph;c
tp và có gii hn chính xác v) th:i gian ,áp ;ng. RTX51 có các công c< r3t mnh
,K quCn lý các tác v<. Có hai phiên bCn c6a RTX51:
RTX51 Full cho phép th& c hin cC chuyKn mch xoay vòng và chuyKn tác v<
vi 4 m;c ?u tiên, có thK hot ,5ng cùng vi các hàm ng[t m5t cách song song.
RTX51 chuyKn các tín hiu, chuyKn các thông ,ip sZ d<ng m5t h th*ng mailbox
và các semaphore. Hàm os_wait c6a RTX51 có thK ,Bi cho các s& kin: ng[t,
timeout, thông ,ip t_ tác v< hoQc ng[t, semaphore.
RTX51 Tiny là m5t tPp con c6a RTX51 Full. RTX51 Tiny dn dàng ch y trên
m5t chip không có b5 nh dG liu ngoài. Tuy nhiên ch?ng trình sZ d<ng RTX51
Tiny có thK truy nhPp sZ d<ng b5 nh ngoài. RTX51 Tiny cho phép chuyKn mch
xoay vòng giGa các tác v<, he trB chuyKn các thông ,ip và có thK hot ,5ng cùng
vi các hàm ng[t m5t cách song song. Hàm os_wait c6a RTX51 có thK ,Bi cho các
s& kin: timeout, tín hiu t_ tác v< hoQc ng[t.
So sánh RTX Full và RTX Tiny
Mô tC RTX51 Full RTX51 Tiny
S* tác v< 256, c&c ,i 19 tác v< hot
,5ng
16
RAM yêu cIu 40 60 byte DATA
20 200 byte IDATA
c&c tiKu 650 byte XDATA
7 byte DATA
3*(S* tác v<) IDATA
Mã yêu cIu 6KB…8KB 900 byte
PhIn c;ng ,òi
hvi
Timer 0 hoQc Timer 1 Timer 0
fng hf h 1000…40000 chu kh 1000…65535 chu kh