Tải bản đầy đủ (.pdf) (31 trang)

Tài liệu Bài 1: Tổng quan về hệ điều khiển doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.31 MB, 31 trang )

1
Các h thigianthc–Giithiu
Ngô Khánh Hiu
Các h thigianthc–Giithiu
Ngô Khánh Hiu
1
Tng quan v h tin hcthigianthc (1/5)
-H tin hcthigianthcnhn các thông tin v trng thái ca quá trình bên ngoài, x
lý các d liu, và tùy thucvàokt qu mà đa ra "quyt đnh" tác đng đn môi
trng bên ngoài trong điukin các ràng buc nghiêm ngt v thigiannhm bo
đm trng thái n đnh ca quá trình.
-Mtchng trình thigianthc không có các đc tính thng thy  các chng
trình tun t:
⇒ không có s ràng buc nào giaktqu tính toán vithi gian tính toán,
⇒ có kh nng tái s dng (comportement reproductible).
H thigianthclà h môi trng
song song
2
Các h thigianthc–Giithiu
Ngô Khánh Hiu
2
Tng quan v h tin hcthigianthc (2/5)
- Khái nim"song song" (Parallélisme) trong h tin hccóth đchiu đn gin
theo các cách sau:
(1) H tin hc hình thành t nhiu máy tính
(2) H tin hcch gmmt máy tính nhng có nhiuvix lý (processeurs)
(3) H tin hcch gmmtmáytínhvimtvix lý (mono-processeur)
nhng có kh nng qun lý thi gian tính toán theo "khong thi gian"
xác đnh (tranches de temps). Khái nim "song song" nu đchiu
theo ngha này còn đcgi là "pseudo-parallélisme".
- Mt vòng lp: ng mi ln lp s thchinvic tính toán mtítca "tâche 1", mtítca


