ĐỒ ÁN
Hệ thống thời gian thực
SVTH: TRấèN DUY HOA
1
MUC LUC Chỷỳng I Hẽ THệậNG THI GIAN THC 4
1.1. Hùồ thửởng thỳõi gian thỷồc: 4
1.1.1. Giỳỏi thiùồu vùỡ hùồ thửởng thỳõi gian thỷồc : 4
1.1.2. Khaỏi niùồm hùồ thửởng thỳõi gian thỷồc : 4
1.1.3. Caỏc loaồi hùồ thửởng thỳõi gian thỷồc: 5
1.2. Hùồ iùỡu haõnh cho hùồ thửởng thỳõi gian thỷồc : 6
1.2.1. Sỳ lỷỳồc vùỡ hùồ iùỡu haõnh : 6
1.2.2. Quan niùồm tiùởn trũnh, tiùớu trũnh : 7
CAC CHNG TRềNH NG DUNG Hẽ IẽèU HANH PHấèN CNG 8
User 1 8
User n User 2 8
1.2.3. Hùồ iùỡu haõnh thỳõi gian thỷồc : 8
1.8.3. Vđ d 3: 17
1.8.4. Ngoâi ra côn cố rêët nhiïìu RTS khấc nhau 17
1.9. Phûúng phấp phên tđch thiïët kïët Hïå thưëng thúâi gian thûåc : 17
1.9.1. Sú lûúåc vïì phûúng phấp thiïët kïë phêìn mïìm: 17
1.9.2. Thiïët kïë ûáng dng thúâi gian thûåc : 18
1.9.3. Mư hònh àưëi tûúång : 19
1.9.4. Sú àưì trẩng thấi (State chart, state diagram): 20
1.9.5. Mẩng Petri vâ àưì thõ Petri (Petri net and Petri graph): 20
SVTH: TRÊÌN DUY HOAÂ
3
nhû lâ mưåt mư hònh xûã l mâ tđnh àng àùỉn ca hïå thưëng khưng chó ph thåc
vâo kïët quẫ tđnh toấn lưgic mâ côn ph thåc vâo thúâi gian mâ kïët quẫ nây phất
sinh ra.
Hïå thưëng thúâi gian thûåc àûúåc thiïët kïë nhùçm cho phếp trẫ lúâi (response) lẩi
cấc ëu tưë kđch thđch phất sinh tûâ cấc thiïët bõ phêìn cûáng trong mưåt râng båc
thúâi gian xấc àõnh. ÚÃ àêy ta cố thïí hiïíu thïë nâo lâ mưåt RTS bùçng cấch hiïíu thïë
nâo lâ mưåt tiïën trònh, mưåt cưng viïåc thúâi gian thûåc. Nhòn chung, trong nhûäng
RTS chó cố mưåt sưë cưng viïåc àûúåc gổi lâ cưng viïåc thúâi gian thûåc, cấc cưng viïåc
nây cố mưåt mûác àưå khêín cêëp riïng phẫi hoân têët, vđ d mưåt tiïën trònh àang cưë
gùỉng àiïìu khiïín hóåt giấm sất mưåt sûå kiïån àang xẫy ra trong thïë giúái thûåc. Búãi
vò mưỵi sûå kiïån xët hiïån trong thïë giúái thûåc nïn tiïën trònh giấm sất sûå kiïån nây
phẫi xûã l theo kõp vúái nhûäng thêy àưíi ca sûå kiïån nây. Sûå thay àưíi ca sûå kiïån
SVTH: TRÊÌN DUY HOÂ
5
trong thïë giúái thûåc xẫy ra rêët nhanh, mưỵi tiïën trònh giấm sất sûå kiïån nây phẫi
thûåc hiïån viïåc xûã l trong mưåt khoẫn thúâi gian râng båc gổi lâ deadline, khoẫn
thúâi gian râng båc nây àûúåc xấc àõnh búãi thúâi gian bùỉt àêìu vâ thúâi gian hoân têët
cưng viïåc. Trong thûåc tïë, cấc ëu tưë kđch thđch xẫy ra trong thúâi gian rêët ngùỉn
vâo khoẫng vâi mili giêy, thúâi gian mâ hïå thưëng trẫ lúâi lẩi ëu tưë kđch thđch àố
tưët nhêët vâo khoẫng dûúái mưåt giêy, thûúâng vâo khoẫng vâi chc mili giêy,
khoẫng thúâi gian nây bao gưìm thúâi gian tiïëp nhêån kđch thđch, xûã l thưng tin vâ
trẫ lúâi lẩi kđch thđch. Mưåt ëu tưë khấc cêìn quan têm trong RTS lâ nhûäng cưng
viïåc thúâi gian thûåc nây cố tìn hoân hay khưng ? Cưng viïåc tìn hoân thò râng
båc thúâi gian êën àõnh theo tûâng chu k xấc àõnh. Cưng viïåc khưng tìn hoân
xẫy ra vúái râng båc thúâi gian vâo lc bùỉt àêìu vâ lc kïët thc cưng viïåc, râng
båc nây chó àûúåc xấc àõnh vâo lc bùỉt àêìu cưng viïåc. Cấc biïën cưë kđch hoẩt
cưng viïåc khưng tìn hoân thûúâng dûåa trïn k thåt xûã l ngùỉt ca hïå thưëng
phêìn cûáng.
Vïì mùåt cêëu tẩo, RTS thûúâng àûúåc cêëu thânh tûâ cấc thânh tưë chđnh sau :
hai loẩi nây, mấy tđnh thûúâng can thiïåp trûåc tiïëp hóåc giấn tiïëp àïën cấc thiïët bõ
vêåt l àïí kiïím soất cng nhû àiïìu khiïín sûå hoẩt àưång ca thiïët bõ nây. Àûáng trïn
gốc àưå nây, ngûúâi ta thûúâng chia cấc RTS ra lâm hai loẩi sau :
(1) Embedded system : Bưå vi xûã l àiïìu khiïín lâ mưåt phêìn trong toân bưå
thiïët bõ, nố àûúåc sẫn xët trổn gối tûâ ëu tưë cûáng àïën ëu tưë mïìm tûâ nhâ mấy,
ngûúâi sûã dng khưng biïët vïì chi tiïët ca nố vâ chó sûã dng thưng qua cấc nt
àiïìu khiïín, cấc bẫng sưë. Vúái hïå thưëng nây, ta sệ khưng thêëy àûúåc nhûäng thiïët bõ
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 nt àiïìu khiïín, cấc bẫng sưë, àên tđn hiïåu hay cấc mân hònh chun dng àùåc
trûng cho tûâng hïå thưëng. Mấy giùåt lâ mưåt vđ d. Ngûúâi sûã dng chó viïåc bêëm nt
chổn chûúng trònh giùåt, xem kïët quẫ qua hïå thưëng àên hiïåu Bưå vi xûã l trong
Embedded system nây àậ àûúåc lêåp trònh trûúác vâ gùỉn chùåt vâo ngay tûâ khi sẫn
xët vâ khưng thïí lêåp trònh lẩi. Nhûäng chûúng trònh nây chẩy àưåc lêåp, khưng cố
sûå giao tiïëp vúái hïå àiïìu hânh (HÀH) cng nhû khưng cho phếp ngûúâi sûã dng
can thiïåp vâo.
(2) Loẩi thûá hai lâ bao gưìm nhûäng hïå thưëng cố sûå can thiïåp ca mấy tđnh
thưng thûúâng. Thưng qua mấy tđnh ta hoân toân cố thïí kiïím soất cng nhû àiïìu
khiïín mổi hoẩt àưång ca thiïët bõ phêìn cûáng ca hïå thưëng nây. Nhûäng chûúng
trònh àiïìu khiïín nây cố rêët nhiïìu loẩi, phc v cho nhiïìu mc àđch khấc nhau vâ
cố thïí àûúåc viïët lẩi cho ph húåp vúái u cêìu thûåc tïë. Hiïín nhiïn thò loẩi hïå thưëng
nây hoẩt àưång àûúåc phẫi cêìn mưåt HÀH àiïìu khiïín mấy tđnh. HÀH nây phẫi cố
khẫ nùng nhêån biïët àûúåc thiïët bõ phêìn cûáng, cố khẫ nùng hoân têët cưng viïåc
trong giúái hẩn thúâi gian nghiïm ngùåt. HÀH nây phẫi lâ HÀH hưí trúå xûã l thúâi
gian thûåc – Realtime operating system (RTOS).
1.2. Hïå àiïìu hânh cho hïå thưëng thúâi gian thûåc :
1.2.1. Sú lûúåc vïì hïå àiïìu hânh :
Cho àïën nay, nhòn chung thò chûa cố mưåt àõnh nghơa nâo lâ hoân hẫo vïì
hïå àiïìu hânh (HÀH). HÀH àûúåc xem nhû mưåt chûúng trònh hoẩt àưång giûäa
ngûúâi sûã dng vâ phêìn cûáng mấy tđnh vúái mc tiïu cung cêëp mưåt mưi trûúâng àïí
thûåc thi cấc chûúng trònh ûáng dng vâ thån lúåi, hiïåu quẫ hún trong viïåc sûã dng
SVTH: TRÊÌN DUY HOÂ
8 CẤC CHÛÚNG TRỊNH ÛÁNG DNG HÏÅ ÀIÏÌU HÂNH PHÊÌN
CÛÁNG
User 1
Hònh 1 : Mư hònh trûâu tûúång ca hïå thưëng mấy tđnh
User n User 2
Mưåt tiïën trònh àûúåc xem nhû lâ mưåt thïí hiïån àang thûåc thi ca mưåt
chûúng trònh. Trïn mưi trûúâng Windows 32 bit, mưåt tiïën trònh súã hûãu 4 GB
khưng gian àõa chó bưå nhúá khưng ph thåc vâo bưå nhúá vêåt l. Têët cẫ cấc DLL
cêìn thiïët àïìu àûúåc map vâo khưng gian àõa chó nây. Khi mưåt tiïën trònh àûúåc tẩo
lêåp, cố mưåt tiïíu trònh chđnh àûúåc tẩo lêåp vâ tiïën trònh kïët thc khi têët cẫ cấc tiïíu
trònh con àïìu kïët thc. Mưåt tiïën trònh cố thïí cố nhiïìu tiïíu trònh con vâ cố thïí tẩo
HÏÅ ÀIÏÌU HÂNH WINDOWS VÂ VÊËN ÀÏÌ THÚÂI GIAN THÛÅC Windows àûúåc thiïët kïë búãi hậng Microsoft, ra àúâi vâo 11/1985, cho àïën
nay àậ trẫi qua nhiïìu phiïn bẫn vâ cẫi tiïën. Windows àûúåc sûã dng rưång rậi nhêët
trïn thïë giúái mấy vi tđnh cấ nhên (PC) vâ àậ àûa Microsoft thânh cưng ty hâng
àêìu thïë giúái trong lơnh vûåc tin hổc. ÚÃ àêy ta quan têm àïën cấc Windows 9x vúái
cấc phiïn bẫn 32 bit.
Lâ HÀH àa nhiïåm (Multitasking) xûã l 32 bđt, chẩy trïn mưi trûúâng mấy
PC, cố hưỵ trúå cho viïåc xûã l thúâi gian thûåc, cố u cêìu cêëu hònh khưng cao, nïëu
cêëu hònh cao thò tưëc àưå xûã l câng nhanh, tûúng thđch cấc HÀH khấc, cố nhiïìu
àùåc àiïím àûúåc mổi ngûúâi ûu chång nhû giao diïån àưì hoẩ thên thiïån, tđnh an
toân, khẫ nùng Plus and Play v.v. Vïì vêën àïì thúâi gian thûåc, HÀH àa nhiïåm
nây àùåt nïìn mống trïn sûå chia xễ thúâi gian. Khấi niïåm tiïën trònh vâ khấi niïåm
tiïíu trònh lâ trung têm nïìn tẫng cho vêën àïì xûã l àiïìu phưëi, àưìng bưå vâ cấc xûã l
liïn quan thúâi gian thûåc khấc. HÀH nây vưën àûúåc viïët phêìn lúán bùçng ngưn ngûä
C/C++ lâ mưåt trong nhûäng ngưn ngûä lêåp trònh (NNLT) cố khẫ nùng hưí trúå xûã
l thúâi gian thûåc (Xem phêìn Ngưn ngûä lêåp trònh RTS). Cung cêëp thû viïån dng
chung API cho phếp giao tiïëp vúái hïå thưëng cng nhû tưí chûác àưìng bưå hoấ tiïën
trònh, tiïíu trònh. Windows 9x khưng hưí trúå can thiïåp trûåc tiïëp vâo hïå thưëng hay
cấc thiïët bõ ngoẩi vi (nhûng vêỵn cho phếp), tuy nhiïn lẩi cung cêëp mưåt mưi
trûúâng giao tiïëp dïỵ dâng.
SVTH: TRÊÌN DUY HOÂ
10
1.3. Ngưn ngûä lêåp trònh cho hïå thưëng thúâi gian thûåc:
1.3.1. Tưíng quan vïì ngưn ngûä lêåp trònh cho hïå thưëng thúâi gian thûåc:
Phêìn lúán cấc ûáng dng thúâi gian thûåc khưng thïí viïët bùçng cấc ngưn ngûä
lêåp trònh (NNLT) truìn thưëng dûúái nhûäng HÀH truìn thưëng búãi vò cấc NNLT
nây khưng hưỵ trúå cấc xûã l cố sûå râng båc khùỉc khe vïì thúâi gian thûåc thi. Cng
Vïì vêën àïì thúâi gian thûåc, NNLT C vưën dng àïí viïët HÀH UNIX – mưåt
HÀH cố khẫ nùng xûã l thúâi gian thûåc tưët nhêët hiïån nay nhû àậ àïì cêåp trïn. C
SVTH: TRÊÌN DUY HOÂ
11
côn àûúåc dng àïí viïët nhiïìu HÀH hiïån àẩi khấc ngây nay. C cố sùèn thû viïån
hâm xûã l thúâi gian chín, mûác àưå chđnh xấc thúâi gian xûã l cố thïí lïn àïën hâng
micro giêy. Bïn cẩnh àố lâ khẫ nùng giao tiïëp trûåc tiïëp vúái thiïët bõ phêìn cûáng,
khi cêìn cố thïí gổi trûåc tiïëp cấc àoẩn mậ viïët bùçng Assembly hay chên trûåc tiïëp
mậ Assembly vâo chûúng trònh viïët bùçng C.
Trïn mưỵi nïìn HÀH khấc nhau nhû Windows, UNIX C côn àûúåc cung
cêëp hïå thưëng cấc hâm hưí trúå xûã l thúâi gian thûåc, hưí trúå àưìng bưå hốa cấc quấ
trònh, râng båc toân vển, àưåc quìn truy xët gip cho C cố khẫ nùng àiïìu
khiïín àïën tûâng tiïën trònh, tûâng tiïíu trònh àang thûåc thi.
NNLT C cố thû viïån hâm xûã l thúâi gian thûåc riïng vâ thû viïån cấc hâm
àiïìu phưëi vâ àưìng bưå cấc tiïën trònh àûúåc hưí trúå tûâ HÀH Windows (Chi tiïët cấc
hâm nây úã phêìn ph lc).
Trong xu hûúáng ngây nay, cưng nghïå hûúáng àưëi tûúång cng rêët àûúåc quan
têm trong lơnh vûåc RTS, cố nhiïìu NNLT hûúáng àưëi tûúång hưí trúå xêy dûång RTS
ra àúâi nhû C++, Java Tuy nhiïn nhûäng NNLT nây lẩi vi phẩm vïì phûúng phấp
lån ca RTS nhû cố quấ nhiïìu thao tấc ph lâm mêët thúâi gian xûã l. Trong thûåc
tïë, àậ cố mưåt sưë àïì ấn vïì RTS xêy dûång dûåa trïn khưng gian àưëi tûúång (cẫ vïì
thiïët kïë vâ câi àùåt) phẫi ngûng giûäa chûâng hóåt phẫi chuín hûúáng vò khưng àấp
ûáng àûúåc cấc râng båc thúâi gian mâ ngun nhên sêu xa lâ bùỉt ngìn tûâ NNLT
cố qua nhiïìu thao tấc ph nối trïn vâ viïåc bao bổc dûä liïåu theo phûúng phấp
hûúáng àưëi tûúång lâm mêët thúâi gian truy xët.
1.4. Quan niïåm thúâi gian trong hïå thưëng thúâi gian thûåc:
1.4.1. Àưìng hưì hïå thưëng:
Thúâi gian hïå thưëng àûúåc bấo bùçng mưåt àưìng hưì gổi lâ àưìng hưì hïå thưëng.
Trong mưi trûúâng cố nhiïìu vi xûã l cố thïí tưìn tẩi nhiïìu àưìng hưì, thò nhûäng àưìng
(2).
1.4.4. Râng båc vïì thúâi gian:
Vúái mưỵi ëu tưë kđch thđch, hïå thưëng tiïëp nhêån vâo mưåt thúâi àiïím t0, hïå
thưëng tiïën hânh cêëp phất tâi ngun, thûåc hiïån cấc xûã l tđnh toấn vâ hoân têët
viïåc trẫ lúâi vâo thúâi àiïím tk khấc sau àố.
Mưåt râng båc tưëi thiïíu cố thïí àûúåc àõnh nghơa qua bưå ba sau:
(ID, Tbegin(condition1), Tend(condition2))
Trong àố: ID : Chó sưë ca tiïën trònh
Tbegin(condition1) : Thúâi gian bùỉt àêìu tiïën trònh
Tend(condition2) : Thúâi gian tiïën trònh hoân têët xûã l
Ph thåc vâo hïå thưëng vâ thúâi gian xấc àõnh àûúåc tâi ngun cêìn cêëp
phất, cng nhû quấ trònh giẫi phống tâi ngun sau khi tiïën trònh sûã dng… Mưåt
râng båc khùỉc khe hún cố thïí xấc àõnh nhû sau:
(ID, Tbegin(condition1), CID, FID, Tend(condition2)) dC(t) dt ti
Trong àố: ID : Chó sưë ca tiïën trònh
Tbegin(condition1) : Thúâi gian bùỉt àêìu tiïën trònh
Tend(condition2) : Thúâi gian tiïën trònh hoân têët xûã l
CID : Thúâi gian ûúác tđnh ca tiïën trònh (sưë mêỵu thúâi gian)
FID : Têìn sưë mêỵu thúâi gian
Mưỵi chó thõ cú súã (Assembly) cố mưåt thúâi gian thûåc thi cưë àõnh ph thåc
vâo phêìn cûáng, vđ d :
SVTH: TRÊÌN DUY HOÂ
13
Chó thõ Thúâi gian thûåc thi (clock)
MOV reg8, reg8 2 JMP 15 IRET 24 IN 10 OUT 10
Nhû vêåy, mưỵi tiïíu trònh thûåc hiïån mưåt cưng viïåc àûúåc viïët bùçng mưåt nhốm
cấc chó thõ (hâm) sệ cố thúâi gian thûåc hiïån lâ cưë àõnh, thïm vâo àố côn cố thúâi
gian dng àïí khúãi tẩo tiïíu trònh, kïët thc tiïíu trònh dêỵn àïën thúâi gian thûåc hiïån
cưng viïåc àố sệ lúán hún thúâi gian thûåc th thûåc hiïån tiïíu trònh. Cêu hỗi àùåt ra lâ
SVTH: TRÊÌN DUY HOÂ
14
àa (throughtput). Tuy vêåy, bẫn thên cấc mc tiïu nây àậ cố sûå mêu thín nïn
khưng thïí thoẫ mận têët cẫ cấc mc tiïu, chiïën lûúåc c thïí ph thåc vâo tûâng hïå
thưëng.
Trong mưi trûúâng àa nhiïåm, àïí trấnh viïåc mưåt tiïën trònh àưåc chiïëm CPU
quấ lêu lâm ngùn cẫn cưng viïåc ca cấc tiïën trònh khấc. Sûã dng mưåt àưìng hưì hïå
thưëng àïí tưí chûác phên phưëi thúâi gian thûåc thi ca mưỵi tiïën trònh. Cú chïë àiïìu
phưëi cố thïí lâ àưåc quìn hóåt khưng àưåc quìn. Àiïìu phưëi cố thïí lâ àiïìu phưëi
tấc v hóåt àiïìu phưëi tiïën trònh. Mưåt tiïën trònh àûúåc phên phưëi CPU dûåa trïn cấc
àưå ûu tiïn khấc nhau, àưå ûu tiïn nây cố thïí lâ tónh hóåt àưång. Cố nhiïìu chiïën
lûúåc àiïìu phưëi khấc nhau nhû chiïën lûúåc FIFO, Round Robin, Sûã dng àưå ûu
tiïn, cưng viïåc ngùỉn nhêët
Àiïìu phưëi tiïën trònh cho khẫ nùng hoân thânh tưët nhốm cấc cưng viïåc
trong khoẫng thúâi gian râng båc. Lẩi dêỵn àïën vêën àïì tranh chêëp tâi ngun
dng chung, cêìn phẫi cố mưåt cú chïë phưëi húåp, àưìng bưå hoấ viïåc àưåc quìn truy
xët. Vêën àïì Àưìng Bưå Hoấ sệ àûúåc xem xết dûúái àêy.
1.6. Vêën àïì àưìng bưå hoấ:
1.6.1. Cú chïë àưìng bưå hoấ:
0 10 15 20 30 45 50 55 (10ms) (5ms) (10ms) (5ms) (5ms)
Hònh 3 : Mư hònh àiïìu phưëi tiïën trònh cẫi tiïën (Round Robin, quantum = 5 ms)
Cưng viïåc
Thúâi gian 1
2
3
4
5
(5ms) (15ms)
Trong cấc HÀH hiïån àẩi nối chung vâ trong cấc RTS nối riïng thò viïåc
- Biïën cưë tûå àưång : Àưëi tûúång sệ giûä trẩng thấi TRUE cho àïën khi cố mưåt
tiïíu trònh àang chúâ àúåi àûúåc giẫi phống, hïå thưëng sệ àùåt lẩi trẩng thấi FALSE
cho àưëi tûúång.
1.7. Mưåt sưë u cêìu ca hïå thưëng thúâi gian thûåc :
Cấc RTS cố mưåt sưë àùåc biïåt àùåc trûng cho loẩi hïå thưëng nây, tuy nhiïn
khưng phẫi têët cẫ cấc RTS àïìu quan têm àïën cấc àùåc àiïím nây. Thûúâng thò
NNLT vâ HÀH cho RTS àậ rêët nhiïìu cho mưåt sưë àùåc àiïím hóåt tẩo mưi trûúâng
thån lúåi cho viïåc thûåc hiïån cấc àùåc àiïím.
1.7.1. Hïå thưëng lúán vâ phûác tẩp:
Àêy lâ vêën àïì chung cho cẫ lơnh vûåc phêìn mïìm, ëu tưë phûác tẩp vâ têìm cúã
ca hïå thưëng thûúâng tó lïå thån vúái nhau. Àùåc biïåt khi mâ RTS phẫi phên chia
thúâi gian húåp l, sûã dng nhiïìu thåt toấn phûác tẩp, phẫi thûåc hiïån lêåp lõch, àưìng
bưå nïn àưå phûác tẩp lâ rêët lúán, cẫ tûâ cấc giai àoẩn àùåt vêën àïì, phên tđch, thiïët kïë,
tiïën hânh, kiïìm tra, bẫo trò ÚÃ àêy sệ cố mưåt nghõch l, àấp ûáng thúâi gian thûåc
u cêìu giẫi quët vêën àïì nhanh gổn vâ chđnh xấc, mậ thûåc thi chûúng trònh nhỗ
gổn.
1.7.2. Xûã l trïn sưë thûåc:
SVTH: TRÊÌN DUY HOÂ
16
RTS ln lâm viïåc trïn cấc thưng sưë trẩng thấi thûåc ca thiïët bõ vêåt l.
Viïåc tđnh toấn trïn sưë thûåc tưën rêët nhiïìu thúâi gian xûã l. Ngây nay, tưëc àưå xûã l
ca mấy tđnh àậ rêët nhanh, viïåc xûã l sưë thûåc àûúåc hưí trúå ngay tûâ phêìn cûáng,
HÀH vâ NNLT nhûng sûã dng mưåt phûúng phấp tđnh toấn ph húåp, đt tưën thúâi
gian nhêët vêỵn lâ mưåt u cêìu thûåc tïë.
1.7.3. Thûåc sûå an toân vâ àấng tin cêåy:
Nhûäng hêåu quẫ do sûå thiïëu an toân ca nhûäng hïå thưëng thưng tin nối
chung vâ RTS nối riïng cố thïí lïn àïën hâng tó àưla, thêåm chđ gêy thiïåt hẩi vïì
tđnh mẩng ca nhiïìu ngûúâi. Viïåc thiïët lêåp mưåt RTS cố àưå tin cêåy cao vâ an toân
lâ mưåt u cêìu hâng àêìu, phẫi cố cấch lûúâng trûúác àûúåc nhûäng lưỵi cố thïí xậy ra
nhû trong quẫn l ngên hâng, chûáng khoấn ngûúâi ta cêìn biïët sûå biïën àưång vïì
giấ cẫ trong tûâng pht, tûâng giêy cng nhû cêåp nhêåt thưng tin kõp thúâi. Hiïín
nhiïn thò ëu tưë thúâi gian thûåc trong trûúâng húåp nây lâ tûúng àưëi, râng båc vïì
giúái hẩn thúâi gian trẫ lúâi rưång rẫi hún cấc ûáng dng thúâi gian thûåc khấc.
1.8.3. Vđ d 3:
Hïå thưëng mấy tđnh trúå gip bấc sơ thûåc hiïån ca giậi phêỵu lâ mưåt vđ d
khấc. Mấy tđnh sệ nhêån cấc hònh ẫnh tûâ cấc camera, phên tđch cấc hònh ẫnh vâ cố
nhûäng chơ thõ, nhêån àõnh, phấn àoấn gip sơ quët àõnh thûåc hiïån nhû thïë nâo.
1.8.4. Ngoâi ra côn cố rêët nhiïìu RTS khấc nhau
Cấc RTS nây àûúåc ûáng dng trong nhiïìu lơnh vûåc khấc nhau nhû trong
qn sûå, truìn thưng, y tïë, cấc dêy chuìn sẫn sët trong cấc nhâ mấy, cấc thiïët
bõ dên dng dng trong gia àònh
1.9. Phûúng phấp phên tđch thiïët kïët Hïå thưëng thúâi gian thûåc :
1.9.1. Sú lûúåc vïì phûúng phấp thiïët kïë phêìn mïìm:
Quấ trònh xêy dûång mưåt phêìn mïìm trậi qua nhiïìu giai àoẩn liïn tiïëp nhau,
trong quấ trònh thûåc hiïån cố thïí quay lẩi nhûäng giai àoẩn trûúác àố. Viïåc phên
chia thânh cấc giai àoẩn nây lâm cho quấ trònh xêy dûång rỗ râng hún, cấc giai
àoẩn cố thïí thûåc hiïån àưåc lêåp búãi àưåi ng lâm viïåc. Cố thïí phên thânh cấc giai
àoẩn sau:
- Xấc àõnh vêën àïì bâi toấn.
- Phên tđch hïå thưëng.
- Thiïët kïë dûä liïåu vâ chûúng trònh.
- Câi àùåt.
- Kiïím tra vâ cẫi tiïën.
- Nghiïåm thu.
- Khai thấc vâ bẫo trò.
Trong cấc giai àoẩn trïn thò giai àoẩn thiïët kïë lâ rêët quan trổng. Chêët
lûúång ca phêìn mïìm ph thåc rêët nhiïìu vâo bẫn thiïët kïë. Mưåt bẫn thiïët kïë tưët
côn gip cho viïåc thûåc hiïån cấc giai àoẩn khấc dïí dâng hún, gip cho nhûäng
ngûúâi thûåc hiïån hoân thânh chđnh xấc hún cưng viïåc ca mònh. Cấc chiïën lûúåc
Kiïím tra
Nghiïåm thu
Khai thấc & bẫo trò
Hònh 4 : Mư hònh thấc nûúác cấc giai àoẩn xêy dûång phêìn mïìm
Trong quấ trònh thiïët kïë cêìn cố sûå mïìm dễo, khưng ài quấ sau vâo chi tiïët
àùåt biïåt lâ cấc chi tiïët vïì k thåt, phêìn cûáng. Sûå phên àõnh giûäa phêìn cûáng vâ
phêìn mïìm câng trò hoận trong giai àoẩn thiïët kïë câng tưët.
Song song vúái cấc giai àoẩn lâ viïåc tưí chûác tâi liïåu k thåt ca giai àoẩn
àố.
Viïåc lâm nây cêìn thiïët cho cấc giai àoẩn khấc trong toân bưå quấ trònh.
Trong quấ trònh xêy dûång mưåt ûáng dng thúâi gian thûåc thò cấc giai àoẩn phên
tđch vâ thiïët kïë cố tđnh chêët quan trổng àùåt biïåt, giai àoẩn nây bao gưìm cẫ viïåc
xấc àõnh cấc râng båc vïì thúâi gian. Giai àoẩn nây cêìn phẫi:
- Xấc àõnh cấc nhên bïn ngoâi ẫnh hûúãng àïën hïå thưëng.
- Xấc àõnh cấch trẫ lúâi ca hïå thưëng cho cấc tấc nhên àố.
- Xấc àõnh cấc râng båc thúâi gian ûáng dng phẫi àấp ûáng.
Theo DART – Design Approach for Realtime System (àûúåc phất triïín búãi
SVTH: TRÊÌN DUY HOÂ
19
General Electric), trong RTS thò khưng phẫi cưng viïåc nâo cng àôi hỗi thúâi
gian thûåc, mưíi cưng viïåc tûúng ûáng vúái nhûäng chûác nùng c thïí, àûúåc phên
thânh cấc nhốm sau :
- Ph thåc nhêåp xët (I/O dependency): Thûúâng thò tưëc àưå thûåc hiïån trïn
cấc thiïët bõ chêåm hún rêët nhiïìu so vúái tưëc àưå xûã l ca CPU, nhûäng cưng viïåc
liïn quan àïën nhêåp xët trïn cấc thiïët bõ nây thûúâng àûúåc phên vâo mưåt nhốm.
- Râng båc thúâi gian (Time-critical): Nhốm cưng viïåc cố râng båc thúâi gian
thûåc thi, u cêìu quìn ûu tiïn cao àûúåc phên vâo mưåt nhốm.
- Thûåc thi theo àõnh k (Periodic execution): Nhốm cưng viïåc u cêìu thûåc hiïån
theo mưåt chu k chó àõnh.
Tuy vêåy trong lơnh vûåc RTS nây, u cêìu cao nhêët vâ nhiïìu nhêët lâ u cêìu xûã
l, râng båc vïì thúâi gian, vêën àïì àưìng bưå, àiïìu phưëi. Dûä liïåu cho quấ trònh xûã
l lâ cêìn thiïët nhûng khưng phẫi lâ trung têm. Sûå phên lúáp àưëi tûúång sệ gùåp
nhiïìu khố khùn thêåm chđ nïëu cưë gùỉng àưi khi lẩi àem àïën kïët quẫ sai lïåch vúái
mc àđch ca hïå thưëng.
Do vêåy thûúâng trong lơnh vûåc nây ngûúâi ta chó sûã dng mư hònh àưëi tûúång
nhû mưåt mư hònh tưíng quất ca hïå thưëng. Khi ài vâo thiïët kïë chi tiïët xûã l sệ sûã
dng nhûäng phûúng phấp àùåc biïåt, àùåc trûng cho lơnh vûåc nây. Trong lån vùn
nây, sệ trònh bây hai phûúng phấp thiïët kïë cho àùåc trûúng nây vâ dng nố cho
phêìn thiïët kïë ûáng dng c thïí. Hai phûúng phấp àố lâ Sú àưì trẩng thấi – mưåt
phûúng phấp thûúâng gùåp vâ Phng phấp Mẩng Petri – Àưì thõ Petri (Petri net vâ
Petri graph).
1.9.4. Sú àưì trẩng thấi (State chart, state diagram):
Mưåt cưng c tûúng àưëi mẩnh mệ trong lơnh vûåc thiïët kïë RTS lâ dng sú
àưì trẩng thấi. Sú àưì trẩng thấi mư tẫ cấc trẩng thấi cng nhû quấ trònh biïën àưíi
giûäa cấc trẩng thấi àố trong mưåt hïå thưëng cng vúái cấc sûå kiïån àûúåc kđch hoẩt,
cấc àiïìu kiïån râng båc.
Cấc trẩng thấi àûúåc mư tẫ bùçng cấc hònh chûä nhêåt, quấ trònh biïën àưíi tûâ
trẩng thấi nây sang trẩng thấi khấc mư tẫ bùçng cấc mi tïn, cấc sûå kiïån, râng
båc lâ cấc nhận kêm theo cấc mi tïn X[C]ZZYYABC
Hònh 5: Vđ d mưå sú àưì trẩng thấi
Sú àưì trẩng thấi cho phếp nhòn hïå thưëng dûúái nhûäng mûác àưå chi tiïët khấc
nhau. Sú àưì trẩng thấi cố thïí àûúåc phên rậ xëng mûác trẩng thấi thêëp hún hóåt
lâ liïn kïët vúái mûác trẩng thấi cao hún, sûå kïët húåp nây cho phếp nhòn thêëy giao
tiïëp giûäa cấc lúáp trẩng thấi khấc nhau trong hïå thưëng.
1.9.5. Mẩng Petri vâ àưì thõ Petri (Petri net and Petri graph):
Mẩng Petri vâ àưì thõ Petri lâ mưåt cưng c rêët mẩnh mệ vâ thûúâng àûúåc
dng trong viïåc thiïët kïë nhûäng hïå thưëng cố sûå râng båc vïì thúâi gian. Nhûäng
RTS vïì bẫn chêët, phûác tẩp úã chưí phẫi thûúâng xun giấm sất chùåt chệ toân bưå
cấc tấc àưång qua lẩi giûäa cấc tiïën trònh, cấc cưng viïåc thúâi gian thûåc cng nhû
quẫ c thïí mâ dûåa trïn àố sệ cố mưåt sûå àấnh giấ chđnh xấc hïå thưëng cng nhû
tûâng thânh phêìn ca hïå thưëng.
Mẩng Petri cố thïí àûúåc biïíu diïỵn bùçng àưì thõ Petri (Petri graph), vúái hai
loẩi node: trẩng thấi vâ chuín àưíi. Cung nưëi trûåc tiïëp chó liïn kïët giûäa hai node
khấc loẩi (trẩng thấi - chuín àưíi hóåt chuín àưíi - trẩng thấi, trûúâng húåp àùåc
biïåt cố thïí lâ cng loẩi).
C = (P, T, I, O)
P = |p1, p2, p3, p4, p5 |
T = |t1, t2|
p1 p2 p3 p4 p5
I = 1 1 2 0 0 t1
0 0 0 0 1 t2
p1 p2 p3 p4 p5
O = 0 0 0 1 2 t1
0 0 1 0 0 t2
Vđ d mưåt mẩng Petri
2
SVTH: TRÊÌN DUY HOÂ
22
2
p1 P2
p3
p4 p5
t1
t2
Hònh 8: Àưì thõ Petri liïn kïët vúái mẩng Petri vđ d trïn
Vúái àõnh nghơa trïn thò mẩng Petri chó trònh bây àûúåc nhûäng ëu tưë tơnh
trong hïå thưëng. Nhû vêåy sệ khưng mư hònh hoấ àûúåc nhûäng tấc nhên mang tđnh
àưång. Mẩng Petri àấnh dêëu (Marked Petri Net) àûúåc sûã dng àïí mư hònh sûå biïën
hònh vâ sûå kiïån, kïët quẫ tûúng ûáng vúái chuín àưíi.
Hònh 12: Mư tẫ mẩng Petri ca mưåt quấ trònh chia sệ CPU cho cấc tiïën trònh Khi
CPU rẫnh rưỵi (idle) - p2 àûúåc àấnh dêëu. Ngay khi cố mưåt tiïën trònh vâo chúâ trïn
hâng àúåi CPU - p1 àûúåc àấnh dêëu, tiïën trònh àố àûúåc thûåc hiïån - t1. Kïët thc t1
– p3 àûúåc àấnh dêëu. t2 thûåc hiïån. Kïët thc t2 – p4 àûúåc àấnh dêëu, CPU àûúåc
giẫi phống – p2 àûúåc àấnh dêëu. Quấ trònh àûúåc lùåp lẩi khi cố mưåt tiïën trònh vâo
hâng àúåi CPU.
Hònh 10: Mưåt àưì thõ Petri hònh 8 sau khi chuín àưíi t1túái hẩn
2
2
p1 P2
p3
p4 p5
t1
t2
Hònh 11: Mưåt àưì thõ Petri hònh 8 sau khi kïët thc têët cẫ cấc chuín àưíi (t1vâ t2)
2
2
p1 p2
p3
p4 p5
t1
t2
Thiïët kïë dng mẩng Petri cố thïí sûã dng cấc chiïën lûúåc tiïëp cêån theo
hûúáng bottom-up hay top-down. Hònh 14, 15 vâ 16 lâ mưåt vđ d sûã dng hûúáng
tiïëp cêån top-down.
P1
t1
P2
t2
P6 P7
P2
P1
t1
Hònh 16: Kïët húåp sú àưì thiïët kïë chi tiïët vâo sú àưì thiïët kïë tưíng quan theo hûúáng
tiïëp cêån top-down
t6
t4
t5
t7
P4 P5
P6 P7
Hònh 15 : Mưåt khưëi chi tiïët trong sú àưì thiïët kïë tiïëp cêån theo hûúáng top-down
s1
s2