Sunteți pe pagina 1din 33

Modelarea sistemelor de calcul

Curs, anul III Calculatoare

Simularea sistemelor dinamice cu


evenimente discrete (SDED)
Simularea (Shannon): Procesul construirii
unui model pentru un sistem/proces real si
efectuare de experimente folosind modelul
pentru:
intelegerea comportarii sistemului real
urmarirea evolutiei dinamice a sistemului
evaluarea unor strategii de operare
Modelare i simulare
Model: o reprezentare a unui sistem
n Modelele matematice folosesc notaii simbolice i
ecuaii matematice/ modelele de simulare pot fi
considerate tipuri particulare de modele matematice:
- Deterministe: un set cunoscut de intrri corespunde
cu un set unic de ieiri
- Stochastice: una sau mai multe intrri sunt v.a.,
fapt ce determin ieiri aleatoare
n Modelele fizice, constructive
Modelare: procesul de construire a unui model
Simulare: imitarea modului de operare al unui
sistem sau proces real, de obicei n timp
Modaliti de simulare discret
(stochastic)
Static, de ex. simularea Monte-Carlo
1. Se definete un domeniu al intrrilor posibile
2. Se genereaz aleator intrri din domeniu pe baza
unei distribuii de prob. (cel mai adesea uniform)
3. Se fac calcule deterministe folosind aceste intrri
4. Se agreg rezultatele individuale n cel final
n Ex: valoarea lui /4 este aproximat de raportul ntre
aruncrile ntr-un cerc i cele n ptratul circumscris
Dinamic, de ex. simularea sistemelor dinamice
cu evenimente discrete
Simularea SDED
modalitate sistematic de generare a traiectoriilor
dinamice ale sistemului
producerea unor secvene de ipostaze (imagini)
ale SDED reprezint dinamica (evoluia) in timp
concept important: starea, caracterizat prin
variabilele de stare ce iau valori discrete
n variabilele continue (ex. timpul), nu sunt considerate
independent, ci doar n relaie cu apariia unor
evenimente; ele sunt discretizate si considerate ca
variabile-anexa sau deduse
Starea in simularea SDED
starea fizic cea uzuala in TS, aici tipic discreta
Ex: nr.unitilor din coada unui server intr-o reea de cozi
starea matematic (ipostaza la mom. t), include:
n o informaie completa asupra strii fizice a sistemului
la momentul t
n toate elementele necesare pentru determinarea in
mod unic a evoluiei viitoare a sistemului,
n o lista a evenimentelor viitoare (LEV) ce vor determina
tranziiile de stare
n valori curente ale statisticilor cumulative/contorilor ce
vor fi folosite in calculul statisticilor rezumative finale
Dinamica simulrii SDED
Este determinata de evenimente, ce pot fi:
n externe (ex. sosirea unei uniti in sistem)
n interne (ex. terminarea servirii unui client la un server)
Apariia unui eveniment mpreuna cu ndeplinirea
unor condiii logice (reguli de operare) determina o
tranziie de stare
In noua stare noi evenimente pot fi planificate
Evenimentele existente continua sau vor fi
terminate conform cu LEV
Evenimentele
apariii instantanee care schimb starea sistem
delimiteaz activiti in sistem
pot fi:
n endogene: apariii in interiorul sistemului
n exogene: apar in mediu (in afara sistemului) dar
afecteaz sistemul
in simulare, parametrul timp este doar asociat
apariiei evenimentelor, iar progresia temporala a
simulrii este implicita avansului in procesarea LEV
Simulatoare
un simulator este un program de calculator prin
care se modeleaza:
n comportamentul intern al unui sistem real
n procesele de intrare ce dirijeaza sau controleaza
sistemul simulat
iesirea unui simulator consta intr-un set de
masuratori legate de reactiile observabile si
performanta sistemului real
masuratorile obtinute sunt doar estimatori ai
masurilor reale, deoarece simularea nu are ca
suport sistemul real, ci un model al acestuia
(mai mult sau mai putin fidel)
Metodologii de simulare
Construcia unui simulator se face pe baza unei
metodologii de simulare
simularea condusa de timp implica existenta unui
ceas de timp central avansat cu increment fix
n genereaz algoritmi ineficieni si este mult mai puin
utilizata
n prezint un anumit interes doar in cazul simulrii
paralele (distribuite)
metodologia generala de simulare pentru SDED
este simularea condusa de evenimente
n planificarea corecta a execuiei evenimentelor impune
cu necesitate includerea lor intr-o lista ordonata dup
timpii de apariie ai evenimentelor (LEV)
Abordri in simularea SDED
Planificarea de evenimente
n impune ca atunci cnd o activitate ncepe, durata ei
sa fie calculata (sau generata aleator) si evenimentul
ei de sfrit sa fie plasat in LEV
n se definesc schimbri de stare pt. fiecare eveniment
n mecanismul de avans temporal si garantarea apariiei
cronologice a evenimentelor e complet bazat pe LEV
Interaciunea proceselor
n se descriu procesele asociate cu entitile acestea
pot fi permanente sau temporare
n simularea se constituie ca un ansamblu de procese
n mai multe procese pot fi simultan active in model si
interaciunea dintre ele poate fi complexa
Cum decurge simularea dirijat
de evenimente...
LEV, meninuta ordonata, se compune din:
n evenimentul iminent" - cel aflat in fruntea