"tâche 2",… và c th cho đn khi các "tâches" kt thúc vic tính toán.
- Chia mtchng trình tin hcthigianthc làm hai phn
: phn I liên quan đn victhit k
(conception) các "tâches" cho chng trình; phn II gii quyt vn đ "parallélisme" hay
"pseudo-parallélisme" gia các "tâches".
Các h thigianthc–Giithiu
Ngô Khánh Hiu
3
Tng quan v h tin hcthigianthc (3/5)
- Phân loi các h thng "song song" (Système parallèle):
(2) SIMD (Single Instruction Multiple Data): cùng thchin chung mtlnh
(instruction) nhng mi mt "ouvrier" s tính các phn khác nhau hay các
d liu khác nhau.
(1) Dng dãy tuyn tính: h thng song song "pipeline" (dng cu trúc ca
"processeur" hay "microprocesseur" cho phép thchincùngmtlúc
nhiulnh (instructions).
(3) MIMD (Multiple Instruction Multiple Data): cho phép cùng mtlúcthc
hinnhiu "tâches" khác nhau (lu ý: mt "tâche" có th gimthay
nhiulnh).
(4) SPMD (Single Program Multiple Data): là dng đc bitcaMIMD,  mi
thi đim trong quá trình thchinmtchng trình (program), mt
"tâche" không th đc tính  hai hay nhiu ni khác nhau (lu ý: mt
chung trình là tphpcamt hay nhiu "tâche").
3
Các h thigianthc–Giithiu
Ngô Khánh Hiu
4
Tng quan v h tin hcthigianthc (4/5)
- Phân loi tng quát các h thng tin hc (Systèmes informatiques):
(2) Các h tng tác (Systèmes interactifs): là h đchiutheongha d liu

đcto ra bis tác đng vi"môi trng" bng nhiuhínhthc khác nhau
nh: bàn phím, file d liu, mng, chut, c tính v thi gian trong trng
hp này không có nh hng nào khác ngoài cm giác không thoi mái khi làm
vic (aspect confort de travail) hay cht lng phcv (qualité de service).
(1) Các h bin đi (Systèmes transformationnels): là các h s dng các d liu
đu vào (input) đc cung cp lúc khai báo ban đu, sau đó x lý các d liu
đó đ xut ra các d liu đu ra (output) mà không có bt c ràng buc nào v
thi gian.
(3) Các hđiukhin hay phn ng (Systèmes de contrôle-commande ou réactifs):
là các h có mi quan h vi môi trng thct thông qua các d liu đu vào,
tuy nhiên khác vih tng tác, h điukhinhayphn ng có s ràng buc
bt bucv thigian di c ác hình thcnh: thigianphn ng (temps de
réaction), hn thigianphn hoàn thành (temps d’une échéance à respecter),
Các h thigianthc–Giithiu
Ngô Khánh Hiu
5
Tng quan v h tin hcthigianthc (5/5)
4
Các h thigianthc–Giithiu
Ngô Khánh Hiu
6
Phân loi h điukhin (Système de contrôle-commande ou réactif) (1/2)
T đnh ngha h điukhinta cóth phân loi h điukhinda theo các yêu cu
(specifications) riêng cah nh sau:
(1) Các h thigianthc (Systèmes temps réel): là h điukhinmàyêucu ng
x "đúng/chính xác" (exactitude) cacácng dng ca nó không nhng ch
ph thucvàokt qu (résultat), mà còn ph thucvàothigianmàkt qu đó
đcto ra. Và nu các ràng bucv thi gian (contraintes temporelles) ca
ng dng không đc tuân th, ta nói h b sai sót/li (défaillance du système).
Da vào các ràng bucthi gian này ta có th chia h thigianthc làm 2 loi:

1.a. ràng bucthigianlng/tng đi (contraintes temporelles relatives ou
lâches): là h có th chu đc/b qua (tolérance) mts li xác đnh v
thigiannu phát sinh trong quá trình vn hành (ví d: trò chi đint,
các ng dng v nghe nhìn, đinthoi di đng,…).
1.b. ràng bucthigiancht/nghiêm ngt (contraintes temporelles strictes ou
dures): là h không chp nhn/b qua bt k li v thi gian nào phát sinh
trong quá trình vn hành (ví d: thit b đint hàng không, tàu v tr, xe
hi, h thng đng st…).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
7
Phân loi h điukhin (Système de contrôle-commande ou réactif) (2/2)
(2) Các h điukhin "embarqué" (Systèmes de contrôle-commande embarqué):
đchiu đn gin là h đc tích hptrêncácthit b hay các h thng khác
đ điukhin quá trình hot đng cathit b hay h thng đó.
(3) Các h điukhin "dédié" (Systèmes de contrôle-commande dédié): đchiu
đn gin là các h "cng" hoc "mm" (architectures matériels ou logiciels)
đcthit k dành riêng cho mt ng dng c th (ví d: ht nhân hay lõi
(noyau) camt microprocesseur, vi x lý (processeur), ).
(4) Các h điukhin "distribué" (Systèmes de contrôle-commande distribué):
đchiu đn gin là mtcu trúc phn "cng" (l’architecture matériel) đc
hình thành t nhiuvix lý (processeurs) liên kt vi nhau thông qua mt
"bus" hay mth thng mng (réseau).
5
Các h thigianthc–Giithiu
Ngô Khánh Hiu
8
Các đc tính c bn cah điukhin (1/6)
Mi quan h tng h giah
điukhinvi môi trng bên

ngoài mà nó điukhincóth
phân chia thành hai phn sau:
 phn "quan sát" (observations) thông qua các cm bin (sensors), cho phép thu
nhn các thông tin dihìnhthc các ngt (interruptions, information tout ou
rien), hoc các giá tr đo (mesures, information continue) t quá trình thct mà
h điukhin.
 phn "hành đng" (actions) đcthchinnh các c cu chp hành
(actuators), cho phép phn ng li quá trình th
ct mà h điukhin dihình
thccáclnh (commandes) làm thay đitrng thái hinhànhcah thng, hoc
đn gin là dihìnhthc các hinth (affichage) nh diodes, bóng đèn, màn
hình hinth, thit b hinth,…
Các h thigianthc–Giithiu
Ngô Khánh Hiu
9
Các đc tính c bn cah điukhin (2/6)
Mt ng dng cah điukhin trong điukhin quá trình đtcháyca đng c
6
Các h thigianthc–Giithiu
Ngô Khánh Hiu
10
Các đc tính c bn cah điukhin (3/6)
Các đc tính c bn cah điukhinlà:
(1) rt đa dng các thit b đu vào và đu ra (dispositifs d’entrées/sorties):
d liu đu vào yêu cu, đc cung cp bicáccm bin, và các d liu
đu ra cung cp cho các c cu chp hành có các kiud liu (types) rt
đa dng (liên tc, rirc, "tout ou rien", hoc "analogique").
(2) có kh nng tính toán song song (comportements concurrents): tphp
tt c các d liuthct t bên ngoài, và "mng" (le réseau) cho phép
nhpcácd liudng tin nhn (messages) không đc đng b (ne sont

pas synchronisés) so vis phát trinca chúng. iunàydn đn, h
thng tin hcphi có kh nng chp nhnnhng s khác bit đng thi
ca các tham s (variations simultanées des paramètres).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
11
Các đc tính c bn cah điukhin (4/6)
Các đc tính c bn cah điukhinlà: (tip theo)
(3) tuân th các ràng bucv thi gian (contraintes temporelles): đc tính
trc đó cah điukhin đt ra cho h thng tin hcmtmt phi có mt
kh nng "phn ng" (réactivité) đ đ xét ht tt c các ng x đng thi
(comportements concurrents), mt khác phi tr licácng x đó bng
cách to ra các lnh trong tuân th mtgiihn thi gian (un délai) tng
ng/phù hpvi tính đng hccah thng (la dynamique du système)
(4) s chc chn trong hot đng (sureté de fonctionnement): các h điu
khin thng đcs dng trong các ng dng mà  đó yêu cu  mc
đ rt quan trng v s an toàn vì lý do chi phí (cout) hoc tính mng ca
con ngi (vies humaines).  đáp ng đcyêucu này, rt cn thit
phi bo đm tính chc chn trong hot đng cacách điukhin thông
qua các bin pháp nh phát trin"chc chn", tests, các phng pháp
"formelles", các d đoán (prévisibilité), déterminisme, tolérance aux
fautes, redondance,…
7
Các h thigianthc–Giithiu
Ngô Khánh Hiu
12
Các đc tính c bn cah điukhin (5/6)
So sánh tính đng hccacácng dng khác nhau cah điukhin
Các h thigianthc–Giithiu
Ngô Khánh Hiu

13
Mtvàing dng cah điukhin (6/6)
 Robot sn xut
: mt robot, thchinmthot đng c th trong mtchui sn
xut, phi hoàn thành công viccanótrongkhong thigianc đnh xác đnh
bi dây chuynch to. Nu thi gian này quá smhoc quá tr sn phm ch
to s b phá hyhoc làm h hng dn đn các thithi v kinh t hoc con
nginghiêmtrng.
 Robot thm dò/thám him
: robot này phi có kh nng t dch chuyntrongmt
phm vi mà v c bn là không bit rõ trc(nh vùng nhim phóng x gn mt
ti nn v phóng x, hành tinh,…). iu quan trng đivi các robot loi này là
chúng phi có th phn ng li các chng ngi vtc đnh hoc di đng đ tránh
b mt lái hay b kt.
inthoi di đng
: h thng điukhinphi có kh nng hoàn thành nhiuchc
nng mà trong đó mts có ràng bucv thi gian cao đ có cht lng phcv
tt (QoS, Quality of Service). Chc nng đu tiên là truynvànhn tín hiuging
nói (577 µs ging nói đcphátchomi 4.6 ms, và 577 µs ging nói đcnhn
cho mi 4.6 ms  các khong cách khác nhau). Vi vycn phi
8
Các h thigianthc–Giithiu
Ngô Khánh Hiu
14
Cu trúc ca các ng dng cah điukhin (1/16)
 Cu trúc phn mm (Architecture logicielle)
(1/14)
ng x đng thica các tín hiu đcth hin didng các "événements" và các
đi lng thc bên ngoài (grandeurs physiques externes) dn đn mô t/th hinmôi
trng điukhinnh là mth thng bt buc song song.

Cu trúc phn mmcóth đáp ng ttnht đ tr licácng x song song ca
quá trình điukhin bên ngoài (comportement parallèle du procédé externe) là cu
trúc "multitâche" (multi-task hay multiprogrammation).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
15
Cu trúc ca các ng dng cah điukhin (2/16)
 Cu trúc phn mm (Architecture logicielle
) (2/14)
“In computing, multitasking
is a method by which multiple tasks, also known as
processes, share common processing resources such as a CPU. In the case of a
computer with a single CPU, only one task is said to be running at any point in time,
meaning that the CPU is actively executing instructions for that task.
Multitasking solves the problem by scheduling which task may be the one running at
any given time, and when another waiting task gets a turn. The act of reassigning a
CPU from one task to another one is called a context switch
.
When context switches occur frequently enough the illusion of parallelism
is
achieved. Even on computers with more than one CPU (called multiprocessor
machines), multitasking allows many more tasks to be run than there are CPUs.”
(Trích ngun Wikipedia)
9
Các h thigianthc–Giithiu
Ngô Khánh Hiu
16
Cu trúc ca các ng dng cah điukhin (3/16)
 Cu trúc phn mm (Architecture logicielle
) (3/14)

“Operating systems may adopt one of many different scheduling strategies, which
generally fall into the following categories:
- In multiprogramming systems
, the running task keeps running until it performs an
operation that requires waiting for an external event (e.g. reading from a tape) or
until the computer's scheduler forcibly swaps the running task out of the CPU.
Multiprogramming systems are designed to maximize CPU usage.
- In time-sharing systems, the running task is required to relinquish the CPU, either
voluntarily or by an external event such as a hardware interrupt. Time sharing
systems are designed to allow several programs to execute apparently
simultaneously.
- In real-time systems, some waiting tasks are guaranteed to be given the CPU
when an external event occurs. Real time systems are designed to control
mechanical devices such as industrial robots, which require timely processing.”
(Trích ngun Wikipedia)
Các h thigianthc–Giithiu
Ngô Khánh Hiu
17
Cu trúc ca các ng dng cah điukhin (4/16)
 Cu trúc phn mm (Architecture logicielle
) (4/14)
10
Các h thigianthc–Giithiu
Ngô Khánh Hiu
18
Cu trúc ca các ng dng cah điukhin (5/16)
 Cu trúc phn mm (Architecture logicielle
) (5/14)
(1) “tâches" nhp/xut (tâches d’entrées/sorties): đây là các "tâches" cho phép tip
cnvicácd liu bên ngoài thông qua các "cartes" giao tip nhp/xut, và các

cm bin (capteurs), các c cu chp hành (actionneurs) liên kt trctip vi
quá trình điukhin. Các "tâches" này có th đckíchhot mt cách đu đn
(façon régulières) hoc bng "ngt" (par interruption).
(2) “tâches" x lý/tính toán (tâches de traitement): các "tâches" này to nên phn
trung tâm ca ng dng. Nó tích hp các phng pháp x lý tín hiu
(traitements de signaux) nh phân tích ph, s tng đng, x lý hình nh,…;
các quy lut điukhin (lois de commande) nh điukhin có chu k theo thi
gian, điukhinkiu "tout ou rien", điukhin PID,… Trong khuôn kh ca môn
hc này, ta có th xem các "tâches" x lý/tính toán nh là các hp đen mà  đó
phn x lý/tính toán catng "tâche" s là phm vi cacáclnh vc liên quan
nh x lý tín hiu, x lý hình nh, điukhint đng,…
Các h thigianthc–Giithiu
Ngô Khánh Hiu
19
Cu trúc ca các ng dng cah điukhin (6/16)
 Cu trúc phn mm (Architecture logicielle
) (6/14)
(3) “tâches" qun lý giao tip ngis dng (tâches de gestion de l’interface
utilisateur): đây là các "tâches" cho phép hinth trng thái ca quá trình điu
khin, cng nh vicgiaotip vingis dng. Theo đó, ngi điukhincó
th hiuchnh các d liu điukhinhoc thay đicáclnh điukhin. Các
"tâches" này có th rt phctp và đt v mt thi gian tính toán nu giao din
điukhincókích thc "quan trng" (de taille importante) nh bng điukhin
trong bung lái máy bay (tableau de bord) hoc thuckiugiao đin đ hanh
hinth 3D,…
(4) “tâches" thông tin liên lc (tâches de communications): các "tâches" này đc
to ra đ dành cho vicqun lý vicgivànhn các "messages" trong mt
hoc nhiumng hoc thit b kt ni (réseaux ou bus de terrain). Nu các
"tâches" dng này xut hin trong ng dng cah điukhinthìng dng
đcgi là "phân phi" (distribuée ou répartie).

