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

Bài giảng Hệ điều hành thời gian thực

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 (5.17 MB, 51 trang )

H thi gian thc
1
MC LC
Gii thiu :
CHNG 1 : TNG QUAN V H THI GIAN TH!C
1. Khái nim h th&ng thi gian thc :
2. Các lo*i h th&ng thi gian thc:
3. ,-c .i/m c0a các h th&ng thi gian thc
4. Thi gian trong h th&ng thi gian thc:
4.1. ,3ng h3 h th&ng:
4.2. Các lo*i .3ng h3 h th&ng:
4.3. Quan nim v6 s ri r*c thi gian:
4.4. Ràng bu;c v6 thi gian:
5. X> lý thi gian thc
6. H th&ng .i6u khi/n và h thi gian thc
CHNG 2 : H ,IU HÀNH THI GIAN TH!C
1. ,*i cCDng v6 h .i6u hành thi gian thc
1.1. H .i6u hành
1.2. H .i6u hành th i gian thc so vEi h .i6u hành trên PC
1.3. ,-c .i/ m c0a h .i6u hành thi gian thc
1.4. Phân lo*i h .i6u hành thi gian thc
4.1. H iu hành thi gian thc nh vi mc ích thng mi
4.2. H iu hành thi gian thc m r ng ti Unix và các h iu hành khác
4.3. Các nhân cho mc ích nghiên c*u
2.TI chJc và kiKn trúc h .i6u hành thi gian th c
2.1. Tng quan
2.2. Các ki+n trúc h iu hành
2.2.1.Vi ht nhân :
2.2.2.n ht nhân:
2.3. H*t nhân h .i6u hành thi gian thc
2.3.1.H th-ng thi gian thc nh:


2.3.2. Công ngh a nhim
2.3 3. Các d1ch v cung c2p bi ht nhân
3. Các dNch vO cD bPn
3.1. Tác v và các trng thái tác v
3.2. B l8p l1ch
3.3. Tác v và d9 liu
3.4. :èn báo và chia s= d9 liu (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 dng queue, mailbox, pipe
H thi gian thc
2
4.2. Ch*c nJng b 1nh thi (Timer Functions)
4.3. Các s kin - Event
4.4. Các hàm ngMt trong môi trng RTOS
5. GiEi thiu m;t s& h .i6u hành thi gian thc
5.1. RTX51-Real Time Operating System
5.2. ARTX-Advanced Real Time Operating System
5.3. TC/OS
5.4. QNX Neutrino
a. Kin trúc microkernel
b. Giao tip liên quá trình d&a trên vic truy)n th*ng ,ip
CHNG 3 : KT THUT LUP TRÌNH THI GIAN TH!C
1 Tác vO và quá trình (process)
2. ,a nhim (Multitasking) và .3ng thi (Concurrency)
2 L^p lNch (Scheduling)
2.1 Các khái nim

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
CHNG 4 : THIkT Kk lNG DNG THI GIAN TH!C
1. B; .Nnh thi gian c0a 8051
2.1 Các thanh ghi cD sQ c0a b; .Nnh thi.
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 thi).
a.Các bít M1, M0:
b. C/ T (Xng hX/ b 1nh thi).
c. Bít cYng GATE.
2.1.4 Ngu3n xung .3ng h3 cho b; .Nnh thi:
H thi gian thc
3
1.2. Các chK .; c0a b; .Nnh thi

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 thi.
1.2.4 ChK .; 0.
1.2.5 L^p trình chK .; 2.
2. L^p trình x> lý ngjt
H thi gian thc
4
GIrI THIU
Giáo trình này nh2m cung c3p cho sinh viên các n5i dung ch6 yu 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
- Kin 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 nim Cnh
- Các giao tip th:i gian th& c;
- Các giao th;c kích hot do th:i gian; input/output;
- Các h ,i)u hành th:i gian th&c; ,Fnh th:i; validation;
- Thit k h th*ng; kin trúc kích hot do th:i gian.
H thi gian thc
5
CHNG 1 :
TNG QUAN V H THI GIAN TH!C
REALTIME SYSTEM - RTS

MOc .ích :
GiEi thiu tIng quan v6 mô hình h thi gian thc, các khái nim
cD bPn c0a h thi gian thc, c .i/m c0a các h thi gian thc, phân bit các
h thi gian thc . ChCDng này cvng .3ng thi giEi thiu h th&ng .i6u khi/n

vEi thi gian thc
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 gii 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 bit 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 hin 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 tip theo c6a h th*ng này sW là ,i)u
khiKn rôb*t có hot ,5ng gi*ng con ng?:i, h th*ng kiKm soát thông minh trong các
nhà máy công nghip, ,i)u khiKn các trm không gian, thH m dò ,áy ,i d?ng

