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
Hẽ IẽèU HANH WINDOWS VA VấậN ẽè THI GIAN THC 9
1.3. Ngửn ngỷọ lờồp trũnh cho hùồ thửởng thỳõi gian thỷồc: 10
1.3.1. Tửớng quan vùỡ ngửn ngỷọ lờồp trũnh cho hùồ thửởng thỳõi gian thỷồc: 10
1.3.2. Sỳ lỷỳồc vùỡ ngửn ngỷọ lờồp trũnh C: 10
1.4. Quan niùồm thỳõi gian trong hùồ thửởng thỳõi gian thỷồc: 11
1.4.1. ửỡng hửỡ hùồ thửởng: 11
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
SVTH: TRÊÌN DUY HOÂ
4
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 :
- Àưìng hưì thúâi gian thûåc : Cung cêëp thưng tin thúâi gian thûåc.
- Bưå àiïìu khiïín ngùỉt : Quẫn l cấc biïën cưë khưng theo chu k.
- Bưå àõnh biïíu : Quẫn l cấc qua trònh thûåc hiïån.
- Bưå quẫn l tâi ngun : Cung cêëp cấc tâi ngun mấy tđnh.
- Bưå àiïìu khiïín thûåc hiïån : Khúãi àưång cấc tiïën trònh.
Cấc thânh tưë trïn cố thïí àûúåc phên àõnh lâ thânh phêìn cûáng hay mïìm ty
thåc vâo hïå thưëng vâ nghơa sûã dng. Thưng thûúâng, cấc RTS àûúåc kïët húåp
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
mấy tđnh.
SVTH: TRÊÌN DUY HOÂ
7
Cho àïën ngây nay, HÀH àậ phất triïín vúái nhiïìu loẩi khấc nhau nhû :
HÀH quẫn l theo lư àún giẫn, quẫn l theo lư àa chûúng (Multiprogram), chia
xễ thúâi gian (Multitasking), xûã l song song, mẩng vâ phên tấn 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
lêåp cấc tiïën trònh khấc.
Tiïíu trònh lâ mưåt thânh phêìn xûã l cú bẫn ca tiïën trònh, tiïíu trònh súã hûäu
mưåt con trỗ lïånh riïng, tẩp cấc thanh ghi riïng, stack riïng vâ têët cẫ nùçm trong
khưng gian àõa chó ca tiïën trònh súã hûäu. Nhû vêåy, cấc tiïíu trònh trong mưåt tiïën
trònh cố thïí chia sễ cấc tâi ngun vúái nhau. Têët cẫ cấc cưng viïåc àiïìu phưëi tiïën
trònh àïìu nhùỉm vâo hoẩt àưång ca tiïíu trònh.
Cấc tiïíu trònh, tiïën trònh phẫi liïn lẩc vúái nhau àïí cố mưåt cú chïë àiïìu phưë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
cố mưåt sưë NNLT loẩi nây cố phêìn múã rưång hưí trúå cho phếp viïët chûúng trònh xûã
l thúâi gian thûåc bùçng cấch can thiïåp trûåc tiïëp vâo phêìn cûáng mâ khưng thưng
qua NNLT àang chẩy.
Mưåt sưë RTS àûúåc viïët tûâ ngưn ngûä kinh àiïín nhû C nïëu àûúåc cung cêëp
thïm thû viïån cấc hâm hưí trúå xûã l thúâi gian thûåc, ëu tưë thúâi gian thûåc lc nây
lâ sûå chia xễ giûäa NNLT vâ RTOS àang chẩy.
Ngây nay cố nhiïìu NNLT hưí trúå viïët chûúng trònh xûã l thúâi gian thûåc, vđ
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
hưì nây phẫi àûúåc àưìng bưå vúái nhau.
Cố thïí biïíu diïỵn mûác àưå chđnh xấc ca àưìng hưì hïå thưëng qua hâm sưë sau:
C(t) = t, •t.
Àưìng hưì àûúåc gổi lâ chđnh xấc vâo thúâi àiïím ti nïëu :
C(ti) = ti
1.4.2. Cấc loẩi àưìng hưì hïå thưëng:
Àún giẫn nhêët lâ hïå thưëng chó cố mưåt àưìng hưì (sever clock), u cêìu àưå
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â
lâm thïë nâo nhûäng cưng viïåc cố thïí thûåc thi mưåt cấch hoân chónh trong thúâi gian
bõ hẩn chïë. Cêu trẫ lúâi àố lâ cú chïë Àiïìu Phưëi Quấ Trònh àûúåc xem xết úã phêìn
tiïëp theo.
1.5. Vêën àïì àiïìu phưëi cưng viïåc :
Àïí thêëy àûúåc tđnh nùng ca viïåc àiïìu phưëi, ta xem xết vđ d sau : Giẫ sûã
cố mưåt u cêìu tấc v gưìm cấc cưng viïåc sau :
1) Àổc àơa cûáng lêëy dûä liïåu, thúâi gian thûåc hiïån hïët 30 ms.
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
àưìng bưå hoấ viïåc thûåc thi cấc tiïën trònh, tiïíu trònh lâ rêët quan trổng, phûác tẩp vâ
nhiïìu àiïìu th võ. Mc tiïu chđnh ca viïåc àưìng bưå lâ trấnh sûå tranh chêëp tâi
ngun, mưi trûúâng ca cấc tiïën trònh àang thûåc thi, u cêìu phưëi húåp giûäa cấc
cưng viïåc. Tưìn tã rêët nhiïìu cú chïë cng nhû thåt toấn àưìng bưå, úã àêy ta xem
xết mưåt sưë cú chïë àưìng bưå mang tđnh cú bẫn nhû : Giẫi phấp “busy waiting”
ln phiïn kiïím tra, cấc cú chïë àûúåc hưí trúå tûâ phêìn cûáng, giẫ phấp “SLEEP and
WAKEUP” .
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
vâ cấc biïån phấp khùỉc phc.
1.7.4. Giao tiïëp trûåc tiïëp vúái thiïët bõ phêìn cûáng:
Cấc thiïët bõ vêåt l giao tiïëp trûåc tiïëp thûúâng lâ cấc bưå cẫm biïën, cấc loẩi
àưìng hưì trẩng thấi, nhiïåt kïë, cấc thiïët bõ àiïån àiïån tûã, bấn dêín… Cấc thiïët bõ nây
cố khẫ nùng phất phất sinh hóåt tiïëp nhêån cấc tđn hiïåu, phất sinh cấc ngùỉt àûúåc
nhêån biïët búãi mấy tđnh. Thưng qua cấc tđn hiïåu, cấc ngùỉt àố mâ mấy tđnh cố thïí
kiïím soất cấc trẩng thấi hóåt àiïìu khiïín sûå hoẩt àưång ca thiïët bõ.
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
phên tđch thiïët kïë thûúâng àûúåc sûã dng nhû :
(1) Chiïën lûúåc tûâ trïn xëng (Bottom-Up design) : Chiïën lûúåc nây àûúåc
tiïëp cêån theo hûúáng xem xết bâi toấn tûâ cấc khđa cẩnh chi tiïët vâ sau àố múái tưíng
quất lïn.
(2) Chiïën lûúåc tûâ dûúái lïn (Top-Down design):Ngûúåc vúái Bottom-Up lâ
Top-Down, tiïëp cêån theo hûúáng tûâng bûúác tûâ tưíng quất dêìn àïën chi tiïët bâi toấn,
ban àêìu bâi toấn àûúåc nhòn dûúái dẩng tưíng quan vâ dêìn ài sau vâo tûâng chi tiïë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.
- u cêìu tđnh toấn (Computational requirements): Nhûäng cưng viïåc cố nhu cêìu
tđnh toấn cao àûúåc phên thânh mưåt nhốm.
Àïí thiïët kïë àûúåc nhûäng hïå thưëng phûác tẩp nối chung vâ RTS nối riïng thò
phẫi cố nhûäng phûúng phấp lån rỗ râng, nhûäng cưng c c thïí phẫn ấnh àûúåc
bẫn chêët ca vêën àïì nhûng khưng quấ rûúâm râ phûác tẩp. Phêìn dûúái àêy lâ phêìn
trònh bây nhûäng phûúng phấp lån, nhûäng cưng c thûúâng dng trong thiïët kïë
cấc RTS, nhû mư hònh àưëi tûúång, mẩng Petri
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û
phi thúâi gian thûåc, giấm soất toân bưå cấc xung àưåt cng nhû diïỵn biïën ca cấc
quấ trònh nưåi tẩi theo thúâi gian thûåc. ÚÃ mûác àưå quan niïåm, mẩng Petri (Petri net)
lâ mưåt cưng c rêët mẩnh trong viïåc thiïët kïë nhûäng RTS, nố cho phếp trònh bây
toân bưå cấc tấc àưång qua lẩi giûäa cấc tiïën trònh cng nhû diïỵn tiïën ca cấc tiïën
trònh trong hïå thưëng theo thúâi gian.
Mẩng Petri lâ mưåt bưå bưën (quadruple) C = (P, T, I, O) bao gưìm: N trẩng
thấi (places) pi ??P, L chuín àưíi (transition) ti ??T, hai ma trêån I vâ O kđch
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
àưíi theo thúâi gian ca hïå thưëng. Trong àố cấc trẩng thấi sệ àûúåc àấnh dêëu bùçng
nhûäng àiïím trong àưì thõ gổi lâ thễ àấnh dêëu (marking tokens).
Thễ àấnh dêëu lâ mưåt vector N chiïìu xấc àõnh sưë thễ mưỵi trẩng thấi . Hïå
thưëng trúã thânh hïå thưëng àưång khi cấc thễ lêìn lûúåc duåt qua cấc node trïn
mẩng. Quấ trònh di chuín cấc thễ xun qua cấc chuín àưíi túái hẩn. Mưåt biïën
àưíi àûúåc gổi lâ túái hẩn chó khi têët cẫ cấc trẩng thấi àûáng trûúác nố àûúåc àấnh dêëu,
cấc chuín àưíi nây côn àûúåc gổi lâ chuín àưíi cho phếp. Chó cố duy nhêët mưåt
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
P3
t3
Hònh 14: Nhòn tưíng quan mưåt sú àưì thiïët kïë tiïëp cêån theo hûúáng top-down
Tìn tûå F T
Rệ nhấnh
SVTH: TRÊÌN DUY HOÂ
24
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
SVTH: TRÊÌN DUY HOÂ
25
s3 F s3 T
s4 s5
s6 T s6 F
s7
Hònh 17: Vđ d mưåt mẩng Petri.
Hònh 19 mư tẫ mư hònh àưåc quìn truy xët tâi ngun dng chung giûäa hai tiïën
trònh trïn miïìn gùng sûã dng cú chïë semaphore:
+ Giậ sûã cố hai tiïën trònh cng sûä dng tâi ngun S theo hai àûúâng T1 =
(t1, t3) vâ T2 = (t2, t4).
+ Tẩi mưåt thúâi àiïím chó cố mưåt tiïën trònh túái hẩn (trong khi T1 vâ T2 cng
àûúåc phếp), ngêỵu nhiïn giẫ sûã T1 àûúåc vâo miïìn gùng trûúác.
+ Khi T1 vâo miïìn gùng thò miïìn gùng àûúåc àấnh dêëu, S khưng àûúåc
àấnh dêëu dêỵn àïën t2 khưng àûúåc phếp, T2 khưng thïí vâo miïìn gùng, lc nây
trong miïìn gùng chó cố T1.
+ T1 rúâi miïìn gùng bùçng cấch kïët thc t3, miïìn gùng khưng àûúåc àấnh
dêëu, S àûúåc àấnh dêëu, t2 àûúåc phếp vâ túái hẩn, T2 tiïëp tc vâo miïìn gùng tûúng
tûå T1 vâ ra khỗi miïìn gùng khi kïët thc t4.
s1
s2