11
Các h thigianthc–Giithiu
Ngô Khánh Hiu
20
Cu trúc ca các ng dng cah điukhin (7/16)
 Cu trúc phn mm (Architecture logicielle
) (7/14)
(5) “tâches" lu tr (tâches de sauvegarde): đây là các "tâches" cho phép lu tr
trng thái cah thng (l’état du système)  các thi đimc đnh. Vic lu tr
này có th đcs dng sau đó (a posteriori) đ phân tích vicvnhànhca
ng dng hoc ngay sau mts ly li trng thái vn hành  mtgiai đon
trc đó (une reprise d’exécution à une étape précédente).
Sau giai đon phân tích (l’analyse) và thit k (la conception) ng dng, ta thu
đctph
p các "tâches" hay các "activités" có quan h ln nhau đ thc
hinvic điukhinca quá trình. Các "tâches" này thucv các nhóm khác
nhau nh litkê trên. Cách thc phân chia theo chc nng này có th đc
sa đi trong trng hpápdng phng pháp thit k hng v các đi
tng hoc các "entités" điukhin.
Các h thigianthc–Giithiu
Ngô Khánh Hiu
21
Cu trúc ca các ng dng cah điukhin (8/16)
 Cu trúc phn mm (Architecture logicielle
) (8/14)
S đ th hincu trúc "multitâche" camt ng dng cah điukhin
Các "tâches" cu thành lên ng dng cah điukhin không phi là các thcth
hot đng đclp. Mts "tâches" đckt nivi bên ngoài đ nhp/xut; mts
"tâches" có th đc liên kt vi nhau trong quá trình vn hành ca ng dng.
12