1. Khái nim h th&ng thi gian thc :
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 kt
quC tính toán lôgic mà còn ph< thu5c vào th:i gian mà kt quC này phát sinh ra.
H th*ng th:i gian th&c ,?Bc thit k nh2m cho phép trC l:i (response) li
các yu t* kích thích phát sinh t_ các thit 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 tin trình, m5t công vic th:i gian th&c.
Nhìn chung, trong nhG ng RTS ch\ có m5t s* công vic ,?Bc gNi là công vic
th:i gian th& c, các công vic này có m5t m;c ,5 khbn c3p riêng phCi hoàn t3t, ví d<
m5t tin trình ,ang c* g[ng ,i)u khiKn hoQt giám sát m5t s& kin ,ang xC y ra trong
th gii th&c. Bdi vì mei s& kin xu3t hin trong th gii th&c nên tin trình giám
sát s& kin này phCi xZ lý theo kFp vi nhGng thây ,9i c6a s& ki n này. S& thay ,9i
c6a s& kin trong th gii th&c xCy ra r3t nhanh, mei tin trình giám sát s& kin này
phCi th&c hin vic 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 vic. Trong th&c t, các yu 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 li yu 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 tip nhPn kích thích, xZ lý thông tin và trC
l:i li kích thích. M5t yu t* khác cI n quan tâm trong RTS là nhGng công vic th:i
gian th&c này có tuIn hoàn hay không ? Công vic tuIn hoàn thì ràng bu5c th:i gian
3n ,Fnh theo t_ng chu kh xác ,Fnh. Công vic không tuIn hoàn xC y ra vi ràng bu5c
th:i gian vào lúc b[ t ,I u và lúc kt thúc công vic, ràng bu5c này ch\ ,?Bc xác ,Fnh
vào lúc b[t ,Iu công vic. Các bin c* kích hot công vic 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 thi gian thc
6
V) mQt c3u to, 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 bin c* không theo chu kh.
-B5 ,Fnh biKu : QuCn lý các qua trình th&c hin.
-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 hin : Khdi ,5ng các tin 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 kt hBp vào
phIn c;ng có khC nHng t*t hn so vi h th*ng phIn m)m có ch;c nHng t?ng ;ng
và tránh ,?Bc chi phí quá ,[t cho vic 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 thi gian thc:
Các RTS th?:ng ,?B c phân thành hai loi sau Soft reatime system và
Hard realtime system :
* i vi Soft realtime system, th:i gian trC l:i c6a h th*ng cho yu t* kích
thích là quan trNng, tuy nhiên trong tr?:ng hBp ràng bu5c này bF vi phm, t;c là
th:i gian trC l:i c6a h th*ng v?Bt quá gii h n trn cho phép, h th*ng von cho phép
tip t<c ho t ,5ng bình th?:ng, không quan tâm ,n các tác hi do s& vi phm này

gây ra (Th?:ng thì tác hi này là không ,áng kK).

Ng?Bc li vi 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 phm gii hn th:i gian ,K
cho phép bdi vì nhGng hPu quC này có thK là r3t tfi t, thit hi v) vPt ch3t, có thK
gây ra nhGng Cnh h?dng x3u ,n ,:i s*ng con ng?:i. M5t ví d< cho loi 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 nn 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 loi soft và hard. Trong cC
hai loi này, máy tính th?:ng can thip tr&c tip hoQc gián tip ,n các thit bF vPt
lý ,K kiKm soát cpng nh? ,i)u khiKn s& hot ,5ng c6a thit bF này. ; ng trên góc
,5 này, ng?:i ta th?:ng chia các RTS ra làm hai loi sau :

(1) Embedded system : B5 vi xZ lý ,i)u khiKn là m5t phIn trong toàn b5 thit bF, nó
,?Bc sCn xu3t trNn gói t_ yu t* c;ng ,n yu t* m)m t_ nhà máy, ng?:i sZ d<ng
không bit v) chi tit c6a nó và ch\ sZ d<ng thông qua các nút ,i)u khiKn, các bCng
s*. Vi h th*ng này, ta sW không th3 y ,?Bc nhGng thit 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 hiu 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\ vic b3m nút chNn ch?ng trình giQt, xem kt
quC qua h th*ng ,èn hiu 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 li. NhGng
ch?ng trình này chy ,5c lPp, không có
H thi gian thc
7
s& giao tip vi h ,i)u hành (HH) cpng nh? không cho phép ng?:i sZ d<ng
can thip vào.
(2) Loi th; hai là bao gfm nhGng h th*ng có s& can thip 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

hot ,5ng c6 a thit bF phIn c;ng c6a h th*ng này. NhGng ch?ng trình ,i)u khiKn
này có r3t nhi)u loi, ph<c v< cho nhi)u m<c ,ích khác nhau và có thK ,?Bc vit li
cho phù hBp vi yêu cIu th&c t. HiKn nhiên thì loi h th*ng này hot ,5ng ,?Bc
phCi cIn m5t HH ,i)u khiKn máy tính. HH này phCi có khC nHng nhPn bit ,?Bc
thit bF phIn c;ng, có khC nHng hoàn t3t công vic trong gii hn th:i gian nghiêm
ngQt. HH này phCi là HH h9 trB xZ lý th:i gian th&c – Realtime operating
system (RTOS).

3. ,-c .i/m c0a các h th&ng thi gian thc
Khái nim h th:i gian th&c không ,fng nghL a vi khái ni m h xZ lý t*c ,5
cao, xZ lý nhanh. Nu 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 mi gNi là ,i)u khiKn th:i gian th&c, thì m5t câu hvi sW
,?Bc ,Qt ra là: nh? th nào mi ,?Bc gNi là nhanh? Ta có thK th*ng nh3t là, cw m5t
vài micro-giây là r3t nhanh, tuy nhiên nu m5t vài ch<c micro-giây thì sao, m5t
trHm micro-giây thì sao? Nu m5t trHm micro-giây mi gNi là nhanh, thì 101, 102,
có nhanh không? Các h ,i)u khiKn vi 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 vi các s& kin xu3t hin vào các th:i ,iK m
th?:ng không bit tr?c. Ví d<, s& v?Bt ng?wng c6a m5t giá trF ,o, s& thay ,9i
trng thái c6a m5t thit bF quá trình phCi don ,n các phCn ;ng trong b5 ,i)u khiKn.

* Tính nhanh nhy: H th*ng phCi xZ lý thông tin m5t cách nhanh chóng ,K có thK
H thi gian thc
8