listei, ce poate fi deja in curs de tratare


n celelalte evenimente (poteniale), numite

astfel deoarece ele pot decalate, modificate


sau chiar anulate prin simularea evenimentului
iminent
Activitate" in cadrul simulrii - apariia unui
eveniment, urmata de tratarea lui, prin care se
modifica starea sistem si (potenial) LEV
... pentru un sistem simplu de ateptare
Compus dintr-o coada de dimensiune maxima
n=500 si un server
COADA SERVER

Sosirea clienilor
Clieni in Client in Plecarea clienilor
ateptare servire

Va fi considerat complet stochastic:


n Procesul de sosire este aleator
n Timpul de servire este aleator
Definire sistem si obiective
Entiti: Clieni, Coada, Server
n nu este necesara reprezentarea explicita a clienilor
(individualizarea lor)
Evenimente: sosire client, plecare client
Date colectate
Utilizare server
Lungimea maxima a cozii

Timp de ateptare client(i)

Timp de rspuns al sistemului

Procentajul clienilor ce ateapt peste o valoare prag


Definirea statica a modelului
Starea sistem este descrisa de variabilele:
n lqt=numrul de clieni aflai in coada de ateptare la un
moment dat
n lst=numrul de clieni aflai in servire la un moment dat, 1 sau
0 (sau starea serverului, ocupat sau liber)
Evenimente:
n sosirea unui client in sistem;
n plecarea unui client din sistem prin terminarea servirii sale;
Activiti:
n timpul ntre sosiri, definit de o tabela ce se genereaz aleator
n timpul de servire, definit in acelai mod
ntrzieri: ateptri in coada, pana serverul devine liber
Descrierea dinamica a modelului
Cum afecteaz fiecare eveniment starea sistem,
atributele entitilor, coninutul seturilor?
Cum sunt activitile definite (determinist, probabilistic,
printr-o ecuaie matematica)?
Care sunt evenimentele de nceput/sfrit al activitii?
Poate o activitate ncepe indiferent de starea sistem,
sau este condiionata de starea sistem?
Care sunt evenimentele de nceput/sfrit al fiecrui tip
de ntrziere?
Care sunt condiionrile pentru ca o ntrziere sa
nceap" sau sa se "termine"?
Care este starea sistemului la momentul iniial?
Ce evenimente "primare" trebuie generate la momentul
iniial pentru ca simularea sa poat ncepe?
Dinamica simulrii in interaciunea
proceselor
Se identifica entitile caracteristice in sistem
Pot coexista, interaciona si intra in competiie
multiple copii ale entitilor
Codul de simulare este non-procedural: in mod
separat, se descriu entitile tipice
Pot exista multe tipuri de entiti, inclusiv cele
de excepie (de ex. pentru tratarea defectelor)
Este de obicei necesar un soft specializat
n Altfel, se recurge la serializare si planificare de
evenimente
n Oricum, eficiena este mai sczuta in cazul execuiei
secveniale
Diagrama proceselor asociate entitilor

Creare Nod Nod in Coada Terminare Nod

Activitate Servire

Aceasta tehnica este adecvata cnd rezolvarea