Các h thigianthc–Giithiu
Ngô Khánh Hiu
22
Cu trúc ca các ng dng cah điukhin (9/16)
 Cu trúc phn mm (Architecture logicielle
) (9/14)
- Synchronisation
: đây là kiukt nigia hai hay nhiu "tâches" đ th hinmt
mi quan h trc sau (une relation de précédence d’exécution) gia chúng.
- Communication: đây là kiukt nigia hai hay nhiu "tâches" đ th hinmt
mi quan h trc sau nhng có b sung thêm s chuynd liu (le transfert de
données) gia chúng.
- Partage de ressources
: đây là kiukt nigia hai hay nhiu "tâches" cùng chia
s vi nhau các ngun nghiêm ngt (ressources critiques). Các ngun nghiêm
ngt là các ngunmàs tip cnchúngbi hai hay nhiu "tâches" cùng mtlúc
hoc không th thchin đc, hoc không th đ có mts vn hành đúng.
Các h thigianthc–Giithiu
Ngô Khánh Hiu
23
Cu trúc ca các ng dng cah điukhin (10/16)
 Cu trúc phn mm (Architecture logicielle
) (10/14)
Vai trò chính yu cah tin hclà điuphis đan xen (l’enchainement) và đng thi
(la concurrence) ca các "tâches" nhm ti u thigianchim dng vi x lý, chc nng
này thng đcgilà "ordonnancement" (schedulability).
- Mô hình “synchrone”
:  mô hình này s nhnthcthi đimkíchhot catt c
d kin điukhin (l’occurrence de tout événement) bih thng b tr bithi
gian tính toán ca "tâche" hin hành. Hay nói cách khác, các "tâches" camôhình

