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.4.2. Caỏc loaồi ửỡng hửỡ hùồ thửởng: 11
1.4.3. Quan niùồm vùỡ sỷồ rỳõi raồc thỳõi gian: 12
1.4.4. Raõng buửồc vùỡ thỳõi gian: 12
1.5. Vờởn ùỡ iùỡu phửởi cửng viùồc : 13
1.6. Vờởn ùỡ ửỡng bửồ hoaỏ: 14
1.6.1. Cỳ chùở ửỡng bửồ hoaỏ: 14
1.6.2 Phỷỳng phaỏp ửỡng bửồ trùn mửi trỷỳõng Windows: 14
1.7. Mửồt sửở yùu cờỡu cuóa hùồ thửởng thỳõi gian thỷồc : 15
1.7.1. Hùồ thửởng lỳỏn vaõ phỷỏc taồp: 15
SVTH: TRÊÌN DUY HOÂ
2
1.7.2. Xûã l trïn sưë thûåc: 15
1.7.3. Thûåc sûå an toân vâ àấng tin cêåy: 16
1.7.4. Giao tiïëp trûåc tiïëp vúái thiïët bõ phêìn cûáng: 16
1.7.5. Thûåc hiïån trïn mưi trûúâng vâ ngưn ngûä lêåp trònh hiïåu quẫ: 16
1.7.6. Ngûúâi sûã dng àiïìu khiïín : 16
1.8. Vâi vđ d vïì Hïå thưëng thúâi gian thûåc : 16
1.8.1. Vđ d 1: 16
1.8.2. Vđ d 2: 16
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
SVTH: TRÊÌN DUY HOÂ
4
Chûúng I
HÏÅ THƯËNG THÚÂI GIAN THÛÅC
1.1. Hïå thưëng thúâi gian thûåc:
1.1.1. Giúái thiïåu vïì hïå thưëng thúâi gian thûåc :
Trong nhûäng nùm gêìn àêy, cấc hïå thưëng àiïìu khiïín theo thúâi gian thûåc lâ
mưåt trong nhûäng lơnh vûåc thu ht nhiïìu sûå ch trong giúái khoa hổc nghiïn cûáu
vïì khoa hổc mấy tđnh. Trong àố, vêën àïì àiïìu hânh thúâi gian thûåc vâ vêën àïì lêåp
lõch lâ àùåc biïåt quan trổng. Mưåt sưë ûáng dng quan trổng ca hïå thưëng thúâi gian
thûåc (RTS) àậ vâ àang àûúåc ûáng dng rưång rậi hiïån nay lâ cấc dêy chuìn sẫn
xët tûå àưång, rưbưët, àiïìu khiïín khưng lûu, àiïìu khiïín cấc thđ nghiïåm tûå àưång,
truìn thưng, àiïìu khiïín trong qn sûå Thïë hïå ûáng dng tiïëp theo ca hïå thưëng
nây sệ lâ àiïìu khiïín rưbưët cố hoẩt àưång giưëng con ngûúâi, hïå thưëng kiïím soất
thưng minh trong cấc nhâ mấy cưng nghiïåp, àiïìu khiïín cấc trẩm khưng gian,
thùm dô àấy àẩi dûúng
1.1.2. Khấi niïåm hïå thưëng thúâi gian thûåc :
Mưåt hïå thưëng thúâi gian thûåc (RTS – Realtime Systems) cố thïí àûúåc hiïíu
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 :
- Àưì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
vâo phêìn cûáng cố khẫ nùng tưët hún so vúái hïå thưëng phêìn mïìm cố chûác nùng
tûúng ûáng vâ trấnh àûúåc chi phđ quấ àùỉt cho viïåc tưëi ûu hoấ phêìn mïìm. Ngây
nay, chi phđ phêìn cûáng ngây câng rễ, chổn lûåu ûu tiïn phêìn cûáng lâ mưåt xu
hûúáng chung.
1.1.3. Cấc loẩi hïå thưëng thúâi gian thûåc:
Cấc RTS thûúâng àûúåc phên thânh hai loẩi sau Soft reatime system vâ
Hard realtime system : Àưëi vúái Soft realtime system, thúâi gian trẫ lúâi ca hïå
thưëng cho ëu tưë kđch thđch lâ quan trổng, tuy nhiïn trong trûúâng húåp râng båc
nây bõ vi phẩm, tûác lâ thúâi gian trẫ lúâi ca hïå thưëng vûúåt quấ giúái hẩn trïỵ cho
phếp, hïå thưëng vêỵn cho phếp tiïëp tc hoẩt àưång 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
kïí).
Ngûúåc lẩi vúái Soft realtime system lâ Hard realtime system, trûúâng húåp
nây ngûúâi ta quan têm khùỉc khe àïën cấc hêåu quẫ do sûå vi phẩm giúái hẩn thúâi
gian àïí cho phếp búãi vò nhûäng hêåu quẫ nây cố thïí lâ rêët tưìi tïå, thiïåt hẩi vïì vêåt
SVTH: TRÊÌN DUY HOÂ
6
chêët, cố thïí gêy ra nhûäng ẫnh hûúãng xêëu àïën àúâi sưëng con ngûúâi. Mưåt vđ d cho
loẩi nây lâ hïå thưëng àiïìu khiïín khưng lûu, mưåt phên phưëi àûúâng bay, thúâi gian
cêët cấnh, hẩ cấnh khưng húåp l, khưng àng lc cố thïí gêy ra tai nẩn mấy bay
mâ thẫm hổa ca nố khố mâ lûúâng trûúác àûúåc.
Trong thûåc tïë thò cố nhiïìu RTS bao gưìm cẫ hai loẩi soft vâ hard. Trong cẫ
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
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
1.2.2. Quan niïåm tiïën trònh, tiïíu trònh :
Trong cấc HÀH hiïån àẩi ngây nay, quan niïåm tiïën trònh vâ tiïíu trònh lâ
trung têm ca cẫ hïå thưëng, têët cẫ cấc xûã l àïìu têåp trung vâo tiïën trònh, vâo tiïíu
trònh. ÚÃ àêy àïí thån tiïån, ta ch trổng vâo mưi trûúâng Winows 32 bit.
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
húåp l, àïí cố mưåt cấch thûác chia sệ dûä liïåu vúái nhau. Cấc cú chïë liïn lẩc vâ chia
sệ dûä liïåu àûúåc cấc HÀH vâ NNLT hiïån àẩi quan têm nhû sûã dng tđn hiïåu,
pipe, vng nhúá chia sệ, trao àưíi thưng àiïåp, sûã dng socket v.v.
1.2.3. Hïå àiïìu hânh thúâi gian thûåc :
Hïå àiïìu hânh thúâi gian thûåc (RTOS - Realtime Operating system) lâ HÀH
cố sûå ch trổng giẫi quët vêën àïì àôi hỗi khùỉc khe vïì thúâi gian cho cấc thao tấc
xûã l hóåt dông dûä liïåu. Àêy lâ HÀH hiïån àẩi, tinh vi, thúâi gian xûã l nhanh,
phẫi cho kïët quẫ chđnh xấc trong thúâi gian bõ thc ếp nhanh nhêët. HÀH nây
SVTH: TRÊÌN DUY HOÂ
9
thûúâng sûã dng mưåt àưìng hưì hïå thưëng cố cho k ngùỉt nhỗ vâo khoẫng vâi micro
giêy àïí thûåc hiïån àiïìu phưëi cấc tiïën trònh.
Cấc HÀH hiïån àẩi ngây nay phêìn lúán àïìu hưí trúå (úã mûác tûúng àưëi) xûã l
thúâi gian thûåc, cung cêëp mưåt mưi trûúâng cố thïí tưí chûác cấc RTS. Theo sûå àấnh
giấ ca cấc chun viïn RTS thò cho àïën nay, cấc HÀH thåc hổ UNIX lâ cố thïí
àấp ûáng tưët nhêët cấc u cêìu khùỉc khe ca cấc RTS phûác tẩp. Tuy nhiïn, trong
khn khưí lån vùn nây cng vúái cấc u cêìu cng nhû hiïån trẩng thûåc tïë, hïå
thưëng àang àûåoc quan têm sệ triïín khai trïn hïå thưëng mấy PC s dng HÀH
Windows 9x 32 bit.
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
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đ
d nhû Ada chun trong cấc lơnh vûåc qn sûå. Java vưën àûúåc thuët kïë àïí dng
trong cấc hïå thưëng nhng trong cấc thiïët bõ dên dng, truìn thưng. Java cố cú
chïë hưí trúå àa nhiïåm riïng khưng ph thåc vâo HÀH. C/C++ àûúåc cung cêëp cấc
thû viïån hâm hưỵ trúå cú chïë xûã l thúâi gian thûåc theo nhiïìu HÀH hưí trúå xûã l thúâi
gian thûåc khấc nhau v.v.
Trong lån vùn nây, NNLT àûúåc quan têm àïën lâ ngưn ngûä C dng àïí
phất triïín cấc RTS dûåa trïn mưi trûúâng HÀH Windows (32 bit) do Microsoft
cung cêëp.
1.3.2. Sú lûúåc vïì ngưn ngûä lêåp trònh C:
NNLT C(/C++) ngây nay àûúåc sûã dng rưång rậi trïn nhiïìu phûúng diïån
cng nhû nhiïìu loẩi mấy tđnh, lâ NNLTõ dng àïí viïët nhiïìu NNLT, trònh biïn
dõch cng nhû viïët cấc ûáng dng thûúng mẩi
NNLT C àûúåc thuët kïë vâo nùm 1973 búãi tiïën sơ Denis Ritche thåc
diïån nghiïn cûáu Bell trûåc thåc hậng AT&T, NNLT nây àûúåc thuët kïë àïí viïët
HÀH UNIX - mưåt (hổ) HÀH àûúåc rêët nhiïìu ngûúâi sûã dng cho àïën hiïån nay,
trïn cẫ mấy mainframe vâ hiïån nay lâ PC.
Ngây nay trïn thõ trûúâng cố rêët nhiïìu trònh biïn dõch cho cẫø C vâ C++,
phêìn lúán àïìu dûåa trïn chín ANSI nhû Turbo C/C++, Borland C/C++, Builder
C/C++ ca hậng Borland, Microsoft C/C++, Visual C/C++ ca Microsoft C lâ
NNLT cêëp trung, cố cêëu trc (nhûng khưng chđnh thưëng), tuy nhiïn C lâ mưåt
NNLT mẩnh cẫ vïì khđa cẩnh c phấp cng nhû phất sinh mậ thûåc thi. C kïët húåp
àûúåc cẫ ëu tưë mïìm dệo vâ khẫ nùng àiïìu khiïín mẩnh mệ ca Assembly cng
nhû tđnh dïỵ hiïíu, rỗ râng ca cấc ngưn ngûä cêëp cao khấc nhû BASIC, Pascal
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
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 àưå
chđnh xấc vâ tin cêåy rêët cao. Loẩi nây giấ thânh rêët àùỉt.
Mưåt loẩi khấc gưìm mưåt àưìng hưì chđnh (master clock) àưìng bưå vúái nhiïìu
àưìng hưì ph (slave clock) theo kiïíu “polling”, têët cẫ cấc àưìng cố cng àưå chđnh
xấc, nïëu àưìng hưì chđnh bõ hỗng thò mưåt trong nhûäng àưìng hưì ph sệ thay thïë.
SVTH: TRÊÌN DUY HOÂ
12
Àưëi vúái cấc hïå thưëng phên tấn, àưìng hưì hïå thưëng bao gưìm têët cẫ cấc àưìng
hưì phên tấn vâ àûúåc àưìng bưå vúái nhau theo cng mưåt thåt toấn.
1.4.3. Quan niïåm vïì sûå rúâi rẩc thúâi gian:
Trong quan niïåm ca RTS, thúâi gian àûúåc xem nhû lâ mưåt ëu tưë rúâi rẩc.
Àêy lâ mưåt khđa cẩnh rêët phûác tẩp vâ l th.
(1) Trong cấc HÀH kinh àiïín, cố mưåt àưìng hưì quẫn l thúâi gian àưìng bưå
giûäa cấc tiïën trònh. Àưìng hưì nây phất sinh ra ngùỉt bấo hiïåu cho hïå thưëng theo
chu k. Chu k nây cố thïí àûúåc àiïìu chónh nhûng khưng quấ nhanh hay quấ
chêåm lâm ẫnh hûúãng àïën thúâi gian thûåc thi cấc tiïën trònh, vâ thûúâng lâ vâo
khoẫng vâi chc mili giêy. Chđnh chu k nây àậ chia thúâi gian ra thânh cấc
mẫnh à nhỗ.
(2) Côn trong cấc RTOS, hïå thưëng sûã dng mưåt àưìng hưì cố khẫ nùng lêåp
trònh àiïìu phưëi ngùỉt theo mưåt chu k à nhỗ húåp l, chu k úã hïå thưëng nây vâo
khoẫng vâi micrư giêy.
Trong thûåc tïë thò cấc RTS thûúâng dûåa trïn cấch tiïëp cêån kïët húåp giûäa hai
quan niïåm trïn, thûúâng thò quan àiïím (1) lâ nïìn tẫng cố sûå hưí trúå ca quan àiïím
(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â
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.
2) Xấc lêåp vng nhúá trïn bư nhúá chđnh, hïët 5 ms vâ phẫi bùỉt àêìu tẩi thúâi àiïím 10
ms sau khi tấc v bùỉt àêìu.
3) Nhêån tđn hiïåu tûâ thiïët bõ ngoẩi vi, hïët 10 ms, bùỉt àêìøu lc 20 ms.
4) Tđnh toấn sưë liïåu dûåa trïn kïët quẫ tđn hiïåu nhêån vâ dûä liïåu trïn àơa àậ àổc, hïët
5 ms.
5) Kïët xët mân hònh, hïët 5 ms.
Trong cấc hïå thưëng kinh àiïín (xûã l tìn tûå theo lư) thò khố mâ cố thïí àấp
ûáng àûúåc u cêìu cưng viïåc trïn. Cấc cưng viïåc thûåc hiïån mưåt cấch tìn tûå theo
sú àưì sau : 0 30 35 45 50 55 (30ms) (5ms) (10ms) (5ms) (5ms)
Hònh 2 : Mư hònh àiïìu phưëi tiïën trònh cưí àiïín (FIFO)
Cưng viïåc
Thúâi gian 1
2
3
4
5
Vâ nhû vêåy cấc u cêìu vïì râng båc thúâi gian àậ bõ phấ vúã. Nhû nïëu cố
thïí tưí chûác cho cấc cưng viïåc thûåc hiïån theo mư hònh dûúái àêy thò hoân toân cố
thïí àấp ûáng àûúåc nhû cêìu vïì thúâi gian :
Nhû vêåy àiïìu phưëi tiïën trònh lâ mưåt cưng viïåc cêìn thiïët cho RTOS nối
chung vâ cấc RTS nối riïng. Mc tiïu ca viïåc àiïìu phưëi àem lẩi lâ : Sûå cưng
bùçng trong chia sệ CPU, tđnh hiïåu quẫ (têån dng CPU 100%), thúâi gian àấp ûáng
(response time) húåp l, cûåc tiïíu thúâi gian lûu lẩi trong hïå thưëng, thưng lûúång tưëi
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
àưì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” .
1.6.2 Phûúng phấp àưìng bưå trïn mưi trûúâng Windows:
SVTH: TRÊÌN DUY HOÂ
15
HÀH Windows lâ HÀH àa nhiïåm, cố hưí trúå cú chïë àưìng bưå hoấ cấc tiïën
trònh, tiïìu trònh àùåt biïåt lâ trong mưi trûúâng Windows NT vâ cấc Windows 9x
phiïn bẫn 32 bđt. ÚÃ àêy ta ch àïën cấc phûúng phấp àưìng bưå thưng dng,
tûúng thđch vúái Windows 9x, phiïn bẫn 32 bđt.
(1) Phûúng phấp sûã dng miïìn gùng (Critical section): Miïìn gùng lâ mưåt
àoẩn chûúng trònh chó cho phếp mưåt tiïíu trònh thûåc hiïån tẩi mưåt thúâi àiïím, tiïíu
trònh thûåc hiïån àoẩn mậ àố gổi lâ tiïíu trònh trong miïìn gùng.
(2) Phûúng phấp sûã dng Mutex: Lâ mưåt àưëi tûúång àưìng bưå hoấ nhêån
trẩng thấi TRUE khi khưng cố tiïíu trònh nâo súã hûãu nố vâ nhêån trẩng thấi
FALSE khi cố mưåt tiïíu trònh súã hûäu nố.
(3) Phûúng phấp sûã dng Semaphore: Lâ àưëi tûúång àưìng bưå hoấ lûu giûä
mưåt biïën àïëm cố giấ trõ tûâ 0 àïën Max, Semaphore nhêån giấ trõ TRUE khi biïën
àïëm lúán hún 0 vâ giấ trõ FALSE khi biïën àïëm cố giấ trõ bùçng 0.
(4) Phûúng phấp sûã dng biïën cưë (Event) :Lâ àưëi tûúång àưìng bưå hoấ àûúåc
dng àïí àưìng bưå cấc thao tấc truy xët àưìng thúâi àïën cấc àưëi tûúång dng chung,
thûåc chêët thò biïën cưë lâ mưåt cúâ cố hai trẩng thấi TRUE/FALSE.
Cố hai loẩi biïën cưë :
- Biïën cưë khưng tûå àưång : Àưëi tûúång sệ giûä trẩng thấi TRUE cho àïën khi
cố tiïíu trònh tûúâng minh xấc lêåp lẩi trẩng thấi FALSE cho àưëi tûúång.
- 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
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õ.
1.7.5. Thûåc hiïån trïn mưi trûúâng vâ ngưn ngûä lêåp trònh hiïåu quẫ:
Khấc vúái cấc hïå thưëng khấc, RTS cố u cêìu thûåc thi nhanh vâ hiïåu quẫ.
Vò vêåy viïåc sûã dng mưåt mưi trûúâng khưng húåp l hay mưåt NNLT bònh thûúâng
thò khố mâ cố thïí àẩt àûúåc u cêìu, vđ d: Hïå thưëng xûã l thúâi gian cố àưå chia
cho àïën micro giêy thò khưng thïí thûåc hiïån trïn NNLTõ chó hưí trúå àïën mili giêy.
1.7.6. Ngûúâi sûã dng àiïìu khiïín :
Trong cấc hïå thưëng kinh àiïín, thûúâng thò ngûúâi sûã dng ra u cêìu vâ chúâ
nhêån kïët quẫ. Trong nhûäng RTS côn u cêìu ngûúâi sûã dng phẫi nùỉm vûäng vïì
hïå thưëng nïìn (HÀH). Àïí kïët quẫ cưng viïåc thânh cưng tưët, ngûúâi sûã dng cố thïí
can thiïåp trûåc tiïëp àïën tûâng tiïën trònh, tûâng tiïíu trònh, cho phếp, cêëp quìn ûu
tiïn àïën tûâng cưng viïåc nhùçm tẩo sûå thưng sët trong hïå thưëng, trấnh sûå tùỉt ngện.
1.8. Vâi vđ d vïì Hïå thưëng thúâi gian thûåc :
1.8.1. Vđ d 1:
Mấy àiïìu hôa nhiïåt àưå tûå àưång àiïìu khiïín nhiïåt àưå trong phông kđn lâ mưåt
vđ d. Dûåa vâo cấc thưng tin nhêån àûúåc tûâ nhiïåt kïë, ấp sët kïë mấy tđnh àûúåc
nhng trong mấy àiïìu hoâ sệ tđnh toấn ra cấc thưng sưë húåp l vâ àiïìu khiïín múã
mấy àiïìu hoâ úã mûác húåp l, tẩo nhiïåt àưå thđch húåp.
1.8.2. Vđ d 2:
Hïå quẫn trõ CSDL cng lâ mưåt vđ d vïì TTS. Ngûúâi quẫn trõ thónh thoẫng
cêìn kïët quẫ ca mưåt truy vêën trong vông vâi giêy, àùåt biïåt vúái nhûäng u cêìu
SVTH: TRÊÌN DUY HOÂ
17
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
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.
SVTH: TRÊÌN DUY HOÂ
18
(3) Kïët húåp cẫ hai chiïëân lûúåc:Trong thûåc tïë cố nhiïìu chûúng trònh àûúåc
thiïët kïë kïët húåp cẫ hai hûúáng tiïëp cêån Bottom-Up vâ Top-Down, cấch tiïëp cêån
nây lâ mưåt phûúng phấp tưët, têån dng àûúåc cấc ûu àiïím ca hai cấch tiïëp cêån
trïn thêåm chđ côn loẩi búát mưåt sưë khuët àiïím ca chng.
1.9.2. Thiïët kïë ûáng dng thúâi gian thûåc :
Thưng thûúâng, mưỵi RTS thûúâng àûúåc thiïët kïë dûåa trïn mưåt sưë hïå thưëng
chín. Cố ba dẩng chín thûúâng gùåp lâ :
- Cấc hïå thưëng giấm sất (Monitoring system).
- Cấc hïå thưëng kiïím soất (Control system).
- Cấc hïå thưëng thu thêåp dûä liïåu (Data accquistion system).
(Hïå thưëng mâ lån vùn àang quan têm kïët húåp giûäa hai hïå thưëng kiïím soất vâ
thu thêåp dûä liïåu – Data accquistion and Control)
Xêy dûång mưåt RTS cng bùỉt àêìu bùçng giai àoẩn xấc àõnh u cêìu, sau àố
lâ cấc giai àoẩn phên tđch, thiïët kïë, câi àùåt, kiïím tra…. Cấc giai àoẩn nây cố thïí lâ
tưíng quan hay lâ ài vâo chi tiïët, cố thïí phên thânh cấc giai àoẩn con. Cấc giai
àoẩn cố thïí gưëi chưìng lïn nhau.
Xấc àõnh
Phên tđch
Thiïët kïë
Câi àùåt
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.
- 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
1.9.3. Mư hònh àưëi tûúång :
Lâ phûúng tiïëp cêån dûåa trïn cấch tiïëp tiïëp cêån mư hònh cấc àưëi tûúång ca
thïë giúái thûåc àûúåc quan têm trong chûúng trònh. Khưng àưìng nghơa vúái phûúng
phấp lêåp trònh hûúáng àưëi tûúång, phûúng phấp nây àûúåc thûåc hiïån dïỵ dâng, àấp
ûáng àûúåc cấc u cêìu ca Cưng nghïå phêìn mïìm nhû tđnh àng àùỉn, tđnh tiïën
hoấ, tđnh hiïåu quẫ, tđnh tiïån dng, tđnh tûúng thđch, tđnh tấi sûã dng
Tûâ mư hònh àưëi tûúång sệ cố mưåt loẩt cấc mư hònh liïn quan dûåa trïn quan
àiïím àưëi tûúång nhû :
- Mư hònh trẩng thấi : Diïín tẫ chu trònh sưëng ca mưåt àưëi tûúång tûâ lc sinh ra àïën
lc mêët ài.
- Mư hònh xûã l : Hïå thưëng nhûäng nghiïåp v trong thïë giúái thûåc tấc àưång lïn àưëi
tûúång.
- Mư hònh khưng gian : Hïå thưëng cấc võ trđ mâ trong àố cấc àưëi tûúång àûúåc sinh
ra vâ mêët ài, cấc nghiïåp v àûúåc tiïën hânh.
- Mư hònh thúâi gian : Hïå thưëng cấc mâ trong àố cấc nghiïåm v trïn cấc àưëi
tûúång àûúåc thûåc hiïån, cấc àưëi tûúång àåc phất sinh, àûúåc mêët ài theo nhûäng
râng båc c thïí.
- Mư hònh ngûúâi sûã dng v.v.
Trong lơnh vûåc ûáng dng thúâi gian thûåc, mư hònh àưëi tûúång nïëu àûúåc sûã
dng àïí thiïët kïë nïn têåp trung ch ëu vâo mư hònh trẩng thấi vâ mư hònh xûã l.
SVTH: TRÊÌN DUY HOÂ
20
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û
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
SVTH: TRÊÌN DUY HOÂ
21
thûúác L ??M xấc àõnh cấc àêìu vâo (input) vâ àêìu ra (output) ca cấc chuín àưíi.
Thânh phêìn ca ma trêån lâ cấc sưë ngun biïíu diïỵn cho trổng lûúång cho mưëi liïn
kïët giûäa trẩng thấi vâ chuín àưíi, nïëu khưng cố liïn kïët thò trổng lûúång nây bùçng
0.YD CZX[C] YAB
Hònh 6: Sú àưì trẩng thấi hònh 4 nhòn dûúái cấc mûác khấc nhau
A
B
C
D
Y X[
Y
Z
Hònh 7: Sú àưì trẩng thấi hònh 4 phên rẫ àûúái mûác thêëp hún
Cng cêìn nối thïm úã àêy rùçng, àưëi vúái mưỵi tấc v xûã l nïëu ta nhòn nhêån
dûúái gốc àưå chi tiïët thò sệ khố mâ nhêån ra àûúåc mưëi tûúng quan tưíng hoâ ca nố
trong toân bưå hïå thưëng. Tuy vêåy nïëu ta nhòn toân bưå hïå thưëng dûúái mưåt sú àưì
tưíng quất nhûng à chi tiïët àïí tòm ra mưëi tûúng quan giûäa cấc thânh phêìn cng
nhû giûäa cấc xûã l thò câng khố khùn khùn búãi vò tđnh phûác tẩp ca mưåt tưíng thïí
phûác tẩp. Trïn quan àiïím àố, mẩng Petri dûåa trïn mư hònh toấn hổc – Àẩi sưë
tuën tđnh – Ma trêån c thïí cho phếp cố thïí cưång trûâ nhên chia, cho ra nhûäng kïët
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
àưí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
chuín àưíi túái hẩn tẩi mưåt thúâi àiïím vâ tu chổn ngêỵu nhiïn giûäa cấc chuín àưíi
cho phếp (ûu tiïn cho cẩnh cố trổng lûúång lúán nhêët). Mưåt chuín àưíi túái hẩn kếo
theo nhûäng ẫnh hûúãng trïn nhûäng trẩng thấi àûáng trûúác vâ sau chuín àưíi àố :
+ w thễ àûúåc gúã bỗ khỗi mưỵi trẩng thấi àûáng trûúác. + w thễ àûúåc thïm vâo mưỵi
trẩng thấi àûáng sau.
Mưåt giúái hẩn xẫy ra cố cấc tđnh chêët sau :
+ Ch àưång : Mưåt chuín àưíi cho phếp àûúåc túái hẩn nhûng khưng bùỉt
båc.
+ Trổn vển : Têët cẫ cấc quấ trònh liïn quan cng túái hẩn.
+ Tûác thúâi : Khưng cố tưìn tẩi thúâi gian trïí giûäa cấc quấ trònh liïn quan.
2
2
p1 P2
p3
p4 p5
t1
t2
Hònh 9: Mưåt àưì thõ Petri àấnh dêëu
SVTH: TRÊÌN DUY HOÂ
23
Khưng cêìn ài vâo chi tiïët tûâng thiïët kïë, ta nhêån thêëy rùçng trong mẩng
Petri, àiïìu kiïån, trẩng thấi trong thûåc tïë tûúng ûáng vúái node trẩng thấi trong mư
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
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
Vông lùåp T
Hònh 13: Àưì thõ Petri cho cấc cêëu trc àiïìu khiïín
Hònh 12: Mưåt mẩng Petri mư hònh quấ trònh chia sệ CPU cho cấc tiïën
t1
t2
p1 p2
p3
p4 Kïët thc tiïën trònh
CPU rậnh rưỵi
Tiïën trònh trïn hâng àúåi CPU
Bùỉt àêìu xûã l
Kïët thc xûã l
Quấ trònh xûã l
Mẩng Petri côn cố thïí chuín àưíi dïỵ dâng qua sú àưì tìn tûå. Mưỵi node
trïn sú àưì tìn tûå tûúng ûáng vúái mưåt chuỵn àưíi, mưåt tûúng ûáng vúái mưåt trẩng
thấi trïn mẩng Petri tûúng tûúng ûáng. Hònh 17 vâ 18 lâ mưåt vđ d vïì sûå chuín
àưíi nây.
t6
t4
t5
t7
P4 P5
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
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
s3
s5 s4
s6
s7
F
T
F T
Hònh 18: Sú àưì khưëi ca mẩng Petri hònh ### Miïìn gùng Miïìn gùng
t1
t3
t2
t4
P1 S
Hònh 19: Àưì thõ Petri ca mư hònh àưåc quìn truy xët sûã dng cú chïë
Semaphore