,?a ra kt quC phCn ;ng m5t cách kFp th:i. Tuy tính nhanh nhy 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 thit phCi có
,áp ;ng thPt nhanh mà quan trNng hn là phCi có phCn ;ng kFp th:i ,*i vi 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&
kin dinn ra. Có thK, cùng m5t lúc m5t b5 ,i)u khiKn ,?Bc yêu cIu th&c hin nhi)u
vòng ,i)u ch\nh, giám sát ng?wng giá trF nhi)u ,Iu vào, cCnh gii trng thái làm
vic 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. Nu m5t b5 ,i)u khiKn phCi
xZ lý ,fng th:i nhi)u nhim v<, ta phCi tham gia quyt ,Fnh ,?Bc v) trình t& th&c
hin các công vic và ,ánh giá ,?Bc th:i gian xZ lý mei công vi c. Nh? vP y ng?:i
sZ d<ng mi có c sd ,K ,ánh giá v) khC nHng ,áp ;ng tính th:i gian th&c c6a h
th*ng.

4. Thi gian trong h th&ng thi gian thc:
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 ti nhi)u ,fng hf, thì nhG ng ,fng hf
này phCi ,?Bc ,fng b5 vi 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 nu : 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. Loi này giá thành r3t ,[t.
M5t loi khác gfm m5t ,fng hf chính (master clock) ,fng b5 vi nhi)u
,fng hf ph< (slave clock) theo kiKu “polling”, t3t cC các ,fng có cùng ,5 chính xác,

nu ,fng hf chính bF hvng thì m5t trong nhGng ,fng hf ph< sW thay th.
*i vi 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 vi nhau theo cùng m5t thuPt toán.

4.3. Quan nim v6 s ri r*c thi gian:
Trong quan nim c6a RTS, th:i gian ,?Bc xem nh? là m5t yu t* r:i rc.
ây là m5t khía cnh r3t ph;c tp và lý thú.
(1) Trong các HH kinh ,iKn, có m5t ,fng hf quCn lý th:i gian ,fng b5
giGa các tin trình. fng hf này phát sinh ra ng[t báo hiu 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 tin 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 thi gian thc
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 tip cPn kt hBp giGa hai
quan nim 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 thi gian:
Vi mei yu t* kích thích, h th*ng tip nhPn vào m5t th:i ,iKm t0, h th*ng
tin hành c3p phát tài nguyên, th&c hin các xZ lý tính toán và hoàn t3t vic 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 tin trình
Tbegin(condition1) : Th:i gian b[t ,Iu tin trình
Tend(condition2) : Th:i gian tin 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 tin trình sZ d<ng… M5t ràng
bu5c kh[c khe hn có thK xác ,Fnh nh? sau:

(ID, Tbegin(condition1), CID, FID, Tend(condition2)) dC(t) dt ti
Trong ,ó: ID : Ch\ s* c6a tin trình
Tbegin(condition1) : Th:i gian b[t ,Iu tin trình
Tend(condition2) : Th:i gian tin trình hoàn t3t xZ lý
CID : Th:i gian ?c tính c6a tin 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 hin m5t công vic ,?Bc vit b2ng m5t nhóm
các ch\ thF (hàm) sW có th:i gian th&c hin là c* ,Fnh, thêm vào ,ó còn có th:i gian
dùng ,K khdi to tiKu trình, k t thúc tiKu trình don ,n th:i gian th&c hin công vic
,ó sW ln hn th:i gian th&c th< th&c hin tiKu trình. Câu hvi ,Qt ra là làm th nào
nhGng công vic có thK th&c thi m5t cách hoàn ch\nh trong th:i gian bF hn 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ý thi gian thc
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 nhy, tính ,fng th:i và tính
ti)n ,Fnh. K có thK phCn ;ng vi nhi)u s& kin 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 thi gian thc
10

Quá trình tính toán là m5t tin trình th&c hin 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 ti ,fng th:i vi
các quá trình khác kK cC trong th:i gian th&c hin lnh và th:i gian xp hàng ch:
,Bi th&c hin.

Các hình th;c t9 ch;c các quá trình tính toán ,fng th:i:

* XZ lý cnh 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 hin 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 hin 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ý cnh tranh có vai trò ch6 ch*t. MQc
dù h th*ng ,i)u khiKn có thK có nhi)u trm, và mei trm có thK là m5t h ,a vi xZ
lý, s* l?Bng các quá trình tính toán cIn th&c hin th?:ng bao gi: cpng ln hn s*
l?Bng vi xZ lý. Trong khi m5t vi xZ lý không thK th&c hin song song nhi)u lnh, nó
phCi phân chia th: i gian ,K th&c hin xen kW nhi)u nhim 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 nim tác v< (task) cpng hay ,?Bc sZ
d<ng bên cnh quá trình tính toán. Có thK nói, tác v< là m5t nhim v< xZ lý thông
tin trong h th*ng, có thK th&c hin theo c ch tuIn hoàn (periodic task) hoQc theo
s& kin (event task). Các dng 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 hin nhim v< ,i)u khiKn cho m5t hoQc nhi)u mch
vòng kín có chu kh trích mou gi*ng nhau. HoQc, m5t tác v< có thK th&c hin nhim
v< ,i)u khiKn logic, ,i)u khiKn trình t& theo các s& kin xCy ra. Tác v< có thK th&c
hin d?i dng 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 thi gian thc
H thi gian thc
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 li,
m5t s* ln 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 hot ,5ng bình th?:ng nu 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 nhit ,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 hiu ,i)u khiKn kFp th:i sau m5t th:i gian nhPn ,?Bc tín hiu ,o ,K ,?a
quá trình ki thuPt v) trng thái mong mu*n. M5t mng 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 vi các yêu cIu c6a các b5 ,i)u khiKn, các thit bF vào/ra, các
thit bF ,o và thit 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 hot ,5ng giGa các thành
phIn ,ó.