"synchrone" là các "tâches" không th ngt (non interruptibles ou non préemptibles)
Ta có th phân chia mô hình vn hành cacách điukhin thành hai mô hình sau: mô
hình "synchrone" và mô hình "asynchrone".
- Mô hình “asynchrone”:  mô hình này s nhnthcthi đimkíchhot catt c
d kin điukhin (l’occurrence de tout événement) đc ghi nhn ngay lptcbi
h thng đ cân nhc tính cht khn (urgence) hay tính cht quan trng ca chúng.
Hay nói cách khác, các "tâches" ca mô hình "asynchrone" là các "tâches" có th
ngt (interruptibles ou préemptibles)
13
Các h thigianthc–Giithiu
Ngô Khánh Hiu
24
Cu trúc ca các ng dng cah điukhin (11/16)
 Cu trúc phn mm (Architecture logicielle
) (11/14)
Mô hình "synchrone" camt ng dng điukhin
Phng pháp phân tích "ordonnancement" trong mô hình "synchrone" đcgilà
phng pháp phân tích "ordonnancement hors ligne".
Các h thigianthc–Giithiu
Ngô Khánh Hiu
25
Cu trúc ca các ng dng cah điukhin (12/16)
 Cu trúc phn mm (Architecture logicielle
) (12/14)
Mô hình "asynchrone" camt ng dng điukhin
Phng pháp phân tích "ordonnancement" trong mô hình "asynchrone" đcgilà
phng pháp phân tích "ordonnancement en ligne".
14
Các h thigianthc–Giithiu
Ngô Khánh Hiu

26
Cu trúc ca các ng dng cah điukhin (13/16)
 Cu trúc phn mm (Architecture logicielle
) (13/14)
Cu trúc ca
ng dng:
tâches và
noyau temps
réel
Các h thigianthc–Giithiu
Ngô Khánh Hiu
27
Cu trúc ca các ng dng cah điukhin (14/16)
 Cu trúc phn mm (Architecture logicielle
) (14/14)
Các ngôn ng lptrình đcs dng đ phát trincácng dng điukhin
viht nhân thigianthc
1. Gestion des interruptions 2. Ordonnancement 3. Relations entre les tâches
15
Các h thigianthc–Giithiu
Ngô Khánh Hiu
28
Cu trúc ca các ng dng cah điukhin (15/16)
 Cu trúc phn cng (Architecture matérielle
) (1/2)
Các h thigianthc–Giithiu
Ngô Khánh Hiu
29
Cu trúc ca các ng dng cah điukhin (16/16)
 Cu trúc phn cng (Architecture matérielle

) (2/2)
Cu trúc phn cng gi mtvaitròrt quan trng trong các ng dng h điukhin.
Nó liên quan mtmt đn s kt nitrctip vi môi trng thct nh vào các h
thng nhp/xut đa dng (une grande diversité de systèmes d’entrées/sorties); mt
khác đn thit b tin hcphn cng (matériel informatique) chuyên bitvà đc phát
trindànhriêngchomt ng dng nào đó.
Rt nhiu ng dng cah điukhinvn hành datrêncácnnPC truynthng.
Tuy vy, viclp đt các cartes nhp/xut, chúng phi đc đng b hóa (victhu
nhnd liuvàxut lnh đcthchin  các thi đim chính xác), là luôn cn thit.
Vì vy, trong các ng dng tin hcnày, cácphn cng chuyên bitluôntnti và h
tr tính nng v thi gian.
Trong nhiu trng hp, các ng dng cah điukhinthucdng "distribué" mà 
đó chúng vn hành trong môi trng "multitâche", đckt nivi nhau bimthoc
nhiuh thng mng (nh
Erthenet, CAN, FIP…)
16
Các h thigianthc–Giithiu
Ngô Khánh Hiu
30
S phát trinca các ng dng cah điukhin (1/27)
S phát trincacácng dng tin hccóth đc chia thành các giai đon phát trin
chính sau: giai đon mô t đc tính/yêu cu (Spécification); giai đon thit k
(Conception); giai đon xây dng/trin khai (Implémentation/Codage); và giai đon
kim tra (Test/Validation).
Nu nh vickim tra (Test/Validation), gi vai trò quan trng sng còn trong vic đt
đccht lng cah thng, có th đcthchind dàng trong các ng d
ng tin
hctruynthng (nh các programmes tính toán…) thì đivicácng dng cah
điukhinvickimtravn hành thct cah thng rt phctp phát sinh t rt
nhiu nguyên nhân mà ta có th nêu ra sau: vicvn hành là duy nht (v tinh do

thám…), chi phí rt cao (h thng tên la, h thng to lc đy…), rirocaov nhân
mng (thit b bay…)…
Vòng phát trinv
i các giai đon chínhnêutrênchophépva thu đccácng dng
đt cht lng cao xét v khía cnh cu trúc phn mm, vagia tng kh  nng v bo
dng/sacha (maintenabilité) và m rng/phát trin (évolutivité).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
31
S phát trinca các ng dng cah điukhin (2/27)
Vòng phát trinc đin "Cascade"
(1/5)
c đa ra đu tiên biW.
Royce vào nhng nm 1970, vòng
"Cascade" nguyên thylà mts
phát trin t heo trình t t giai đon
"Spécification" đn giai đon "Test".
Có s xut hincamt liên kt giacác
giai đon sau giai đon "Spécification" ban
đu cho phép thchin các "Tests"  cui
mi giai đon trong vòng phát trinvàphn
hikpthi đn giai đon lin trc đó nu
có vn đ phát sinh
17
Các h thigianthc–Giithiu
Ngô Khánh Hiu
32
S phát trinca các ng dng cah điukhin (3/27)
Vòng phát trinc đin "Cascade"
(2/5)

