Bài giảng môn học Hệ điều hành thời gian thực - khoa công nghệ thông tin - bậc đào tạo đại học chính quy - đại học Duy Tân
Trang 1M 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:
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
3.4 :èn báo và chia s= d9 li u (Semaphore)
4 Các dNch vO mQ r;ng c0a RTOS thCDng m*i
4.1 Message Queues, Mailboxes và Piles
Trang 24.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
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.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
Trang 4GIrI 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
Trang 5CH 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;uv) 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)ukhiKn 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, thHm 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 tquC 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 icá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:igian 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 nhGng RTS ch\ có m5t s* công vi c ,?Bc gNi là công vi cth: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 xCy 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 ,9ic6a 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 r3tng[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à trCl:i l i kích thích M5t y u t* khác cIn quan tâm trong RTS là nhGng công vi c th:igian 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 xCy ra v i ràng bu5cth:i gian vào lúc b[t ,Iu 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 tuIn hoàn th?:ng d&a trên ki thuPt xZ lý ng[t c6a h th*ng phIn c;ng
Trang 6V) 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 ,?Bc 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ó thKgây ra nhGng Cnh h?dng x3u , n ,:i s*ng con ng?:i M5t ví d< cho lo i này là hth*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 cChai 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 th3y ,?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 tquC qua h th*ng ,èn hi u B5 vi xZ lý trong Embedded system này ,ã ,?Bc lPptrình tr? c và g[n chQt vào ngay t_ khi sCn xu3t và không thK lPp trình l i NhGng
Trang 7s& 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 c6a thi t bF phIn c;ng c6a h th*ng này NhGng ch? ng trình ,i)u khiKnnà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 icho phù hBp v i yêu cIu th&c t HiKn nhiên thì lo i h th*ng này ho t ,5ng ,?BcphCi cIn m5t H H ,i)u khiKn máy tính H H này phCi có khC nHng nhPn bi t ,?Bcthi 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 nghLa v i khái ni m h xZ lý t*c ,5 cao, xZ lý nhanh N u ta cho r2ng, phCi là các ;ng d<ng ,i)u khiKn có yêu cIu th:igian 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 m5tvài micro-giây là r3t nhanh, tuy nhiên n u m5t vài ch<c micro-giây thì sao, m5ttrHm 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ó ,?BcgNi 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 ,iKmth?: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
Trang 8,?a ra k t quC phCn ;ng m5t cách kFp th:i Tuy tính nhanh nh y là m5t ,Qc ,iKmtiê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)uvò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? vPy 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 hth*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ì nhGng ,fng hfnà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
Trang 9trì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:ivào th:i ,iKm tk khác sau ,ó
M5t ràng bu5c t*i thiKu có thK ,?Bc ,Fnh nghLa qua b5 ba sau:
(ID, Tbegin(condition1), Tend(condition2))
(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 ,CmbCo tính nHng th:i gian th&c c6a nó Nh? vPy, 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
Trang 10Quá 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 icá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 c6am5t 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 sZd<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 mv< ,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
Trang 11Có 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ó hth*ng ,i)u khiKn nào có thK ho t ,5ng bình th?:ng n u nh? nó không ,áp ;ng ,?Bccá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 ,?aquá trình ki thuPt v) tr ng thái mong mu*n M5t m ng truy)n thông trong m5t hth*ng ,i)u khiKn có tính nHng th:i gian th&c phCi có khC nHng truy)n tin m5t cách tin cPy 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)ukhiKn 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)ukhiKn cpng có các ,Qc thù khác nhau, m;c ,5 ngQt nghèo khác nhau Ví d<, các hth*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à giCiphá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)ukhiKn 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)ukhiKn không có khC nHng ,?a ra k t quC ,áp ;ng kFp th:i vào nhGng th:i ,iKm trích mou, hay khi không ,?a ra ,?Bc các quy t ,Fnh d_ng khbn c3p m5t cách kFp th:itrong nhGng tình hu*ng b3t th?:ng?
Trang 12CH 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
H th*ng ,i)u hành bCn ch3t cpng là m5t lo i phIn m)m nh?ng nó khác v icá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 khiKnb5 xZ lý cpng nh? các tài nguyên khác trong h th*ng bdi vì nó sW ,Cm nhi m ch;cnHng quCn lý và lPp lFch các quá trình sZ d<ng CPU và cùng chia sl tài nguyên
Trang 131.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 khiKnngay 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 ib[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 cbnthPn 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
Trang 14Do 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 hnhú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 tnh? 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 icá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à ,?Bcphâ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<, m5tRTOS 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
Trang 15Theo 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 chubnPOSIX
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 c6am5t 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 c3pcá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 giCmm5t 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 ,iKmsau:
+ Có th:i gian chuyKn ngG cCnh và th:i gian ,áp ;ng nhanh
+ 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
Trang 164.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 hth*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)uhà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&cthi 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
Trang 17B*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,
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
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 r3tnhi)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 phInc;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 tphCi 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 mWtrong các h th*ng ,a xZ lý ví d< nh? Windows 2000, Mach và QNX
Trang 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 nkiKu 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 ucho 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 phInc;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ì vPy cpng là lý do t i sao ki n trúc monolithic không thK thay ,9im)m dlo linh ho t nh? kiKu vi h t nhân Ví d< ,iKn 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ì vPy ng?:i thi t k cIn phCi n[m ,?Bc 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[tNhPn d ng và l&a chNn ,úng b5 xZ lý và ph<c v< dFch v< ng[ti)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[tKhdi 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 :
Trang 19V 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?:ilPp 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
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?uc3t 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à chFu 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)ukhiKn 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 chchuyKn 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<cv< 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
Trang 20Vi 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<ccon T i m5t s* ,iKm 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 dm5t 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
Trang 213.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 meitá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 lPplFch 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 m5ttPp 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 hth*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 sZd<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.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ó m5ttá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ó thKngHn 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 l3y 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 inhau 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 hth*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
Trang 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 l3y quy)n sZ d<ng ,èn báo tr? c khi sZ d<ng
- Quên giCi 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 , nkhi 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 thCDng 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 ,Bithô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 sZd<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 utrong 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 dlov) 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
Trang 23Nó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 ,?Bchay 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 ,iKmriê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 m5tthông ,i p trong m5t mailbox t i m5t th:i ,iKm M5t thông ,i p ,?Bc ghi t imailbox, 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 hth*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ó sWnhPn ,?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ó cpng 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 imei 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
Trang 24HIu 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
Chúng ta sZ d<ng các queue, mailbox, pipe, semaphore, và các s& ki n cho vi cgiao 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)uthô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< ,Bim5t 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 ,iKm 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:igian 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 vPy th6 t<c ng[t không sZ d<ng ,èn báo, không ,Nc
Trang 25ki n N u hàm ng[t gNi m5t hàm RTOS và bF khoá, thì tác v< ,ang ch y khi ng[txCy 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à m5thà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<cng[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
7 byte DATA 3*(S* tác v<) IDATA
PhIn c;ng ,òi
hvi
Timer 0 hoQc Timer 1 Timer 0 fng hf h 1000…40000 chu kh 1000…65535 chu kh