Trong th&c t, yêu cIu v) tính th:i gian th&c ,*i vi 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 vi các sCn phbm ch to hàng lot,
chi phí phIn c;ng cho t_ng sCn phbm cIn ,?Bc giCm thiKu, vì vPy dung l?Bng b5
nh cpng nh? hiu nHng vi xZ lý th?:ng th3p. Hn nGa, ,i)u khiKn nhúng li 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 hn v) hiu su3t phIn m)m. Trong khi ,ó, các h ,i)u
khiKn công nghip nh? PLC hoQc DCS ,Qt ra yêu cIu cao v) khC nHng lPp trình và
,?a vào vPn hành thuPn tin cho các bài toán ln. Các h th*ng ;ng d<ng PLC và
DCS cpng th?:ng chPm hn (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 ,in nguyên tZ hay trong
m5t nhà máy lNc dIu, nu thuPt toán ,i)u khiKn mQc dù r3t hin ,i nh?ng b5 ,i)u
khiKn không có khC nH ng ,?a ra kt 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 quyt ,Fnh d_ng khbn c3p m5t cách kFp th:i
trong nhGng tình hu*ng b3t th?:ng?

H thi gian thc
12
CHNG 2 :
H , IU HÀNH THI GIAN TH!C
REALTIME OPERATING SYSTEM – RTOS

MOc .ích :
GiEi thiu v6 kiKn trúc c0a m;t h .i6u hành thi gian thc, các
khác bit c0a h .i6u hành thi gian thc vEi các h .i6u hành PC. ,-c .i/m
và phân lo*i các h .i6u hành thi gian thc, vxn .6 x> lý thi gian trong h
.i6u hành thi gian thc. ChCDng này cvng .3ng thi giEi thiu m;t s& h .i6u
hành thi gian thc phI biKn nhC : Window Mobile, Symbyan ….

1. ,*i cCDng v6 h .i6u hành thi gian thc
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 tip vi phIn c;ng c6a máy tính, ph<c v< cho nhi)u ;ng d<ng ,a