?
?
Các h thigianthc–Giithiu
Ngô Khánh Hiu
33
S phát trinca các ng dng cah điukhin (4/27)
Vòng phát trinc đin "Cascade"
(3/5)
(1) Giai đon “Spécification": tìm hiuh thng di cái nhìn tng quát đn tt c
các đc tính canónhm mc đích tr lichocâuhi"H thng làm gì?".
Các khía cnh kho sát  đây không ch đn thun là các yêu cu thucv
chc nng (besoins fonctionnels), mà còn bao hàm c nhng yêu cu không
thucv chc nng (besoins non fonctionnels) nh yêu cu vng x/đáp
ng cah thng (services comportementaux), vtliu (matériaux), yêu c
u
v cht lng (qualités requises), các ràng bucv thigian đivicách
thigianthc…
18
Các h thigianthc–Giithiu
Ngô Khánh Hiu
34
S phát trinca các ng dng cah điukhin (5/27)
Vòng phát trinc đin "Cascade"
(4/5)
(2) Giai đon “Conception": có th phân chia thành hai giai đon, thit k s b
(conception préliminaire) và thit k chi tit (conception détaillée). Mc đích ca
giai đon này là "đnh ngha" cu trúc bên trong cah thng (architecture
interne du système) t các yêu cu đt ra  giai đon trc đó nhm mc đích
tr lichocâuhi"H thng làm nh th nào?".
Thit k s b đa ra cu trúc tng quát cah thng bng cách phân chia nó

thành các b phncu thành, đc bit là các "tâches" và các "modules". Module
 đây có th đchiulà mt đn v tphpmt nhóm các "fonctions" hoc các
"procédures" dành cho vics dng kt hpvicácb phn khác.
Thit k chi tit cho phép đi t kt qu cathit k s b vic phân chia tip tc
h thng cho đn cp đ mô t chi tit/c th nht tng b phncu thành canó
nh: các lachn "algorithmes", mô t chi tit tng "tâche", "fonction", cu trúc
d liu, quan h gia các "tâches"…
Các h thigianthc–Giithiu
Ngô Khánh Hiu
35
S phát trinca các ng dng cah điukhin (6/27)
Vòng phát trinc đin "Cascade"
(5/5)
(3) Giai đon “Implémentation": giai đon này cho phép trin khai các khái nim
đc đa ra trong giai đon thit k th hin didng code chng trình.
ivicách song song, hoc s dng các ngôn ng h tr song song nh
Ada, Module 2…; hoc s dng mt ngôn ng tun t đc dùng kt hpvi
mth điu hành "multitâche" hay mtht nhân thigianthc (noyau temps réel)
nh ngôn ng C phát trin thành các chun POSIX, VxWorks, OSEK/VDX…
Ngôn ng đ hacóth đcs dng trong giai đon này. Davào đc tính đ
ha, ngôn ng này cho phép không nhng trin khai các khái nimthit k, mà
còncóth tích hpvicácb phnca ng dng thct trong mt môi trng
đng nht liên tcmtcáchtrc quan. LabVIEW là mttrongs nhng ngôn ng
đ ha trong quá trình phát trincacácng dng cah điukhin.
19
Các h thigianthc–Giithiu
Ngô Khánh Hiu
36
S phát trinca các ng dng cah điukhin (7/27)
Vòng phát trindng "V"

(1/3)
Là mtdng thay đica mô hình "Cascade", mô hình V
tptrungvàoquátrìnhkimtra/làmchocóhiulc quá
trình phát trincah điukhin (vérification et validation).
- ng dcxung bên trái là
s th hinli ca các giai
đon phát trincamôhình
"Cascade" t "Spécification"
đn "Conception".
- ng dc lên bên phi là
s th hinca các quá
trình "tests" mà  đó ng vi
mi giai đon ca quá trình
"Analyse" và "Conception" ta
thchinmt quá trình
"Test" và "Validation".
Các h thigianthc–Giithiu
Ngô Khánh Hiu
37
S phát trinca các ng dng cah điukhin (8/27)
Vòng phát trindng "V"
(2/3)
(4) Giai đon “tests unitaires": cho phép kimtras hot đng ca các thành phn
cah thng mt cách đclp đ đm bo mi chúng phi thacácyucu
hot đng riêng, và phi hot đng "đúng" trong mi điukin.
(5) Giai đon “tests d’intégration": là giai đon kimtra đctin hành sau giai đon
"tests unitaires" nhm mc đích kimtras hot đng ca các thành phn ca
h thng trong s vn hành tng th ca nó: mi quan h giacácb phn; s
hot đng ca các "tâches" datrêncácb phn này; các c ch bo đm
"communication/synchronisation" gia các "tâches"…

