1. Trang chủ
  2. » Giáo án - Bài giảng

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

51 890 19
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài giảng Hệ điều hành thời gian thực
Trường học Đại học Công Nghệ Thông Tin - Đại học Quốc Gia Hà Nội
Chuyên ngành Hệ điều hành
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 51
Dung lượng 5,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 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:

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 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

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 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

Trang 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;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 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 ,?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 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 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 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: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 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 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 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ó 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 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

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 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 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 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 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 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 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 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 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 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,

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 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?: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 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<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 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 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 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 ,?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 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

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 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[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

Ngày đăng: 16/03/2014, 00:24

TỪ KHÓA LIÊN QUAN

w