dng. Các h ,i)u hành cung c3p m5t tPp các ch;c nHng cIn thit ,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 thip tr&c tip sâu. H ,i)u hành c6a máy tính có thK th3y nó bao gfm các
drivers cho các ngoi vi tích hBp vi 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 thit bF ngoi vi nói chung.
i)u này to ra m5t giao din 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 bit 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 loi phIn m)m nh?ng nó khác vi
các loi phIn m)m thông th?:ng. S& khác bit ,iKn hình là h th*ng ,i)u hành
,?Bc np và th&c thi ,Iu tiên khi h th*ng b[t ,Iu khdi ,5ng và ,? Bc th&c hin tr&c
tip bdi b5 xZ lý c6a h th*ng. H th*ng ,i)u hành ,?Bc vit ,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 nhim 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 thi gian thc
13
1.2. H .i6u hành th i gian thc 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 vi
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 chim quy)n ,i)u khiKn
ngay sau khi máy ,?Bc bPt và sau ,ó mi cho chúng ta b[ t ,Iu ;ng d<ng c6a mình.
Chúng ta biên dFch và liên kt các ;ng d<ng c6a mình tách bit vi h ,i)u hành.
Ng?Bc li, trong m5t h th*ng nhúng, ;ng d<ng th?:ng xuyên liên kt vi RTOS.
Ti lúc khdi ,5ng, ;ng d<ng nhPn l3y quy)n ,i)u khiKn ,Iu tiên và sau ,ó nó mi
b[t ,Iu RTOS. Bdi vPy ;ng d<ng và RTOS phCi có m*i quan h chQt chW hn.
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 tit kim b5 nh các RTOS mQc ,Fnh ch\ bao gfm các dFch v<
cIn thit cho ;ng d<ng nhúng c6a chúng ta. HIu ht các RTOS cho phép chúng ta
c3u hình bao quát tr?c khi chúng ta liên kt chúng vi ;ng d<ng.
Th; t?, hIu ht các ,i)u hành trên máy desktop quan tâm ,n hiu nHng trung bình
trong khi các h ,i)u hành th:i gian th&c li quan tâm ,n các gii hn, th:i gian
,áp ;ng.
` trong phIn này, chúng ta tìm hiKu khái nim tác v< - Task trong môi
tr?:ng RTOS và v3n ,) chia sl dG liu, 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 mnh ,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 li chính là:

1.3. ,-c .i/ m c0a h .i6u hành thi gian thc
H thi gian thc
14

Do các yêu cIu kh[t khe v) th:i gian, v) vic sZ d<ng tài nguyên, và s& quan
trNng c6a vic 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? vin, chúng ta có thK dùng, thêm
bt các dFch v< cho phù hBp vi ;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 hn, tin t?dng hn. Vì vPy s& tfn
ti c6a các RTOS là r3t cIn thit 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 bit
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 vi
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 liu 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 mch ngG cCnh là
r3t quan trNng, cùng vi 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 hn 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 yu t*:
1. KhoCng th:i gian trn ng[t - Interrupt Latency: là khoCng th:i gian t_ lúc ng[t
ti lúc ch y tác v<. KhoCng th:i gian này phCi t?ng thích vi 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 bit 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 thit bF ,i)u khiKn các ng[t (IRQ: Interrupt ReQuest), th:i gian c&c ,i
c6a h th*ng mà trình thit bF ,i)u khiKn ng[t th&c hin.

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 tip vi phIn c;ng d lp 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 ti các b5 vi xZ lý khác
+ Tính m)m dlo ,K phù hBp vi 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 mng

H thi gian thc
15
Theo nhGng tiêu chubn POSIX - M5t khuynh h?ng giúp nhGng nhà thit k
di chuyKn t_ h ,i)u hành th:i gian th&c này ti h ,i)u hành th:i gian th&c khác.
Qc bit, b3t c; RTOS nào tuân theo chubn POSIX ,)u chia sl m5t chubn API
(giao din 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 thit. 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 ln. Các RTOS th?:ng cung c3p
các m;c xZ lý ?u tiên. Các công vic ? u tiên cao hn sW ,?Bc th&c hin tr?c.
Các RTOS thích hBp vi 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 thi gian thc
+ H ,i)u hành th:i gian th&c nhv vi m<c ,ích th?ng mi.
+ H ,i)u hành th:i gian th&c md r5ng ti 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 iu hành thi gian thc nh vi mc ích thng mi

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 liu trong b5 nh.
+ H th*ng ,a tác v< và chubn giao tip liên quá trình. Các mailbox, các s& kin,
các tín hiu 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 vi các dFch v< nh?:
+ Các gii hn th:i gian th&c hin.
+ fng hf th:i gian th&c.
+ LPp lFch th; t& ?u tiên.
+ CCnh báo ,Qc bit và th:i gian quá hn (timeout).
+ He trB các hàng ,i th:i gian th&c.
+ Cung c3p vic xZ lý ,5 trn, treo hay kích hot vic th&c hin.

H thi gian thc
16
4.2. H iu hành thi gian thc m r ng ti Unix và các h iu 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 hn và có khC nHng d& ,oán ít hn so vi các h ,i)u hành th:i gian
th&c th?ng mi d trên nh?ng chúng li có nhi)u ch;c nHng và môi tr?:ng phát
triKn t*t hn d&a trên tPp các giao tip chubn và thân thin.

4.3. Các nhân cho mc í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à vic phân tích th:i gian.

+ He trB các dFch v< c bCn ,K ,fng b5 th:i gian th&c.
+ Nh3n mnh khC nHng d& ,oán hn là hiu 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 thi gian th c
2.1. Tng quan
Nh? chúng ta ,ã ,?Bc bit ,*i vi các h th*ng th:i gian th&c, yêu cIu thit
k m5t h ,i)u hành khá ,Qc bit. H nhúng th:i gian th&c li yêu cIu h
,i)u hành phCi th&c hin vi m5t ngufn tài nguyên th?:ng r3t hn h•p. MQc dù
kích th?c b5 nh tích hBp onchip sW có thK tHng lên trong t?ng lai nh?ng vi s&
phát triKn hin nay h ,i)u hành cho các h nhúng ch\ nên cw khoCng nhv hn 32
Kbytes.

H th*ng ,i)u hành ,Cm nhim vic ,i)u khiKn các ch;c nHng c bCn c6a h
th*ng bao gfm ch6 yu là quCn lý b5 nh, ngoi vi và vào ra giao tip vi h th*ng
phIn c;ng. M5t ,iKm khác bit c bCn nh? chúng ta ,ã bit v) h ,i)u
hành vi các phIn m)m khác là nó th&c hin ch;c nHng ,i)u khiKn s& kin th&c
thi trong h th*ng. Có nghLa là nó th&c hin các tác v< theo mnh lnh yêu cIu t_
các ch?ng trình ;ng d<ng, thit bF vào ra và các s& kin ng[t.

H thi gian thc
17
B*n nhân t* chính tác ,5ng tr&c tip ti quá trình thit k h ,i)u hành là :
(1) khC nHng th&c hin,
(2) nHng l?Bng tiêu th<
(3) giá thành
(4) khC nHng t?ng thích.

Hin nay chúng ta cpng có thK b[t gQp r3t nhi)u h ,i)u hành khác

nhau ,Qc bit cho các h nhúng cpng vì s& tác ,5ng c6a 4 nhân t* nêu trên. HI u
ht chúng ,)u có kiKu dng và giao din 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 thit
k ph<c v< tr&c tip 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 vi nhau.

2.2. Các ki+n trúc h iu hành
Hai thành phIn chính trong thit k h ,i)u hành là: phIn ht nhân
(kernel) và các ch?ng trình h th*ng.
Ht 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 ht nhân ,Cm nhim ch;c nHng lPp lFch, ,fng b5 và bCo v h
th*ng bdi vic 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_ trng thái
và các b5 ,Fnh th:i gian. Nó np các phIn m)m ,i)u khiKn thit bF ,K cung c3p các
tin ích chung và ph*i hBp vi các hot ,5ng vào ra vi h th*ng. PhIn ht 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
vic 9n ,Fnh và th* ng nh3t.

Hai kin trúc thit k phIn ht nhân kinh ,iKn nh3t là kin trúc vi ht nhân và
,n ht nhân (monolithic).

Vi h*t nhân :
Các vi ht 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 nhim 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 to hoQc c3u hình
li mà không nh3t thit phCi khdi to li toàn b5 h th*ng. Kin trúc vi ht 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 vi hn
ch v) truy nhPp vào tài nguyên c6a h th*ng và có thK ,?Bc giám sát. Kin trúc vi

ht nhân có thK ,?Bc xây d&ng m5t cách m)m dlo ,K phù hBp vi c3u hình phIn
c;ng khác nhau m5t cách llinh hot hn so vi kiKu kin trúc ht nhân monilithic.
Tuy nhiên do tính ,5c lPp t?ng ,*i giGa các modul trong vi ht nhân nên cIn thit
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 hiu quC hot ,5ng c6a h th*ng. Qc
,iKm n9i bPt và c*t lõi c6a ki n trúc vi ht nhân là kích th?c nhv và dn dàng sZa
,9i cpng nh? xây d&ng linh hot hn. 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. Kin trúc vi ht nhân ,?Bc phát triKn mnh mW
trong các h th*ng ,a xZ lý ví d< nh? Windows 2000, Mach và QNX.
H thi gian thc
18
,Dn h*t nhân:
KiKu kin trúc monolithic cung c3p t3t cC ch;c nHng/dFch v< chính yu thông
qua m5t qua trình xZ lý ,n ll. Chính vì vPy kích th?c c6a chúng th?:ng ln hn
kiKu kin trúc vi ht nhân. Loi hình kin trúc này th?:ng ,?Bc áp d<ng ch6 yu
cho các phIn c;ng c< thK mà ht nhân monolithic có s& t?ng tác tr&c tip vi phIn
c;ng nh: vPy mà khC nHng t*i ?u cpng dn dàng hn so vi áp d<ng kiKu kin trúc vi
ht nhân. Chính vì vP y cpng là lý do ti sao kin trúc monolithic không thK thay ,9i
m)m dlo linh hot nh? kiKu vi ht nhân. Ví d< ,iK n hình v) loi hình kin trúc
ht 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 thit 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 thi gian thc
H th*ng ,i)u hành vi phIn lõi là ht nhân phCi ,Cm nhim các tác v< chính
nh? sau:
 XZ lý ng[t
 L?u trG ngG cCnh ch? ng trình ti th:i ,iKm xu3t hin ng[t
 NhPn dng và l&a chNn ,úng b5 xZ lý và ph<c v< dFch v< ng[t
 i)u khiKn quá trình

 To và kt thúc quá trình/tác v<
 LPp lFch và ,i)u ph*i hot ,5ng h th*ng
 Fnh th:i
 i)u khiKn ngoi vi
 XZ lý ng[t
 Khdi to giao tip vào ra

Tùy theo c ch th&c hin và xây d&ng hot ,5ng c6a ht nhân ng?:i ta phân
loi m5t s* loi hình

(1)H th-ng thi gian thc nh:
H thi gian thc
19
Vi loi 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 nhim
 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 bi ht nhân
 To và kt 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 vic th&c thi liên quan ,n ,i)u khiKn h
h*ng

Ht nhân ,iKn hình c bCn

 Loi ht nhân ,n giCn nh3t là m5t vòng lQp vô hn thHm dò các s& kin xu3t
hin trong h th*ng và phCn ;ng li theo s& thay ,9i nu có.
 Vi 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 xp hoQc vùng ngHn xp r3t
hn ch.
 Thay vì sZ d<ng các thanh ghi thit bF, vòng lQp thHm dò có thK giám sát các
bin mà chF u s& thay ,9i cPp nhPt bdi các b5 xZ lý ng[t.
 Ht nhân có thK ,?Bc xây d&ng sao cho t3t cC các tín hiu 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< ln cIn nhi)u th:i gian th&c hin có thK ,?Bc chia nhv thành các
tác v< nhv và ,?Bc th&c hin ti các th:i ,iKm khác nhau nh: vào c ch
chuyKn và sZ d<ng b5 ,m.

 Các ht nhân th&c thi theo c ch ng[t r3t gi*ng vi loi ht nhân
th&c hin 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 ht nhân ln và ph;c tp hn sW bao gfm m5t s* các dFch v< ph< ph<c
v< cho vic truy)n thông giGa các quá trình. Và nu ,?Bc b9 sung ,Iy ,6 nó
sW trd thành m5t h ,i)u hành ,Iy ,6.
Các kiKu loi ht nhân c bCn
 Ht nhân th&c hin vòng lQp thHm dò
 Ht nhân th&c hin theo c ch ng[t
 Ht nhân quá trình vPn hành quá trình

H thi gian thc
20
Vic l&a chNn loi ht 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 loi ht nhân vPn hành theo quá trình
không phù hBp vi các b5 xZ lý nhv.
H*t nhân quá trình

Các ht nhân quá trình rõ ràng là ph;c tp hn các ht nhân th&c hin theo
c ch thHm dò và ,i)u khiKn ng[t. Các ,?:ng truy)n tín hiu logic bên trong các
quá trình và các dFch v< ng[t ,?Bc tích hBp và th&c hin thông qua vic truy)n dG
liu.

Ht nhân sW phCi ,Cm nhim ch;c nHng lPp lFch cho các quá trình theo ,úng mô
hình trng thái.
 RUN: quá trình ,?Bc th&c hin
 WAIT: các quá trình ch: m5t s& kin hoQc tín hiu vào ra kích hot quá trình
 READY: các quá trình s•n sàng ,?Bc th&c hin
Các phIn tZ thu5c tính c6a m5t quá trình: Các phIn tZ này cIn thit ,K ph<c v< cho
vic lPp lFch. Ví d< ,*i vi c ch lPp lFch theo m;c ,5 ?u tiên sW yêu cIu thông tin
sau vi mei quá trình:
• Tên (,Fa ch\ b5 nh c6a phIn tZ quá trình)
• Trng 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 xp)

3. Các dNch vO cD bPn
3.1. Tác v và các trng 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. Vic
to 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. Ti m5t s* ,iK m trong ch?ng trình, chúng ta th&c hin m5t hoQc nhi)u l:i gNi
ti 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 trng thái chính:
1. Running: Vi ý nghLa b5 xZ lý ,ang th&c hin tác v<. Vi m5t b5 xZ lý thì
chúng ta ch\ chy m5t tác v< ti m5t th:i ,iKm nh3t ,Fnh.
2. Ready: Vi ý nghLa m5t s* tác v< khác s•n sàng chy nu b5 xZ lý rei.
3. Blocked: Vi ý nghLa tác v< không s•n sàng chy kK cC khi b5 xZ lý trong
trng thái ngh\ - Idle. Tác v< d trong trng thái này vì chúng ,Bi m5t s& kin bên

ngoài tác ,5ng ,K kích hot nó trd li tr ng thái s•n sàng.
H thi gian thc
21

3.2. B l8p l1ch
M5t phIn c6a RTOS ,?Bc gNi là b5 lPp lFch, l?u vt các trng thái c6a mei
tác v< và quyt ,Fnh m5t tác v< duy nh3t sW ,i vào trng thái Running. Không gi*ng
nh? b5 lPp lFch trong Windows hay UNIX, b5 lPp lFch trong hIu ht các RTOS là
khá ,n giCn: Chúng nhìn vào m;c ?u tiên ,?Bc gán ti 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 hin. B5 lPp
lFch sW ph<c v< tác v< nào có m;c ?u tiên cao hn trong khi các tác v< ?u tiên th3p
hn sW ,Bi cho ,n khi giCi phóng b5 xZ lý khvi tác v< ?u tiên cao hn. B5 lPp lFch
giúp chúng ta bit tác v< nào phCi làm tr?c khi chúng ta thit lPp th; t& ?u tiên.
K b5 lPp lFch bit ,?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 bit ,?Bc các s& kin mà các
tác v< này ,ang ,Bi tín hiu ,K s& kin xCy ra ,ó.
Nu t3t cC tác v< ,)u bF khoá, không thK ch: ,?Bc tín hiu nào làm cho các
tác v< trd li trng 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 thit k bF lei. Nu 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 quyt v3n ,) này là vic 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 li chy m5t tác v< b3t kh cho ,n khi nó bF khoá.
Nu m5t tác v< ,ang chy, có m5t tác v< khác ?u tiên cao hn ,?Bc kích
hot thì RTOS sW d_ng tác v< ,ang chy và sW chy tác v< ?u tiên cao hn kia. Tác
v< có m;c ?u tiên th3p hn sW khoá.

3.3. Tác v và d9 liu
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 liu khác ,?Bc chia sl giGa các tác v<.

Khi chúng ta sZ d<ng bin chia sl dG liu giGa các tác v<, ,i)u ,ó r3t dn dàng ,K
chuyKn dG liu t_ tác v< này ti tác v< khác: hai tác v< cIn phCi truy nhPp ti cùng
bin. Tuy nhiên, v3n ,) chia sl dG liu r3t dn don ti vic 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 bin
pháp trong RTOS ,K giCi quyt v3n ,) này.

3.4. :èn báo và chia s= d9 liu (Semaphore)

Semaphore có thK giCi quyt v3n ,) trong chia sl dG liu. Khi ,ó ch\ có m5t
tác v< có thK n[m quy)n sZ d<ng ,èn báo ti m5t th:i ,iKm. Các tác v< khác dù có
?u tiên cao hn von phCi ch: ,n khi giCi phóng ,èn báo vì vPy mà ,èn báo có thK
ngHn chQn vic chia sl dG liu 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 ti 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 hiu ,K giao tip giGa các tác v< vi
nhau hoQc giGa hàm ng[t và tác v<.
Tuy ,èn báo không thK giCi quyt mNi v3n ,) v) chia sl dG liu nh?ng h
th*ng c6a chúng ta có thK làm vic t*t hn, ít th:i gian hn khi chúng ta sZ d<ng
H thi gian thc
22
,èn báo. V3n ,) d ,ây là ,èn báo ch\ làm vic 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. Nu chúng ta ,ang sZ d<ng nhi)u ,èn
báo, thì vic 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 ln.
- GiG m5t ,èn báo trong th:i gian quá lâu. V3n ,) này có thK vi phm 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), nu 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ó chim quy)n sZ d<ng b5 xZ lý.
M5t s* RTOS giCi quyt v3n ,) này b2ng cách k th_a m;c ?u tiên, chúng
tm th:i nâng m;c ?u tiên tác v< C ,K chy 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 tip vi nhau ,K kt hBp các hot ,5ng và
,K chia sl dG liu. HIu ht RTOS kt hBp c6a m5t s* dFch v< nh?: hàng các ,Bi
thông ,ip, 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 ht RTOS yêu cIu chúng ta phCi khdi to hàng ,Bi tr?c khi chúng ta sZ
d<ng chúng b2ng vic 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 ht các RTOS cho phép ta sZ d<ng nhi)u hàng ,Bi nu 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 ,ó.
Nu chúng ta c* ghi vào hàng ,Bi khi nó ,ã ,Iy, RTOS sW trC li m5t thông
báo lei ,K chúng ta bit hot ,5ng ,ó bF hvng hoQc là hot ,5ng ,ó phCi bF khoá cho
,n khi có m5t tác v< ,Nc dG liu khvi hàng ,Bi.
R3t nhi)u RTOS sZ d<ng m5t hàm ,K ,Nc t_ m5t hàng ,Bi nu có dG liu
trong hàng ,Bi và sW trC ra m5t lei nu hàng ,Bi reng. Và hàm này sW d trng thái
khoá (block) nu hàng ,Bi reng.

S* byte dG liu mà RTOS ghi vào hàng ,Bi trong m5t l:i gNi có thK không
chính xác vi s* byte dG liu 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 thi gian thc
23
Nói chung, mailbox là gi*ng hàng ,Bi. MQc ,Fnh RTOS có các hàm ,K to,
,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 ,ip nào. Khi mailbox không cIn thit 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 ,ip trong mei mailbox, con
s* này chúng ta có thK chNn khi to mailbox, m5t s* khác thì ch\ cho phép m5t
thông ,ip trong m5t mailbox ti m5t th:i ,iKm. M5t thông ,ip ,?Bc ghi ti
mailbox, mailbox sW ,Iy khi ,ó các thông ,ip khác ch\ có thK ghi ti mailbox khi
thông ,ip ,Iu ,?Bc ,Nc.
+ Trong m5t s* RTOS, s* l?Bng c6a thông ,ip trong mei mailbox là không bF gii
hn. Ch\ có m5t gii hn là t9ng s* thông ,ip 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 ,ip trong mailbox. Các
thông ,ip ?u tiên cao hn sW ,?Bc ,Nc tr?c các thông ,ip có ?u tiên th3p hn,
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 to 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 ,ip vi ,5 dài tuh ý lên trên pipe

(không gi*ng nh? mailbox và queue ,5 dài thông ,ip là c* ,Fnh).
+ Pipe trong m5t s* RTOS là toàn b5 h?ng byte: Nu task A ghi 11 byte ti pipe
và sau ,ó task B ghi 19 byte ti pipe, sau ,ó nu task C ,Nc 14 byte t_ pipe, nó sW
nhPn ,?Bc 11 byte c6a task A ,ã ghi c5ng vi 3 byte ,Iu tiên mà task B ,ã ghi.
+ M5t s* RTOS sZ d<ng hàm th? vin chubn C là fread và fwrite ,K ,Nc và ghi
ti pipe.

d. SH dng queue, mailbox, pipe
MQc dù queue, mailbox, pipe có thK làm v3n ,) chia sl dG liu giGa các tác
v< trd lên dn dàng hn nh?ng nó cp ng r3t dn gây ra lei trong h th*ng c6a chúng ta.
ây là m5t s* kinh nghim khi sZ d<ng chúng:
+ HIu ht RTOS không gii hn 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 ti
mei th:i ,iKm.
+ RTOS không ,Cm bCo r2ng dG liu ,?Bc ghi vào trong queue, mailbox, pipe sW
,úng vi 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.
+ Chy 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 ti tác v< khác thông qua m5t queue, mailbox
hoQc pipe là cách ,K to ra chia sl dG liu. Chúng ta tránh dùng hàm malloc và free.

4.2. Ch*c nJng b 1nh thi (Timer Functions)

H thi gian thc
24
HIu ht 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 ht 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 gii hn 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 kin - Event
M5t dFch v< khác c6a RTOS ,?a ra là quCn lý các s& kin bên trong h
th*ng. Mei s& kin c bCn là m5t c: boolean mà các tác v< có thK thit lPp, thit lPp
li và có thK có các tác v< khác nhau cùng ,Bi nó. M5t s* ,Qc ,iKm c6a s& kin
trong các RTOS là:
+ Nhi)u hn m5t tác v< có thK cùng bF khoá ,Bi cho m5t s& kin, RTOS sW giC i
phóng t3t cC chúng và th&c hin chúng theo th; t& ?u tiên khi s& kin xCy ra.
+ RTOS mQc ,Fnh hình thành m5t nhóm các s& kin và các tác v< ,Bi cho b3t kh
tPp con nào c6a nhóm s& kin 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 thit
lPp li m5t s& kin sau khi nó ,ã xCy ra và các tác v< ,Bi s& kin ,ó sW ,?Bc giCi
phóng. M5t s* RTOS thit lPp li các s& kin 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& kin cho vic
giao tip 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 ,ip ,?Bc chuyKn ,K
thông báo semaphore ,?Bc giCi phóng.
+ S& kin là ít ph;c tp hn semaphore nh?ng li tiêu t*n nhi)u th:i gian b5 xZ lý
hn semaphore. S& d< ng các s& kin thuPn lBi hn semaphore d che: m5t tác v< ,Bi
m5t hay nhi)u s& kin 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 ln thông tin t_ tác v< này ti tác
v< khác. Cho dù tác v< ch\ ,Bi trên m5t hàng ,Bi ti m5t th:i ,iK m nh?ng s& thPt là

chúng cho phép chúng ta có thK gZi dG liu thông qua m5t hàng ,Bi làm nó linh
hot hn m5t s& kin. S& b3t lBi là khi ,Nc và ghi thông ,ip sW chim 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 vi queue.

4.4. Các hàm ngMt trong môi trng RTOS
Các hàm ng[t trong hIu ht 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 thi gian thc
25
kin Nu hàm ng[t gNi m5t hàm RTOS và bF khoá, thì tác v< ,ang chy 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
ht các hàm ng[t phCi chy ,K hoàn thành vic thit lPp li phIn c;ng ,K s•n sàng
cho ng[t tip 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 ti chy các tác v< tr_ khi RTOS bit ,ó là m5t
hàm ng[t và không là m5t tác v< trong lúc ,ang th&c hin hàm ng[t. Nu th6 t<c
ng[t phá vw quy t[c này thì RTOS có thK chuyKn vic ,i)u khiKn t_ hàm ng[t ti
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 hn và có thK là t3t cC các ng[t khác.

5. GiEi thiu m;t s& h .i6u hành thi gian thc
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 thit k cho các phIn m)m có ,5 ph;c
tp và có gii hn chính xác v) th:i gian ,áp ;ng. RTX51 có các công c< r3t mnh

,K quCn lý các tác v<. Có hai phiên bCn c6a RTX51:

RTX51 Full cho phép th& c hin cC chuyKn mch xoay vòng và chuyKn tác v<
vi 4 m;c ?u tiên, có thK hot ,5ng cùng vi các hàm ng[t m5t cách song song.
RTX51 chuyKn các tín hiu, chuyKn các thông ,ip 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& kin: ng[t,
timeout, thông ,ip 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 liu 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 mch
xoay vòng giGa các tác v<, he trB chuyKn các thông ,ip và có thK hot ,5ng cùng
vi các hàm ng[t m5t cách song song. Hàm os_wait c6a RTX51 có thK ,Bi cho các
s& kin: timeout, tín hiu 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< hot
,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

×