(6) Giai đon “validation": là giai đon cho phép kim tra tính hiulc/tính đúng ca
h điukhin đc phát trin trccácyêucu (besoins) đ ra  giai đon đu
tiên: "besoins fonctionnels" và "besoins non fonctionnels".
20
Các h thigianthc–Giithiu
Ngô Khánh Hiu
38
S phát trinca các ng dng cah điukhin (9/27)
Vòng phát trindng "V"
(3/3)
Mô hình "V" so vimôhình"Cascade" giúpgim bt quá trình "retours" v
các giai đon trc đó trong vòng phát trincah điukhin: c th là mi
giai đon  phn "lên" (montant) s ch phn hi thông tin li cho mtgiai
đon tng ng caphn "xung" (descendant) trong s đ V nh đó các li
đc phát hins đcchnh sakpthi.
Mô hình "V" vn mang đc tính camtmôhìnhtuyn tính (modèle linéaire)
nên các vn đ gp phi  mô hình "Cascade" vn cha đckhc phc: giai
đon sau ch đcbt đu khi giai đon trc hoàn tt và kt thúc, nên giai
đon "tests" và "validation" ch đctin hành sau khi giai đon
"implémentation" kt thúc, phn lncácli li phát sinh  giai đon
"spécification" ⇒ les retours coûtent chers
Các h thigianthc–Giithiu
Ngô Khánh Hiu
39
S phát trinca các ng dng cah điukhin (10/27)
Mts vòng phát trin khác
(1/6)
Mô hình tuyn tính s rt phù hp đivicách điukhinmà đó các yêu cu
canócóth đcxác đnh ngay t giai đon đu. iu đó mtmt giúp chun b
tt hn cho giai đon "tests et validation"; mt khác c đnh và xuyên sutcácyêu

cu  nhng giai đon tip theo ca vòng phát trin.
Tuy nhiên, đivi các mô hình "dirigés par les documents" thì phn lncác ý
tng ban đu cah đcxác đnh  giai đon "spécification" đu  dng cha
hoàn chnh, nên rt có nhiukh nng nhng "code" hay nhng thit k
(conception) đa ra trong các giai đon tip theo ca vòng phát trin không th s
dng đc/không phù hp (inutilisable). Vicápdng các vòng phát trin da trên
mô hình tuyn tính (Cascade, V) cho các mô hình này là không thts phù hp.
il est favorable d’utiliser d‘autres techniques de prototypage qui permettent de
valider tout ou une partie du cahier des charges et de prendre en considération
le «feed-back» entre le concepteur et l’utilisateur.
21
Các h thigianthc–Giithiu
Ngô Khánh Hiu
40
S phát trinca các ng dng ca
h điukhin (11/27)
Mts vòng phát trin khác
(2/6)
Mô hình "Rapid
Prototype"
Mô hình "Rapid Prototype" là mô hình mà 
đó mctiêucah (objectifs du système)
s đctp trung ngay t nhng giai đon
đu ca vòng phát trin.
-mtthit k (conception) và mt "prototype" đc
hình thành nhanh nhm kimtracácmctiêuca
h trckhi bt đu giai đon "spécification",
-yêucu ít các vòng "feed-back" hn so vimôhình
tuyn tính, điu đó giúp phát hinvàsachakpthi
các li phát sinh  giai đon s dng.

Mô hình "Rapid Prototype" đcs dng nhiu
trong ngành công nghip ô tô.
Các h thigianthc–Giithiu
Ngô Khánh Hiu
41
S phát trinca các ng dng ca
h điukhin (12/27)
Mts vòng phát trin khác
(3/6)
Mô hình
« Incremental and
Iterative"
Mô hình "Incremental and Iterative" là mô hình
mà  đó quá trình phát trin đc chia thành
nhiuchn (étapes), và h đc chia thành
nhiuphn nh (morceaux) mi phn s tng
ng vimtnhómcácyêucu (besoins).  mi
chn phát trin, ta s dng mô hình tuyn tính
đ phân tích mthoc nhiuphn nh cùng mt
lúc, sau đó các phn nh này s đc tích hp
li vi nhau và "tests" tng th. Sn phm cui
cùng s là mtchui liên tip (série) các mô hình
phát trin tng dn (modèles incrémentiels).
22
Các h thigianthc–Giithiu
Ngô Khánh Hiu
42
S phát trinca các ng dng ca
h điukhin (13/27)
Mts vòng phát trin khác

(4/6)
Mô hình "Spiral" là mô hình "dirigé par
les risques" do W. Boehm đa ra.
Mô hình "Sprial"
- la dimension radicale représente le
coût cumulatif,
- la dimension angulaire représente
le progrès atteint à chaque cycle de
spirale (phase),
- une phase commence par
l’identification des objectifs de la
phase, des alternatives pour obtenir
ces objectifs et leurs contraintes
Các h thigianthc–Giithiu
Ngô Khánh Hiu
43
S phát trinca các ng dng ca
h điukhin (14/27)
Mts vòng phát trin khác
(5/6)
Mô hình "Sprial"
"Puis, chaque alternative est analysée
sous un point de vue «risques». Des
prototypes, des simulations, seront
préparés afin de résoudre chacun des
potentiels risques. Si tous les risques
sont résolus, le concepteur peut
poursuivre l’étape suivante. Cette étape
correspond à un modèle de vie classique
(en «Cascade» ou en «V» avec

Recherche des fonctionnalités, Analyse
des besoins, Conception Préliminaire,
Conception Détaillée, etc.) modifié pour
incorporer au développement évolutif.
Enfin, les résultats du cycle actuel sont
évalués et un plan est vérifié pour les
cycles successifs"
23
Các h thigianthc–Giithiu
Ngô Khánh Hiu
44
S phát trinca các ng dng cah điukhin (15/27)
Mts vòng phát trin khác
(6/6)
Mô hình "Round-Tripping" caBooch
Lptrình hng đi tng không phi là mt mô hình phát trin đúng ngha cah
điukhin. Nó đc nói đn  đây ch yu nh vào c ch "encapsulation" và c ch
"polymorphisme", cho phép gim đáng k tính phctp (complexité) và gia tng kh
nng tái s dng (réutilisabilité) cachng trình.
"A gauche, nous voyons que les
diagrammes UML sont utilisés
pour l’analyse et la conception
d’un système, tandis qu’à droite le
langage Java est utilisé pour
l’implémentation. Le code Java est
généré à partir des diagrammes
UML, et le «feedback» des
changements de code est renvoyé
aux diagrammes UML."
Các h thigianthc–Giithiu