unei probleme este echivalenta cu descrierea
unor activiti relativ independente desfurate
in paralel, dar care comunica si interacioneaz
pe parcursul execuiei lor
18
Fazele unui studiu de simulare
Faza de planificare
a) Specificarea problemei
intrebari esentiale: Ce se cere? La ce va folosi?
uneori se poate formula doar obiectivul atasat unei
descrieri vagi a procesului studiat
b) Estimarea resurselor
implica alegerea modalitatii de abordare, studii de
fezabilitate, evaluarea costurilor de timp si personal,
ca si stabilirea graficului de derulare a activitatilor
c) Analiza sistemului si a datelor
se identifica diversele nivele de detaliere necesare
Faza de modelare
Consta in:
a) Construcia modelului: pot exista mai multe
modele candidate, trebuie ales unul
b) Colectarea datelor: datele reale permit
identificarea modelului adecvat
c) Translaia modelului: codificarea intr-un
program ("model programat")
Faza de verificare/validare (1)
Verificarea consta in depanare si testare program
Validarea este mai ampla la ntrebarea reflecta
programul in mod fidel sistemul? rspunsul e DA
numai daca se respecta cteva principii de lucru
In dezvoltarea unui model valid asociat datelor de
intrare distingem urmtorii pai:
a. colectarea datelor brute din sistemul studiat
b. identificarea distribuiei statistice a datelor, prin:
- construirea distribuiei frecveniale a datelor de intrare
(histograma);
- asumarea unei presupuneri distribuionale (in practica apar mai
frecvent doar cteva distribuii standard)
Faza de verificare/validare (2)
Pai in validare (cont.):
c. estimarea parametrilor distribuiei asumate
d. testarea concordantei intre distribuia asumata (cu
parametri estimai) si datele de intrare, folosind:
testul 2
testul Kolmogorov-Smirnov
Daca testul de concordanta eueaz, ipoteza c datele
urmeaz legea distribuionala propusa trebuie respinsa
si se ncearc o noua ipoteza distribuionala (se reia cu
pasul b)
Daca mai multe iteraii ale acestei proceduri eueaz
in gsirea unei concordante intre distribuia asumata si
datele colectate, trebuie folosita distribuia empirica
Faza de execuie
Consta in:
a) Proiectarea experimentelor: se aleg execuii
generice
b) Experimentare: se executa programul cu date
reale!
c) Analiza: se interpreteaz rezultatele
d) Implementarea/Documentarea:
cum se implementeaz deciziile rezultate din simulare?
cum se documenteaz modelul in vederea reutilizrii?
Msurtori de performan
Fundamentale sunt rspunsurile la cteva ntrebri:
Ce alternative se simuleaz (se executa)?
Cat de lunga este o execuie?
Ce se msoar?
Maximul, minimul, totalul, media, varianta, momente de
ordin superior, distribuii specifice de frecventa, timpii
intre sosiri, timpii de servire, lungimi ale cozilor, rate de
pierdere sau eroare etc.
Care sunt proprietile (statistice) ale "masurilor"
de care suntem interesai?
Sunt necesare si alte execuii? Trebuie schimbat
modelul? Trebuie schimbai parametrii?
Planificarea de evenimente
Rmne cea mai adecvat programrii standard,
si cea mai eficienta in cazul execuiei secveniale
Se utilizeaz de obicei funcii de biblioteca pentru
n Prelucrarea listelor
n Generarea numerelor aleatoare
n Generarea variabilelor aleatoare
n Colectarea statisticilor
n Managementul (ordonarea) LEV si ceasului de timp
Nod de sincronizare" - ansamblul procedurilor ce
implica ntreinerea LEV (adugarea, suprimarea
sau modificarea de evenimente)
Ipostaza sistem tipica
Exemplu numeric
Timpi
Timp Unit Timp Unit Timp ncep Timp Termin
Unit ntre
sosire servire sosire servire servire servire
sosiri

1 - 0 1 2 1 0 0 2 2

2 2 2 2 1 2 2 2 1 3

3 4 6 3 3 3 6 6 3 9

4 1 7 4 2 4 7 9 2 11

5 2 9 5 1 5 9 11 1 12

6 6 15 6 4 6 15 15 4 19
Algoritmul de planificare evenimente/
avans al timpului simulrii
1) Scoaterea evenimentului iminent din LEV
2) Avansul ceasului sistem (CLOCK) la momentul
apariiei evenimentului
3) Execuia evenimentului iminent
actualizarea strii sistemului, a atributelor entitilor
sistemului, a seturilor
4) Generarea evenimentelor viitoare si plasarea lor
in LEV in poziia corecta
5) Actualizarea rezultatelor cumulative si statistice
Tratare eveniment sosire client
Planifica urmtoarea sosire

Server ocupat?
Nu Da

Plaseaz clientul sosit in coada


Ocupa server

Planifica eveniment de plecare client

Return
Tratare eveniment plecare client
Coada vida?
Nu Da

Selecteaza client din coada Elibereaza serverul


pentru servire

Actualizeaza statisticile pentru server


Actualizeaza statisticile pentru coada
si noul client in servire

Colecteaza datele pentru clientul


care pleaca
Planifica evenimentul de plecare

Return
Programarea modelului
Poate fi fcuta intr-un limbaj procedural (C)
Proiectul C (anexat) e compus din fiierele sursa:
n "sp.c: simulatorul principal, ce conine rutinele de
iniializare, avans timp, tratare a evenimentelor si
generare a rapoartelor
n "rndevg.c: conine rutine pentru generarea
distribuiilor statistice
n "rndevg.h: fiierul header ce conine definiiile de
prototipuri si constante
Un numr de 10 execuii fr modificarea
parametrilor modelului permite o analiza simpla
Execuia modelului programat
Valoarea de Utilizarea Lungimea Timpul total % clientilor ramasi Timpul de Numarul
start (seed) serverului maxima a al simularii > 4 min.n sistem raspuns plecarilor din
(%) cozii (min.) mediu (min.) sistem

61011 72.55 13 44095.2 71.47 3.2 10 000

61136 70.65 16 45352.9 70.59 3.2 10 000

61190 71.47 11 44751.2 71.08 3.2 10 000

61209 71.39 20 44774.6 71.07 3.2 10 000

61225 72.11 11 44569.0 71.45 3.2 10 000

61237 70.95 13 45121.3 70.01 3.2 10 000

61249 72.03 11 44461.9 70.73 3.2 10 000

61265 72.25 10 44412.3 71.32 3.2 10 000

61280 71.40 16 44675.1 71.23 3.2 10 000

61299 71.57 14 44909.6 71.07 3.2 10 000

Media 71.64 13.5 44712.3 71.002 3.2 10 000

Abaterea 0.564 2.94 343.1 0.426 0 0

S-ar putea să vă placă și