Ngô Khánh Hiu
45
S phát trinca các ng dng cah điukhin (16/27)
Vòng phát trin "Logiciel/Matériel" c đin
(1/3)
"En informatique industrielle, on parle d’un système temps réel lorsque ce système
informatique contrôle un procédé physique à une vitesse adaptée à l’évolution du
procédé contrôlé. Ce système doit réagir continuellement à des événements en
provenance du procédé contrôlé avec des contraintes temporelles dont le respect est
aussi important que l’exactitude du résultat. Une réaction ne respectant pas son
échéance pourrait causer une catastrophe humaine et financière. Un tel système
comporte deux parties fondamentales: le matériel et le logiciel. Le matériel est la partie
physique (le microprocesseur, la carte d’acquisition, le convertisseur A/D ou D/A, etc.)
permettant de piloter le procédé et de recueillir des informations en provenance de ce
dernier. Le logiciel est un ensemble des éléments informatiques assurant le
fonctionnement du procédé contrôlé. Une part significative du développement d’un
système temps réel consiste à décider des composants matériels et des composants
logiciels du système, ainsi que du choix de quelles parties peuvent être implémentées
comme des logiciels s’exécutant sur des composants programmables et lesquelles
peuvent être implémentées sur des matériels spécifiques."
24
Các h thigianthc–Giithiu
Ngô Khánh Hiu
46
S phát trinca các ng dng cah điukhin (17/27)
Vòng phát trin "Logiciel/Matériel" c đin
(2/3)
Các h thigianthc–Giithiu
Ngô Khánh Hiu
47

S phát trinca các ng dng cah điukhin (18/27)
Vòng phát trin "Logiciel/Matériel" c đin
(3/3)
"L’approche développement
«Matériel/Logiciel» traditionnelle est
une approche très répandue dans le
monde des systèmes embarqués temps
réel. En séparant un tel système en une
partie matérielle et une partie logicielle,
l’approche traditionnelle donne une vue
claire de l’architecture opérationnelle
d’un système temps réel."
"La lacune de l’interaction entre le matériel et le logiciel dans l’approche
traditionnelle peut causer des influences imprévues sur le temps acquis pour
le développement d’un système au point de la livraison («time-to-market»)."
25
Các h thigianthc–Giithiu
Ngô Khánh Hiu
48
S phát trinca các ng dng cah điukhin (18/27)
Vòng phát trin "Logiciel/Matériel en Co-design"
(1/5)
“Logiciel/Matériel en Co-design" nhn mnh s gp nhau cacácmctiêucah
bng cách khai thác s đng thun (synergie) caphn cng (matériel) và phn mm
(logiciel) nh vào quá trình thit k đng thica chúng (conception concurrente).
"Un développement va commencer
avec une notation abstraite telle que
chaque composante ou module est
indépendant(e) de sa réalisation
finale en matérielle ou en logicielle.

Puis, la séparation des composantes
matérielles/logicielles peut être
effectuée de manière la plus
appropriée. L’intégration
«Matériel/Logiciel» est ensuite
complétée par un ensemble des
instructions permettant des tests et
des co-simulations."
Các h thigianthc–Giithiu
Ngô Khánh Hiu
49
S phát trinca các ng dng cah điukhin (19/27)
Vòng phát trin "Logiciel/Matériel en Co-design"
(2/5)
“Logiciel/Matériel en Co-design" thích hp
cho các ng dng mà  đó các yêu cu thit
k có th thay điliêntcvàyu t "time-to-
market" nh hng rt ln đn s thành
công cathit k.
“Logiciel/Matériel en Co-design" phát
trindatrênnn "communication
synchrone dirigée par événements".
S mô t v chc nng cah đcth hin
didng các "graphes orientés", gi là các
CFSMS (Co-design Finite State Machine).
"Un CFSM interprète un ensemble d’entrées en un ensemble de sorties avec un nombre fini
d‘états internes. Mais, contrairement à un FSM traditionnel, un CFSM ne change pas tous ses
états exactement en même temps. La communication entre des CFSMs est réalisée par des
événements unidirectionnels, non zéro et sans bornes de temps (asynchrone globalement)."

×