Performanta A Sistemelor De Calcul Fundamente Teoretice [621959]
2016
Maștei Daniela
PERFORMANȚA SISTEMEL OR DE CALCUL –
FUNDAMENTE TEORETICE
Cuvânt înainte ,
Lucrarea de față oferă baza teoretic ă pentru însușirea
definițiilor și noțiunilor teoretice aferente domeniului, n ecesare
abordării în continuare a exemplelor și studiilor de caz de la
curs prin aplicațiile practice de la laborator.
Utilitatea este dată și în cazul în care cititorul folosește
instrumente software de evaluare a performanțelor .
Deasemenea, uneori inginerii de calculatoare trebuie să
folosească asemenea instrumente, caz în care pot apela la acest
material pentru o abordare și înțelegere ușoară a noțiunilor și
terminologiei specifice domeniului .
CAPITOLUL 1
INTRODUCERE
Evaluarea de performanță este definită în [1] ca având țintă
analiza și optimizar ea comportamentului dinamic al sistemelor
de calcul și de comunicație. Această analiiză presupune și
investigarea fluxului de date și a informației de control între
componentele unui sistem sau în interiorul acestora pentru a
înțelege comportamentul sistem ului și de a identifica aspectele
care îi afectează performanța.
Evaluarea performanțelor s-a de zvoltat în ultimii ani, ca
disciplină în știința calculatoarelor. Dacă inițial analiza se făcea
pe baza observării comportamentului unor sisteme, de regulă
prin măsurători, urmată apoi de dezvoltarea unor teorii car e să
explice acest comportament, actualmente s-a modificat rolul
măsurătorilor și anume din acela de observare pur
fenomenologică, în acela de estimare a parametrilor pe baza
unor modele.. La început , evaluarea de performanță s e focaliza
asupra sistemelor de calcul și a comunicațiilor, acum însă,
domeniul acesteia cuprind e arhitectura procesoarelor,
arhitecturile paralele și distribuite, sistemele de operare, cele de
baze de date, sistemele client -serve r, tolerante la defecte și cele
în timp real .
Evaluarea de performanță este necesară în toate etapele ciclului
de viață ale unui sistem de calcul: proiectare, producție,
2
vânzare/cumpărare, utilizare și îmbunătățire (upgrade).
Tipurile de aplicații fiind foarte numeroase, se pune problema
identificării unei măsuri, mediu sau aplicație de măsură .
Activitatea derulată în analiza de performanță mai are drept
scop și găsirea posibilităților de standardizare a tehnicilor.
Tehnicile de evaluare a performanțelor, pot fi clasificate
conform cu [2], în două arii principale, numite măsurare și
respectiv, modelare .
Tehnica de măsurare dispune de trei direcții:
• Măsurări – acestea se realizează pe sisteme reale, în
condiții de operare reale, oferind astfel cifre foarte exacte
cu privire la sistemele specifice aflate în studiu și de
asemenea, cu privire la încărcarea lor. Una dintre metodele
de măsurare este cea de monitorizare. Monitorul reprezintă
un instrument de observare a activită ților într -un sistem, de
interpretare și prezentare a acestora, utilizat atât de analiștii
de performanță cât și de programatorii și managerii de
sistem. Monitorizarea sistemelor de calcul permite găsirea
segmentelor de software frecvent utilizate pentru
optimizarea performanțelor acestora, se pot măsura
utilizările resurselor și gâtuirile de performanță, permite
ajustarea parametrilor sistem în scopul îmbunătățirii
performanței acestuia, poate fi folosită în caracterizarea
încărcării de lucru și, pot fi gă siți parametri pentru
modelarea și validarea sistemului și intrări pentru model.
Rezultatele monitorizării se pot utiliza pentru planificarea
capacității și crearea încărcărilor de lucru de test.
Clasificarea se poate face pe baza unor caracteristici cum
3
ar fi: nivelul de implementare, mecanismul de declanșare
și capacitatea de afișare a rezultatelor.
• Benchmarking – când este necesară compararea
performanțelor diferitor sisteme, este necesară măsurarea
pe diferite mașini, având aceeași încărcare de lucru.
Încărcările de lucru artificiale (aplicații selectate sau unele
special construite) se numesc benchmark -uri iar tehnica se
numește benchmarking. Activitatea de benchmarking este
destinată să măsoare sistemele noi raportat la un punct de
referință al sistemu lui curent. Benchmark -urile sunt
programe standardizate care dispun de o istorie a datelor de
măsură (în general temporizări) pentru execuția unor
programe care au o intrare definită specific și ieșirea
repetabilă. Benchmarking este implicat în principal î n
măsurători de performanță, procesul de evaluare a
performanței însă, implică și luarea de decizii cu privire la
datele de benchmark care trebuie colectate și a modului de
utilizare al acestora pentru rezolva problemele de
performanță specifice.
• Crearea de prototipuri – când studiul de performanță se
efectuează pentru sisteme care încă nu sunt disponibile,
este necesar fie să se construiască prototipuri, fie să se
utilizeze modele. Prototipurile sunt aproximări ale
sistemelor reale, care pot fi folosite p entru realizarea de
măsurători, uneori chiar cu programe de benchmark. În
proiectarea sistemelor de calcul, dacă trebuie incluse
obiective de performanță, este necesară o evaluare
preliminară a alternativelor, situație în care tehnicile de
4
benchmarking și măsurare, nu pot fi abordate. Prototipurile
au o utilizare redusă deoarece detaliile care trebuiesc
definite în această fază de proiectare sunt încă neclare.
Modelele se pot împărți în :
modele de simulare Modelele de simulare sunt programe
în care comp ortamentul sistemului și încărcarea sunt
descrise algoritmic. În general, în construirea acestor
modele sunt implicate limbaje speciale de nivel înalt, ale
căror indici de performanță sunt obținuți prin
monitorizarea execuției programelor.
modele analitice – descriu operațiile și încărcarea
sistemului în termeni matematici . Estimările de
performanță sunt obținute prin soluția analitică sau
numerică a modelului matematic.
Cele mai multe probleme de performanță sunt unice. Metricile,
încărcarea de lucru și t ehnicile de evaluare utilizate pentru o
problemă, nu pot de regulă să fie folosite și pentru următoarea.
Conform [2], pașii comuni în evaluare sunt următorii:
1. Stabilirea scopului și definirea sistemului – se stabilește
scopul st udiului și se defin ește sistemul (diferit funcție de
scopurile studiului) , stabili ndu-se limitel e acestuia
Alegerea limitelor sistemului afectează atât metricile de
performanță cât și încărcările de lucru utilizate pentru
compararea sistemelor.
2. Stabilire a serviciilor și a rezultatelor -fiecare sistem
furnizează un set de servicii și corespunzător, un set de
5
rezultate posibile. Lista acestora este utilă în selectarea
corectă a metricilor și a încărcărilor de lucru.
3. Selectarea metr icilor – legată de alegere a criteriilo r de
comparare a performanțelor, criterii numite metrici. În
general, sunt legate de viteza, acuratețea și disponibilitatea
serviciilor.
4. Lista de parametri – poate fi împărțită în parametri sistem
și de încărcare de lucru. Parametri sistem îi includ atât pe
cei soft cât și pe cei hard, care de regulă nu prea variază în
timpul diverselor instalări ale sistemului. Param eterii de
încărcare sunt specifici cerințelor utilizatorilor și diferă de
la o instalare la alta.
5. Selectarea factor ilor de studi at – Lista parametrilor poate
fi împărțită în două părți: cei care vor fi modficați în cursul
evaluării și cei care rămân la aceeași valoare. Parametrii
care sunt de modificat, se numesc factori iar valorile lor se
numesc nivele. Este bine să fie aleși ca factori p arametrii
considerați cu influență mare asupra performanței.
6. Alegerea tehnicii de evaluare – tehnicile de evaluare sunt:
modelarea analitică, simularea și măsurarea unui sistem
real. Selecția tehnicii adecvat e depinde de timpul și
resursele dispo nibile pentru rezolvarea problemei și a
nivelului de acuratețe dorit.
7. Alegerea încărcării de lucru – încărcarea de lucru constă
dintr -o listă de cereri de servicii către sistem.
8. Experimente de proiectare – când lista de factori și nivelele
lor există, t rebuie ales setul de experimente care să ofere
maximum de informație .
9. Analiza și interpretarea datelor – este important de
menționat faptul că rezultatele măsurătorilor și ale
6
simulărilor sunt cantități aleatoare (în sensul că rezultatele
vor fi diferite la fiecare repetare a experimentului ). În
compararea a două alternative, este necesar să se țină cont
de variabilitatea rezultatelor. În ceea ce privește
interpretarea, trebuie ținut cont de faptul că analiza oferă
rezultate și nu concluzii. Concluziile se bazează pe
rezultate .
10. Prezentarea rezultatelor – comunica rea rezultatel or
celorlalți membri ai echipei de decizie. Este important ca
prezentarea să se facă într -o manieră ușor de înțeles.
Aceasta necesită de regulă prezentarea datelor sub formă
grafică.
ALEGEREA METRICILOR D E PERFORMANȚĂ
Pentru fiecare studiu de performanță, trebuie ales un set de
metrici pornind de la lista serviciil or oferite de sistem. Pentru
fiecare cerere de serviciu, exist ă mai multe rezultate posibile
care pot fi clasificate în funcție de felul în care se încheie
serviciul : corect, incorect sau refuzat .
Dacă este efectuat corect , performanța este măsurată de :
– durata necesară îndeplinirii serviciului ;
– rata la care serviciul este rulat ;
– resursele consumate pe durata îndeplinirii lui .
Aceste metrici sunt: viteza de reacție (responsivness),
productivitate a și utilizare a.
Efectuat incorect – s-a produs o eroare. Este util să se realizeze
clasificarea erorilor și determinarea probabilităților pentru
fiecare clasă.
7
Nu s-a efectuat deloc – a avut loc o cădere, defect sau sistemul
este indisponibil.
Metricile asociate acestor situații sunt: viteză, fiabilitate și
disponibilitate. În cazul sistemel or de calcul partaja te între mai
mulți utilizatori, se poate vorbi despre metrici individuale ș i
globale.
METRICI DE PERFORMAN ȚĂ
Timpul de răspuns – intervalul între cererea utilizatorului și
răspunsul sistemului .
Timpul de răspuns poate fi definit ca fiind :
a. Intervalul dintre sfârșitul emiterii unei cereri și
începutul răspunsului corespunzător din partea
sistemului ;
b. Intervalul între sfârșitul emiterii cererii și
finalul răspunsului corespunzător din partea
sistemului.
Timp de reacție – durata dintre emiterea unei cereri și
începerea execuției sale de către sistem.
Debitul – rata la care sistemul po ate servi cererile .
Capacitatea nominală a sistemului – debitul maxim
care se poate atinge în condiții de încărcare ideală.
Capacitate a utilizabilă – debitul maxim care poate fi
atins fără a se depăși un timp de răspuns prestabilit .
Eficiența – raportul dintre debitul maxim care se poate obține
(capacitate utilizabilă) și capacitatea nominală.
Utilizarea unei resurse – măsurată în fracțiuni de timp în care
resursa este ocupată cu deservirea unei cereri.
8
Fiabilitatea unui sistem – măsurată de probabilita tea erorilor
sau, durata medie dintre erori (secunde fără erori).
Disponibilitatea – fracțiunea de timp în care sistemul este
disponibil pentru deservirea cererilor utilizatorilor.
CLASIFICAREA METRICI LOR DE PERFORMANȚĂ DUPĂ
UTILITATE
1. Higher is Better (HB ) – sunt preferate valori mai mari
pentru metrici;
2. Lower is Better (LB) – sunt preferate valori mai mici ;
3. Nominal is Better (NB) – sunt nedorite atât valorile mici
cât și cele mari și sunt preferate valorile de mijloc . [2]
Dintre măsurile sau indicii de performanță cel mai des utilizate
în caracterizarea comportamentului unui sistem sunt: timpul de
răspuns, debitul și utilizarea. Fiecare dintre acestea pot fi
privite ca variabile aleatoare ale unui model.
• Timpul de răspuns este o estimare a timpului care se scurge
între sosirea unei cereri și încheierea servirii acesteia de
către sistem ;
• debitul este definit de numărul de cereri satisfăcute în
unitatea de timp iar
• utilizarea reprezintă procentul de timp cât sistemul este în
lucru.
Într-un model este important ca timpul de răspuns și cererea să
fie definite precis, în funcție de sistem și de scopul studiului.
[2], [3]
9
CAPITOLUL 2
TEHNICI DE MĂSURARE
BENCHMARKING
Dat fi ind faptul că implică execuția programelor pe sisteme
reale este probabil cel mai des utilizată metodă de analiză de
performanță. Principalul avantaj al acestei tehnici este acela că
permite măsurarea sistemului ca întreg. Execuția unor
programe reale eval uează toate aspectele necesare, inclusiv
cele legate de arhitectura sistemelor, eficiența compilatoarelor,
consumui suplimentar de resurse la sistemelor de operare, etc.
Caracterizarea componentelor individuale este utilă dar
insuficientă pentru a caracter iza performanța întregului sistem.
Este foarte dificil de a prognoza consecințele interacțiunilor
dintre componentele unui sistem. Pentru a obține rezultate de
încredere trebuie ținut cont de anumite aspecte. Primul este
acela de portabilitate, nu doar de cod ci și de performanță.
Spectrul larg al sistemelor de calcul face foarte complicată
proiectarea programelor care să producă cea mai bună
performanță pentru toate arhitecturile comparate. Pentru a
putea realiza compararea sistemelor prin intermediul tehn icilor
de benchmarking se impune proiectarea unot metode portabile.
O altă problemă importantă este cea a reprezentativității.
Programele utilizate pentru benchmarking se presupune a
10
reprezenta o familie mai mare de programe, în special din
punctul de vede re al performanței. O problemă legată de
reprezentativitatea unui benchmark, este cea a învechiri i.
Evoluția p ermane ntă a sistemelor de calcul și a tehnicilor de
programare a determinat o necesitate de revizuire permanen tă
a factorilor de performanță pentru a menț ine benchmarkuril e in
actualitate .
În ciuda problemelor legate de portabilitate și
reprezentativitate, variantele existente au jucat un rol important
în compararea performanțelor diferitor sisteme de calcul.
Tehn icile de benchmarking nu sunt suficient de precise pentru
a fi un ajutor în obținerea unor prognoze de performanță.
Informația furnizată de un benchmark nu este de regulă
suficientă pentru a explica performanța pe care utilizatorii o vor
obține cu aplicați ile lor. Este de dorit să se furnizeze nu numai
informația ci și să se identifice cele mai probabile surse a
diferențelor de performanță.
O abordare răspândită este cea a tehnicilor de benchmarking
stratificate respectiv, executarea unor benchmarkuri de di verse
niveluri de complexitate.
MONITOARE
Monitorul [4] reprezintă un instrument de observare a
activităților într -un sistem (proces de colectare dinamică a
informațiilor), interpretare și prezentare a acestora, utilizat atât
11
de analiștii de performanță cât și de programatorii și managerii
de sistem. Motivele de monitorizare a sistemelor:
– se pot găsi segmentele de software frecvent utilizate și se
pot optimiza performanțele acestora.
– se pot măsura utilizările de resurse și gâtuirile de
performanță.
– se pot ajusta parametrii sistem pentru a îmbunătăți
performanța .
– poate fi folosită pentru a caracteriza încărcarea de lucru.
Rezultatele pot fi utilizate ulterior, pentru planificarea
capacității și pentru crearea încărcărilor de lucru de test.
– pot fi găsiți parametri pentru modelarea sistemului,
validarea modelului ș i dezvoltarea de intrări pentru acesta.
În concluzie, monitorizarea reprezintă primul pas în măsurările
de performanță.
Terminologie utilizată în monitorizare :
– Eveniment: O schimbare în starea sistemului.
– Trace: Este o înregistrare de evenimente, incluz ând uzual
durata unui eveniment, tipul evenimentului și alți parametri
importanți, asociați acestuia.
– Consum suplimentar de resurse (overhead): Cele mai
multe monitoare influențează activitatea sistemului
12
(consumă resurse sistem). Scopul este de a se reduc e la
maxim acest consum de resurse.
– Domeniu: Setul de activități observabile de un monitor.
– Rata de intrare: Frecvența maximă a evenimentelor pe care
le poate observa corect un monitor. În general, sunt
specificate două rate de intrare: mod burst și susți nut. Rata
modului burst specifică rata la care poate apărea un
eveniment cu o durată scurtă. Este mai ridicată decât cea în
mod burst, pe care monitorul o poate tolera pe o durată
mare.
– Rezoluția: acuratețea cu care poate fi observat un
eveniment.
– Lățimea intrării: Numărul de biți de informație înregistrați
într-un eveniment. Aceasta, împreună cu rata de intrare
determină stocarea necesară pentru păstrarea
evenimentelor.
CLASIFICAREA MONITOA RELOR
Sunt clasificate pe baza unor caracteristici cum ar fi : nivelul de
implementare, mecanismul de declanșare și capacitatea de
afișare a rezultatelor.
13
În funcție de nivelul de implementare se clasifică în : soft,
hard, rezidente (firmware) sau hibride.
În funcție de mecanismul de declanșare se clasifică în :
declanșate de evenimente – Monitorul declanșat de
evenimente este activat doar la producerea anumitor
evenimente, ne -existând astfel consum suplimentar de
resurse (dacă evenimentele se produc rar).
de temporizare (de eșantionare). Monitorul de
eșanti onare este activat la intervale fixe de timp, prin
întreruperi de clock. Sunt utile în cazul evenimentelor
cu frecvență mare de apariție.
În funcție de posibilitățile de afișare a rezultatelor , pot fi :
on-line – pot afișa starea sistemului fie continuu, fie la
intervale frecvente de timp.
pe loturi – colectează datele, care pot fi analizate
ulterior cu ajutorul unui program de analiză separat.
În funcție de nivelul pe care sunt implementate , se pot clasifica
în monitoare :
Software
Monitoarele soft ware au în general rate de intrare reduse,
rezoluție mai mică și consum suplimentar de resurse mai
mare decât monitoarele hard. Totuși, au lățimi de intrare
mai ridicate și capacitate de înregistrare mai mare decât
14
cele hard; sunt de asemenea mai ușor de dezvo ltat și
modificat dacă este necesar.
În proiectarea monitoarelor soft ware trebuie ținut cont de :
Mecanismul de activare – modul de declanșare a rutinei
de colectare a datelor. Mecanisme:
o Instrucțiuni de tip trap – reprezintă un
mecanism de întrerupere soft care transferă
controlul unei rutine de colectare a datelor..
o Mod trace – se schimba starea procesorului. În
acest mod, disponibil pe multe procesoare,
execuția instrucțiunii este întreruptă controlul
fiind cedat unei rutine de colectare a datelor.
Consumul suplimentar este foarte ridicat fiind
prin urmare aplicată numai în cazurile în care
nu trebuie măsurat timpul dintre evenimente
o Întreruperi de temporizare – este folosit
serviciul de întrerupere de temporizare
disponibil sistemului de operare, pentru a
transfera controlul (la intervale de timp fixate),
unei rutine de colectare a datelor. Acest
mecanism, numit eșantionare, este potrivit
pentru evenimentele frecvente, deoarece
consumul suplimentar este independent de rata
evenimentelor.
Dimensiunea buff erului: Cele mai multe monitoare
înregistrează datele în buffere, după care sunt înscrise
pe un support de stocare . Dimensiunea bufferului ar
trebui să fie astfel încât frecvența scrierilor în memorie
să fie cât mai mica și să asigure că durata înscrierilo r
15
în memorie să fie practic imperceptibilă pentru
celelalte operații sistem care necesită memorare.
Numărul de buffere: Bufferele sunt organizate de
regulă în inel, astfel încât procesul de înregistrare
(golirea bufferelor) să -l urmeze pe cel de monitoriz are
(umplere a bufferelor) cât mai repede posibil.
Depășire buffer: există probabilitate a de umplere a
bufferelor, chestiune care trebuie semnalată ca
depășire de buffer . Procesul de monitorizare va trebui
ori să supraînscrie un buffer, ori să -și oprească
activitatea până un buffer devine disponibil. În
asemenea situații , se pi erde o cantitate de informație.
Comprimarea datelor sau analiza: Este posibil ca
monitorul să proceseze datele pe măsură ce le observă.
Comutatoare On/Off: Monitoarele hard au de ob icei
posibilitatea de a fi activate sau nu. Un monitor soft
trebuie să aibă declarații similare (if..then), pentru ca
să poată fi activate sau dezactivate cu ușurință.
Limbajul: Cele mai multe sunt scrise într -un limbaj de
nivel coborât, limbaj de asamblar e, Bliss, C, pentru a
păstra consumul suplimentar la minimum. Cum
monitorul este de regulă, parte a sistemului
monitorizat, este bine să se folosească același limbaj.
Prioritate: Dacă monitorul rulează asincron,
prioritatea trebuie să fie redusă, pentru ca operațiile de
bază ale sistemului să fie cât mai puțin afectate. Dacă
însă timpul observărilor și al înregistrării
evenimentelor este important, prioritatea ar trebui să
fie mare, pentru ca întârzierea în execuție să nu
16
producă o deplasare semnificativă a valorilor de timp
înregistrate.
Hardware – constă din elemente de echipament distincte,
atașate sistemului monitorizat prin sonde . Acest tip de
monitorizare nu consumă nici un fel de resurse sistem.
Elemente de bază pentru monitorizare a hardware:
sonde de înaltă impedanță pentru a observa semnale în
puncte de interes din hardware -ul sistemului de testat,
contoare – incrementate sau decrementate când se
produce un eveniment de interes,
elemente logice – semnalele de la mai multe sonde pot
fi combinate pr in intermediul porților logice în unități
funcționale folosite pentru a indica evenimentele care
pot incrementa contoarele,
comparatoarele – se folosesc pentru a compara
conținutul contoarelor și să testeze îndeplinirea
anumitor condiții,
hardware de mapar e: Permite calcularea
histogramelor cantităților observate. Constă din mai
multe comparatoare și contoare,
temporizarea: utilizată pentru marcarea timpului sau,
pentru declanșarea unei operații de eșantionare,
dispozitive de stocare : cele mai multe dispun de stocare
inclus ă pentru păstrarea datelor de măsurare.
De regulă se livrează și biblioteci cu puncte de test pentru
diferitele sisteme care pot fi observate prin intermediul
monitoarelor.
17
Rezidente (firmware) și hibride. Cele rezidente sunt
implementa te prin modificarea microcodului procesorului.
Sunt utile în situația în care consider entele de timp exclud
folosirea unor monitoare soft și inaccesibilitatea punctelor
de test, exclude posibilitatea utilizării monitoarelor hard.
Monitorul care este o comb inație de hard, soft și rezident
este unul hibrid.
18
CAPITOLUL 3
MODELAREA ANALITICĂ
Modelele pot fi deterministe sau probabiliste . În ultimul caz,
este descris un număr foarte mare de fenomene care au loc în
sistem, prin intermediul presupunerilor prob abiliste
macroscopice, neglijând detaliile de comportament actuale.
Această abordare poate fi avantajoasă din mai multe motive:
detaliile pot să nu fie complet cunoscute la momentul
dezvoltării modelului; includerea în model a tuturor detaliilor
de comport ament poate conduce la o complexitate ne –
administrabilă; utilizarea unor modele simple și necostisitoare,
poate oferi suficientă acuratețe în evaluarea performanțelor în
fazele incipiente de proiectare.
Dezvoltarea unui model de simulare poate porni cu apr oape
orice restricție asupra structurii sistemului. Un model de
simulare trebuie totuși să fie mai detaliat decât unul analitic,
dar este deseori mai puțin general și versatil. Mai mult,
simularea este o tehnică scumpă care necesită timp de
calculator lung pentru estimarea credibilă a indicilor de
performanță.Într -adevăr, natura de eșantion a simulării cere ca
intervalele de încredere să fie calculate pentru fiecare estimare
de performanță, utilizând metode care pot fi greu aplicabile.
Dezvoltarea unui model analitic, necesită deseori utilizarea
unui nivel de abstractizare mai înalt (decât cel cerut de
19
simulare), datorită faptului că pentru a putea rezolva modelul,
trebuiesc acceptate anumite restricții. În cazurile mai simple
este posibilă obținerea unor soluții de formă apropiată, utile în
studiul im pactului pe care diferiți parametri ai modelului îl pot
avea asupra indicilor de performanță, adică să se realizeze o
analiză de finețe. În cazurile mai complexe, soluția modelului
poate fi obținută doar numeric, iar analiza de finețe poate fi
făcută doar cu ajutorul unui număr mare de soluții numerice,
calculate pentru diferite valori ale parametrilor modelului. În
cazuri extreme, complexitatea de calcul, necesarul de memorie
și problemele numerice, pot face ca soluția modelului analitic
să fie mai volumi noasă și mai scumpă decât simularea.
O clasă de modele larg folosită datorită complexității
matematice limitate, se bazează pe teoria unei subclase a
proceselor stochastice, numită lanțuri Markov . O limitare în
utilizarea modelelor markoviene în sistemele de calcul
complexe, provine din faptul că construcția lor directă, necesită
deseori o bună cunoaștere a rezultatelor teoriei de bază. Într –
adevăr, în aceste cazuri, este necesar să fie identificate toate
stările sistemului și probabilitătea cu care sistemu l trece de la o
stare la alta.
O abordare mai convenabilă este aceea a utilizării unor
instrumente de nivel înalt pentru descrierea modelelor. Cele
mai bune sunt: rețelele cu cozi (queuing networks) și rețelele
Petri stochastice (stochastic Petri nets ). Avantajul acestora este
acela că permit un mod mai natural de construire a
componentelor sistemului și a regulilor de operare: modelul
este specificat într -o formă mai degrabă grafică decât
20
matematică. Ambele metode au la bază modelele markoviene
dar, proi ectantul de sistem nu trebuie să cunoască teoria și
metodele care sunt necesare pentru obținerea soluției
sistemului. Pachetele de programe disponibile, oferă o interfață
grafică prietenoasă, care ascunde aceste detalii și rezolvă
matematic modelul markovi an, după ce -l generează automat,
pe baza descrierii modelului. Rețelele cu cozi oferă avantajul
de a putea obține direct, în multe cazuri, soluția modelului
închis fără a rezolva modelul markovian de bază. Rețelele
stohastice Petri, permit o reprezentare n aturală a paralelismului
și a sincronizării, ceea ce la face foarte utile în evaluarea de
performanță în sistemele multiprocesor.
Tehnicile de evaluare a performanțelor, pot fi clasificate
conform cu [2], în două arii principale, numite măsurare și
respectiv, modelare .
Modelul oricărui sistem de calcul, constă în general din două
părți: descrierea arhitecturii și definirea încărcării pentru care
trebuie obținute previziunile de performanță. Pentru
dezvoltarea unui model este foarte important modul în c are se
alege nivelul de abstractizare utilizat pentru descrierea
sistemului; modul de selectare a caracteristicilor care vor fi
incluse în model; calea de asignare de valori numerice
parametrilor modelului și definirea indicilor de performanță
adecvați.
În procesul de modelare, caracteristicile sistemului de modelat
trebuie să fie alese cu grijă, pentru ca modelul să asigure
descrierea sistemului fără a se introduce o complexitate inutilă.
21
Clasificarea modelelor:
modele de simulare Modelele de simulare s unt programe
în care comportamentul sistemului și încărcarea sunt
descrise prin utilizarea unor algoritmi corespunzători. În
general, în construirea acestor modele sunt implicate
limbaje speciale de nivel înalt, ale căror indici de
performanță sunt obținuț i prin monitorizarea execuției
programelor.
modele analitice – descriu operațiile și încărcarea
sistemului în termeni matematici . Estimările de
performanță sunt obținute prin soluția analitică sau
numerică a modelului matematic.
CLASIFICAREA TEHNICI LOR AN ALITICE
Modelarea de performanță prin tehnici analitice, permite
estimarea pe baza unor analize matematice, fiind uneori
necesară implicarea de analize probabilistice și statistice. Este
o metodă foarte la îndemână datorită faptului că se pot obține
inform ații de performanță atât cantitative cât și calitative, pe
baza unor calcule matematice fără a necesita execuția unor
programe. Dezavantajul modelării analitice constă în faptul că
rezultatele sunt greu de obținut când complexitatea sistemului
studiat impu ne un număr mare de variabile. Din acest motiv, a
fost utilizată în studiul performanței unui număr restrâns de
subsisteme, prin aplicarea unor abstractizări și presupuneri
pentru a simplifica modelul.
22
Metodologiil e și tehnicil e analitice pot fi clasifica te pe baza
unuia dintre criterii le următoare : metoda de găsire a soluției,
domeniul de utilizare a modelului și aria de aplicare. În funcție
de modul de obținere a soluției se pot clasifica astfel:
– Formale – sistemul este descris cu un formalism bine
defin it. Paradigma de bază aplicată deseori este cea a
rețelelor cu șiruri de așteptare , susținute de un fundament
matematic pentru evaluarea modelelor. În principal , teoria
cozilor are drept scop calcul ul timpilor de răspuns și a
utiliz ării. Un alt formalism d es folosit este cel al rețelelor
Petri stochastice generalizate. Acestea s -au dovedit
eficiente pentru validarea protocoalelor de comunicație și
a algoritmilor distribuiți. Pe măsură ce complexitatea
sistemelor de studiat a crescut, s -au dezvoltat alte tip uri de
rețele Petri și algebre de proces care răspund cerințelor de
complexitate.
– Estimative – metodele formale, au limitări cauzate de
aparatul matematic pe care se bazează. In plus, evaluarea
acestora necesită spații de stare mari, fapt care conduce la
procese costisitoare. Pentru a depăși aceste probleme, sunt
angajate tehnici de estimare care utilizează euristica,
presupunerile și simplificările. Tehnicile de estimare
folosesc deseori un aparat matematic și statistic simplu în
reprezentarea relațiilor d in sistem. Astfel, procesul de
evaluare devin tractabil și eficient din punctul de vedere al
costului. Cu toate acestea, utilizarea euristicilor și a
simplificărilor poate determina creșterea erorilor în
23
prognoze și restrângerea aplicării metodelor la sist emele
care permit presupuneri.
– Hibride – aceste tehnici combină abordările analitice cu
simularea, monitorizarea și benchmarking. Dezvoltarea
unei tehnici hibride țintește la îmbunătățirea acurateței
prognozelor prin depășirea dezavantajelor tehnicilor
individuale.
În funcție de posibilitățile de reutilizare a modelului, pot fi
organizate în următoarele categorii:
– Specifice unui sistem – există modele care pot fi aplicate
unui anumit sistem sau combinații sistem și software.
Principalul avantaj al acestei a bordări îl constituie
acuratețea prognozelor, obținută prin rafinarea modelului
pentru un anumit sistem. Dezvoltarea acestui tip de modele
în perioada anterioară se baza pe modelele formale. Prima
aplicare a acestor modele a fost aceea a planificării
capac ității care, prin natura sa este specifică unui anumit
sistem. Studiile de performanță efectuate asupra unor
sisteme mai complexe cum ar fi în cazul de față sistemele
distribuite, necesită totuși modele mai generalizate.
– De caracterizare – sunt modele care pot fi aplicate unui
domeniu vast de sisteme. Dezvoltarea modelelor
generalizate reprezintă o tendință modernă. Costul
dezvoltării acestora se justifică atunci când un model poate
fi utilizat în mai multe studii de performanță. În plus,
modelele care apar țin acestei categorii sunt necesare unor
studii de prognoză de performanță portând sofware -ul
24
acolo unde este evidentă necesitatea de a evalua același
model de aplicație pe platforme hardware diferite.
Modelele de caracterizare în cele mai multe cazuri
promovează dezvoltarea bibliotecilor de modele,
utilizabile în multe situații.
Tehnicile analitice pot fi organizate în funcție de aplicația
pentru care vor fi folosite, respectiv tehnici de tip:
– Algoritm/ aplicație – sunt destinate în principal asistenței
în selecția claselor de algoritmi adecvați anumitor aplicații,
optimizări și selecția transformărilor eficiente pe
arhitecturile țintă. În anumite cazuri, se pot distinge clase
de algoritmi și caracteristici comune ale acestora.. Această
grupare promovează d ezvoltarea de modele specifice
fiecărei clase de algoritmi care pot fi aplicați în diverse
probleme.
– Arhitectură/hardware – acestea furnizează baza pentru
prognoze de performanță în ceea ce privește fiecare
componentă a sistemului și validează comparații d e
performanță între diferite sisteme. În cele mai multe cazuri
sunt incluse modele simple care reprezintă încărcările de
lucru, accentul se pune însă pe aspectele hardware ale
sistemului.
– Prototip de calcul (model de calcul) – reprezintă o abordare
țintită pe dezvoltarea modelelor analitice aplicabile global.
Pe baza unor presupuneri și simplificări, se poate defini un
prototip al tiparului de calcul/comunicație. Nu se dezvoltă
un model de calcul pentru a preconiza performanța
25
prototipului ci, se utilizeaz ă pentru estimarea
performanțelor aplicațiilor și algoritmilor.
– Extragerea paralelismului – aceste metode necesită o
descriere a tiparului de calcul/comunicație care se obține
dintr -o aplicație, prin tehnici de modelare. Apoi, prin
implicarea altor metodol ogii de performanță
(benchmarking și monitoare), se obțin estimări de
performanță, pentru paralelizarea aplicației.
– Caracterizarea parametrică – reprezintă o altă abordare a
modelelor analitice constând în aceea că se caracterizează
un sistem în termenii p arametrilor de performanță care
afectează în principal performanța totală a sistemului.
Două aspecte ale acestor tehnici constau în identificarea
parametrilor și determinarea valorilor lor pentru anumite
sisteme.
– Caracterizarea încărcării de lucru – model ele descriu
comportamentul soft -ului rulat pe un sistem. Aceste tehnici
se pot focaliza pe structura internă sau pe comportamentul
statistic al software -ului.
Categoriile menționate anterior se suprapun în multe privințe,
motiv pentru care în cele mai mult e cazuri este dificil să se
facă distincție între ele.
Pe lângă timpul de răspuns, debit și utilizare, s-ar putea
enumera și alte măsuri de interes : numărul total de cereri în
interval ul de timp dat, numărul mediu de cereri care așteaptă să
fie satisfăcut e. Modelele utilizate vor fi stohastice , pentru că de
26
regulă , elementele cu care interacționează sistemele de calcul
au un comportament aleatoriu ; astfel putându -se lua în
considerare comportamentul tipic sau mediu al sistemului .
Din teoria probabilităților conform [1] și [3], cel mai frecvent
se utiliz ează:
1. Există un spațiu eșantion (sample space) , care
cuprinde toate observațiile sau rezultatele posibile.
2. Există o colecție de subseturi ale , notate cu E și
numite evenimente; aceste subseturi sunt de regulă
identificate ca puncte eșantion care satisfa c o anumită
condiție.
3. Există o transformare de probabilitate, Pr din E în
care trebuie să îndeplinească trei condiții:
a. Transformarea Pr este definită și satisface
relația: 0 Pr(A) 1, pentru oricare eveniment
A, A E;
b. Pr(
c. Dacă A și B sunt mutu al exclusive, respectiv
nu conțin puncte eșantion comune, atunci
Pr(A B) = Pr(A)+Pr(B).
Probabilități condiționat e
Dacă s e produ ce un eveniment , acesta poate afecta
probabilitatea producerii altor evenimente. Fiind dat
27
evenimentul B, probabilitatea condiț ionată a producerii
evenimentului A, este:
) Pr() Pr() Pr(BBABA
Două evenimente se consideră a fi independente, dacă
producerea unuia nu afectează în nici un fel probabilitatea
celuilalt. Astfel, cunoscând că un eveniment s -a produs, nu
schimbă în nici u n fel estimarea cu privire la probabilitatea
celuilalt eveniment. În această situație, probabilitatea
producerii ambelor evenimente este:
Concepte din teoria probabilităților și statistică utilizate în
analiza de performanță
Evenimente independente sunt a cele evenimente care răspund
condiției: dacă se produce un eveniment, acest lucru nu va
afecta în nici un fel probabilitatea de producere a celuilalt.
Variabilă aleatoare este variabila care ia una dintre valorile
unui anumit set, cu o probabilitate specif icată.
Funcția de distribuție cumulativă CDF (Cumulative
Distribution Function) a unei variabile aleatoare, transformă o
valoare a dată, în probabilitatea variabilei de a lua valori mai
mici sau egale cu a:
) ( )( axPaFx
Funcția de densitate de probabilitate pdf .Derivata
dxxdFxf)()(
este numită funcția de densitate de probabilitate
(probability density function) a lui x. Fiind dată o pdf f(x),
probabilitatea ca x să fie în intervalul (x 1, x 2) se poate de
28
asemenea calcula prin integrar e:
2
1)( )( )( ) (1 2 2 1x
xdxxf xF xF xxxP
Funcția de probabilitate de masă : Pentru variabile aleatoare
discrete, CDF nu este continuă și, de aceea ne -derivabilă. În
asemenea cazuri, în locul pdf este folosită funcția de
probabilitate de masă (pmf),. Dacă se consideră o v ariabilă
aleatoare discretă x, care poate lua n valori distincte {x 1, x2,…,
xn} cu probabilitățile {p 1, p 2, …, p n} astfel ca probabilitatea
celei de -a i-a valori x i este p i. : f(x i) = p i. Probabilitatea ca x să
fie în intervalul (x 1, x 2) se poate calcu la prin însumare:
2 1)( )( ) (1 2 2 1
xxxii
ip xF xF xxxP
Valoarea medie sau preconizată:
n
iii dxxxf xp xE Media
1)( )(
. Însumarea se folosește
pentru variabile discrete și integrarea, pentru valori continue.
Valoarea preconizată a cantității (x -)2 se numește varianța: .
Varianța se notează cu 2 . Abaterea standard este r ădăcina
pătrată a varianței și este notată cu .
Raportul dintre abaterea standard și media aritmetică este
Coeficientul de variabilitate și se notează cu C.O.V.
dxxf x xp xEx Varin
ii i i )() ( ) ( ]) [( )(2
12 2
29
Covarianța
Fiind date două variabile aleatoa re, x și y cu mediile 1 și 2,
covarianța este:
)()( )( )] )( [( ),( yExE xyE y xE yx Covy x xy
. Pentru
variabile independente, Cov este zero, pentru că
E(xy)=E(x)E(y). Cu toate că independența întotdeauna implică
o covarianță nulă, inversa nu este adevărată. Este posibil ca
două variabile să fie dependente și să aibă totuși covarianță
nulă.
Coeficientul de corelație : Valoarea normalizată a covarianței
se numește coeficient de corelație sau, corelația:
yxxy
xy yx Corelatia2
),(
și ia întotdeauna valori între –1 și
+1.
Media și Varia nța sumelor : Dacă x 1, x2,…, x k sunt k variabile
aleatoare și dacă a 1, a2,…, a k sunt k constante arbitrare (numite
ponderi), atunci:
)( …)( )( ) … (2 2 1 1 22 11 k k kk xEa xEa xEa xa xaxaE
Pentru variabile independente:
2 2 2
1 1 2 2 1 1 2 2( … ) ( ) ( ) … ( )k k k k Var a x a x a x a Var x a Var x a Var x
30
Distribuții importante din punctul de vedere al model ării de
performanță
Cea mai importantă distribuție de probabilitate continuă , este
distribuția exponențială care are funcția de distribuție:
0 x 1)( xe xF
și funcția de densitate:
0 x )( xe xf
E[X] a unei variabile aleatoare exponenția le cu parametrul
este 1/ varianța 1/ 2. Această variabilă este deseori utilizată
pentru a numi durata până la producerea unui eveniment.
Funcția de distribuție exponențială este foarte înrudită cu o
variabilă aleatoare discretă și anume distribuția Po isson.
Variabila aleatoare ia valori în setul {0, 1, 2,…} și are funcția
de masă:
0i !
iepi
i
Expectanța unei valori aleatoare Poisson cu parametrul este
de asemenea În modelarea sistemelor de calcul și a
sistemelor de comunicație se folo sește des v ariabila aleatoare .
Este utiliz ată ca variabilă de contorizare pentru înregistrarea
numărului de evenimente care se produc într-o perioadă de
timp dată. Dacă se observă un proces Poisson având parametrul
pe o perioadă de timp h, atunci:
31
– h+o( h) va fi p robabilitatea ca să se producă un
eveniment, unde termenii numiți de o(h) au
dimensiune relativ redusă , pentru valori foarte mici ale
lui h poate fi ignorat ;
– o(h) este p robabilitatea de producer e a două sau mai
multe evenimente;
– 1- h + o(h) est e probabilitatea ca să nu se producă nici
un eveniment.
Când se observ ă un proces Poisson , probabilitatea producerii
unui eveniment este dt, dacă timpul are durata infinitezimală
dt. Timpii inter -evenimente sunt guvernați de o distribuție
exponențială c u același parametru atunci când producerea
evenimentelor este guvernată de o distribuție Poisson. Dacă se
știe că întârzierea până la producerea unui eveniment are o
distribuție exponențială, atunci probabilitatea de a se produce
în intervalul infinitezima l dt este dt.
Trăsăturile matematice ale distribuției exponențiale care au
determinat alegerea ei pentru modelarea de performanță sunt:
– distribuția exponențială este fără memorie. Dacă X este
o variabilă aleatoare cu o distribuție exponențială,
atunci : Pr(X > t + s X > t ) = Pr(X > s) t >0, s >0
– proprietatea de superpoziție – X1 și X 2 fiind două
variabile aleatoare cu distribuție exponențială, cu
parametrii 1 și 2, Y este definit a fi minimul lor. Y =
32
min(X 1, X 2) va avea de asemenea o distribuție
exponențială, cu parametrii 1 + 2.
– proprietate a de descompunere – dacă X o variabilă
reprezentând durata până la un eveniment și se
presupun e că evenimentele sunt împărțite probabilistic
în două cate gorii, cu evenimente aparținând curentului
A având pA și aparținând curentului B cu pB = 1- pA.
Curentul A și B sunt Poisson cu parametrii x p A și
x p B. Timpii de așteptare dintre evenimentele celor
două categorii vor avea o distribuție exponențială cu
parametrii x p A și x p B [1]
LEGI OPERAȚIONALE
Un număr mare de probleme din analiza de performanță a
sistemelor de calcul poate fi rezolvat prin folosirea unor relații
simple care nu necesită nici un fel de presupuneri cu privire la
distribuți a timpilor de serviciu sau a timpilor dintre sosiri.
Aceste relații, numite legi operaționale, au fost iden tificate
inițial de Buzen și extinse de Denning și Buzen .
Cuvântul operațional are semnificația de măsurat direct.
Presupunerile care pot fi verific ate prin măsurători sunt
presupunerile testabile operațional. De aceea, presupunerea
numită uzual presupunerea de echilibru al fluxului de joburi,
este testabilă operațional. Presupunerea de independență de
altfel des utilizată în modelarea stohastică a c ozilor, nu este
testabilă operațional [3]
33
Urmărind un dispozitiv pe o perioadă T, se poate măsura
numărul de sosiri A i, numărul de joburi încheiate C i și durata
de ocupare B i. Numărul de sosiri, de joburi încheiate și duarata
de ocupare a dispozitivul ui sunt deci cantități operaționale. Din
acestea se pot deduce:
Rata sosirilor
TAi
i timpsosiri de numarul
Debitul
TCXi
i timpincheiate joburi de numarul
Utilizarea
TBUi
i total timpulocupare de durata
Durata medie a serviciului
ii
iCBS i beneficiar de numarulr serviciilo a totala durata
Aceste cantități operaționale su nt variabile care se modifică de
la o perioadă de observare la alta dar există anumite relații care
se păstrează. Acestea se numesc legi operaționale:
A. LEGEA LUI LITTLE
Este una dintre cele mai utilizate teoreme pentru că permite
stabilirea unei relații între numărul mediu de joburi din oricare
sistem și timpul mediu petrecut de acestea în sistem, după cum
urmează:
34
numărul mediu în sistem = rata sosirilor x timpul
mediu de răspuns sau:
N = X * W
unde: X este debitul iar W timpul mediu petrecut de un job în
sistem.
Această relație se aplică tuturor sistemelor în care numărul de
joburi care intră în sistem este egal cu numărul celor care -și
încheie serviciul și este valabilă la diferite niveluri: pentru o
singură resursă, un subsistem sau sistemul în tota litate . În cazul
în care definiția se aplică în acest mod , este nevoie de mai mare
grijă deoarece definirea numărului de joburi din sistem, a
debitului și a timpului de rezidență la diferite niveluri trebuie
să fie compatibile.
B. LEGEA UTILIZĂRII
Fiind d at numărul de încheieri C i, și timpii de ocupare B i ai unui
dispozitiv i, pe durata unei perioade T, este valabilă relați a:
ii i i
iCB
TC
TBU
, sau : Ui=X iSi
Această relație este numită lege de utilizare .
C. LEGEA FLUXULUI FORȚA T
35
Această lege st abilește o relație între debitul sistemului și
debitele dispozitivului individual. Într -un model deschis,
numărul de joburi care părăsesc sistemul în unitate de timp,
definesc debitul. Într -unul închis, nici un job nu părăsește
sistemul. Totuși, traversare a legăturii exterioare (legarea lui
Out la In) este echivalentă cu părăsirea sistemului și re -intrarea
imediată ; debitul fi ind dat de numărul de joburi care
traversează această legătură în unitatea de timp.
Se p resupune că fiecare job face V i cereri pentru al i-lea
dispozitiv. Dacă fluxul joburilor este echilibrat, numărul de
joburi C 0 care traversează legătura externă și numărul C i care
vizitează al i -lea dispozitiv sunt legate prin relațiile:
Ci = C 0Vi sau : V i = C i/C0
Din cea de -a doua relație, putem spune că V i este raportul
vizitelor . Debitul sistemului pe perioada de observare este:
TC0
totala durataincheiate joburiX sistem Debitul
Debitul celui de -al i-lea dispozitiv și debitul sistemului sunt
legate după cum urmează:
Debitul dispozitivului
TC
CC
TCXi i
i0
0 sau:
Xi = XV i
36
Aceasta este legea fluxului impus. Combinând legea de
utilizare cu cea de flux impus, se obține:
Utilizarea celui de -al i-lea dispozitiv U i =X iSi = XV iSi
sau:
Ui = X D i (1)
Aici, D i = V iSi, este cererea totală către dispozitiv pentru toate
vizitele unui job. Conform e cuați ei (1) utilizările diferitelor
dispozitive din sistem sunt proporționale cu cererea totală D i
per job la un dispozitiv. Deci, dispozitivul cu valoarea cea mai
mare a lui D, are utilizarea cea mai înaltă și este dispozitivul
de gâtuire (bottleneck)
Rapoartele de vizitare reprezintă o cale de a specifica rutarea
joburilor într -o rețea cu șiruri de așteptare. O altă cale este de a
specifica probabilitățile de tranziție ale unui job care se
deplasează de la coada i, după înche ierea serviciului, către
coada j. Rapoartele de vizitare și probabilitățile de tranziție sunt
echivalente în sensul că , fiind dată una, poate fi găsită
întotdeauna cealaltă. Într -un sistem cu fluxul de joburi
echilibrat :
M
iiji j pC C
0
Aici, indic ele 0 este utilizat în notarea vizitelor către legătura
exterioară. Astfel, p i0 este probabilitatea ca un job să i asă din
sistem după încheierea serviciului la cel de -al i-lea dispozitiv.
Împărțind ambele părți ale ecuației cu C 0, rezultă :
37
Legile operați onale nu nu necesită prea multe presupuneri.
Singura presupunere explicită este cea de flux echilibrat
respectiv, este servit un număr de cereri egal cu cel intrat in
sistem. Deasemenea s e presupu ne că acest lucru este implicit
valabil la fiecare resursă d in sistem. O consecință este aceea că
joburile nu sunt create sau distruse oriunde în sistem și se mai
numește și legea conservării lucrului (conservation of work).
Se mai presupu ne că sistemul este omogen respectiv,
comportamentul joburilor sau resurselo r din interiorul unui
sistem nu depinde de starea globală a sistemului [1].
D. LEGEA TIMPULUI GE NERAL DE
REZIDENȚĂ
Una dintre metodele de calcul a timpului de răspuns per job sau
rezidența medie , este de a aplica legea lui Little întregului
sistem. Singura condiție este de a se respecta echilibrul fluxului
de joburi. Pentru situația în care N, numărul mediu de joburi în
sistem și debitul sistem X, sunt necunoscute, trebuie folosită o
altă metodă. Aplicând legea lui Little la resursa i, se observă că
Ni = X iRi, unde N i este numărul mediu de joburi la resursă și Ri
este timpul mediu de răspuns al acesteia. Din legea fluxului
impus se știe că X i = XV i. Rezultă deci : Ni/X = V iRi
Numărul total de joburi din sistem este suma numărului de
joburi la fiecare resu rsă, adică: N = N 1 +N 2 +…+N M, M fiind
numărul resurselor din sistem. Din legea lui Little se știe că R
M
iiji j pV V
0
38
= N/X de unde se ajunge la timpul general de rezidență sau,
legea generală a timpului de răspuns:
M
iiiVR R
1
Durata medie de rezidență a un ui job în sistem va fi suma
produselor duratelor medii de rezidență la fiecare resursă din
sistem și numărul de vizite pe care le face la acea resursă.
E. LEGEA TIMPULUI DE RĂSPUNS
INTERACTIV
Într-un sistem interactiv, cererile de la utilizatori sunt servi te de
subsistemul central iar răspunsurile vin înapoi la utilizator.
După o durată Z, numită timp de gândire, se lansează
următoarea cerere.
Timpul de rezidență este deci mai mare decât cel de răspuns al
sistemului. Legea timpului interactiv de răspuns ca lculează
timpul de răspuns R:
R = N/X – Z
F. ANALIZA GÂTUIRILO R
Resursa care are cea mai mare cerere de servicii este resursa
sau dispozitivul de gâtuire. Această resursă este importantă
deoarece contribuie la limitarea debitului . Identificarea
dispozitivu lui de gâtuire este foarte importantă în orice
activitate de îmbunătățire a performanței.
39
Din legea timpului de răspuns interactiv:
X min{1/Dmax, N / (D+Z)} și
R(N) ≥ max{D, N D max-Z}
D=∑D i reprezintă suma cererilor totale de servicii la toate
dispozit ivele mai puțin terminale. Aceste relații sunt cunoscute
sub numele de limite asimptotice [3].
PROCESE MARKOV
Procese stochastice
Formal, un model stohastic este reprezentat ca proces stohastic
acesta din urmă fiind un set de variabile aleatoare {X( t); t
T},
cu T se notează un set index și reprezintă timpul în toate
modelele. Luând în considerare modele continue în timp,
înseamnă că T =
. Spațiul de stare al procesului este dat de
setul tuturor valorilor po sibile ale variabilei aleatoare X(t).
Fiecare valoare este numită stare a procesului. Cu toate că nu
se poate stabili în mod necesar o relație unu -la-unu, a ceste stări
vor corespunde noțiunilor intuitive de stări ale sistemului
reprezentat,. Orice set {X(t ); t
T} poate fi privit ca o cale a
unei particule aflate în mișcare aleatoare în spațiul de stări S,
poziția sa la momentul t, fiind X(t). Aceste căi sunt numite căi
eșantion sau realizări ale procesului stochastic.
Caracteristici proceselor Markov, conform [1]:
40
{X(t)} este un proces Markov. Aceasta implică proprietatea
Markov sau fără memorie. Dacă stările viitoare ale unui proces
sunt independente de trecut și depind doar de prezent, procesul
se numește proces Markov . Pentru că nu trebuie ținut cont de
toată traiectoria în timp, analiza proceselor este simplificată în
acest mod. Cunoașterea stării actuale este suficientă. Un proces
Markov cu stare discretă se numește lanț Markov. Nu este
necesar să se cunoască durata stării cure nte a procesului.
Această cunoaștere este posibilă doar dacă durata stării are o
distribuție fără memorie (exponențială). Aceast a este o cerință
care determină limitarea aplicabilității proceselor Markov.
{X(t)}este ireductibil, adică toate stările în S po t fi atinse din
toate celelalte stări, urmând tranzițiile procesului.
{X(t)} este staționar adică : la orice moment t i din T,
distribuțiile reunite ale proceselor sunt neafectate de
modif icările pe axa timpului.
{X(t)} este omogen în timp: comportamentul sistemului nu
depinde de momentul când este observat. Ratele tranzițiilor
între stări sunt independente de momentul la care se produce
tranziția.
Scopul modelării cu procese Markov este de a calcul a
distribuți a de probabilitate a variabilei aleatoare X(t) pe spațiul
de stare S, când sistemul respectă u n tipar de comportament
regulat și în plus, i se asociază termenul de distribuție de
probabilitate a stării stabile. Din această distribuție se pot
deduce măsurile de performanță bazate pe sub -seturi de stări
pentru care este valabilă o anumită condiție.
41
Soluția proceselor Markov este legată de reprezentarea lor
matriceală care permite găsirea comportamentului mediu a l
modelului prin rezolv area unei simple ecuații matriceale.
Fiind un proces stochastic, un pr oces Markov este caracterizat
de o variabilă aleatoare X(t), indexată pe timpul t și un spațiu
de stare S, astfel încât X(t)
S, pentru toate valorile lui t.
Comportamentul dinamic al sistemului modelat este
reprezentat de tranziția î ntre aceste stări și timpii pentru fiecare
dintre acestea, numiți timpi de sejur (s ojourn times). Acești
timpi reprezintă perioadele de pro cesare, tranzițiile reprezintă
evenimente în sistem.
Presupunând că atunci când are loc o tranziție din starea i, nou a
stare este j, cu probabilitatea p ij. Aplicând proprietatea Markov,
trebuie să depindă doar de i și j și pentru i j, i, j S:
Pr(X(t + dt) = j | X(t) = i) = q ijdt + o(dt)
Unde : q ij = q ipij din proprietatea de descompunere. q ij sunt
ratele de tranziție instantanee iar dacă întârzierea medie
înaintea unei tranziții din i în j are o distribuție exponențială cu
parametrul , atunci q ij = . qij este cunoscut de obicei ,
putându -se astfel afla parametrul distribuției care guvernează
întârzierea asociată e venimentului reprezentat de tranziția de
stare. Tot din valoarea acestuia se pot deduce: rata de ieșire, q i
și probabilitățile de tranziție p ij. Rata de ieșire este cea cu care
sistemul iese din starea i adică, parametrul distribuției
exponențiale care guv ernează durata sejurului. Acesta va fi
42
minimul întârzierilor până la producerea oricărei tranziții din
cele posibile. q i =
Sj ijq iar p ij = q ij/qi.
DIAGRAME DE TRANZIȚI E A STĂRILOR
În cazul proceselor Markov cea mai simplă metodă de
reprez entare a unui proces este cea a diagramelor de tranziție
unde fiecare stare a unui proces este un nod, arcele
reprez entând tranzițiile posibile dintre aceste stări. Ratele de
tranziție dintre stări etichet ează arcele .
MATRICILE GENERATOAR E
Un proces Marko v cu n stări este caracterizat de matricea
generatoare ( n x n) Q. Valorile pentru elementele cu i j vor
avea valoarea ratei instantanee de tranziție, respectiv suma
parametrilor care etichetează arcele care leagă nodurile din
diagrama stărilor. Elementel e diagonale sunt astfel alese încât
suma elementelor de pe linia i să fie nulă: qij = –
ijSjijq
,
DISTRIBUȚIA DE STARE STABILĂ
Analiza de performanță studiază de regulă comportamentul
sistemelor pe o perioadă mai îndelungată de timp. Durata d e
funcționare a sistemului va fi foarte mare comparativ cu timpii
inter-evenimente din interiorul său, aspect important din
punctul de vedere al modelării, însemnând că starea inițială a
modelului va trebui aleasă arbitrar. Ținând cont de durata mare,
43
se poate considera că distribuția de probabilitate va anula orice
abatere introdusă de starea inițială aleasă. Ca o consecință a
acestui fapt, fiecare rulare a modelului va fi o cale eșantion în
spațiul său de stare. Pentru modelele Markov, problemele
acestor abateri sunt evitate datorită faptului că se ia în
considerare distribuția de probabilitate a stărilor procesului,
care poate fi dedusă cunoscând probabilitățile de tranziție
instantanee.
Se presupune că după depășirea efectelor abaterii inițiale
sistemul și modelul au un comportament de stare de echilibru
sau stabilă. Acest fapt presupune că modelul prezintă
regularitate și predictibilitate în spațiul de stare adică,
distribuția de probabilitate a variabilei aleatoare X(t) în spațiul
S va fi neschimbată.
Se notează cu k(t) probabilitatea ca procesul Markov aflat la
momentul t, să fie în starea x k S. S-a ajuns în echilibru atunci
când pentru toate stările x k S, xk(t + ) = x k(t) adică,
momentul la care observăm modelul nu afectează
probabilitatea de a se afla într -o anumită stare.
Distribuția de stare stabilă { k(t), x k S} există pentru toate
procesele Markov omogene, finite și ireductibile. Această
distribuție este aceeași cu distribuția limită :
ECUAȚIILE ECHILIBRUL UI GLOBAL
k ktx XxtX
) )0(| )( Pr(lim0
44
În stare stabilă, i este proporția de timp pe care procesul o
petrece în starea x i. La un moment de timp, probabilitatea să se
producă o tranziție din starea x i în x j, este probabilitatea ca
modelul să fi fost în starea x i (k) înmulțită cu probabilitatea de
tranziție q ij. Se numește flux de probabilitate din starea x i în x j
.
Pentru a se menține echilibrul în stare a stabilă este necesar să
se presupun ă că fluxul total de probabilitate la ieșirea dintr -o
stare este egal cu cel de intrare în aceasta. Astfel, pentru oricare
stare x i:
Aceste ecuații sunt cunoscute ca ecuațiile echilibrului global.
Ținând cont de faptul că elementele diagonale ale matricii
generatoare Q sunt suma negativă a celorlalte elemente de pe
linie, ecuația anterioară devine:
Exprimând valorile i ca vector linie , se poate scrie ecuația
matriceală :
ijSxij j
ijSxij i
j jq q
, ,) (
Fluxul la
ieșirea din x i
Fluxul la
intrarea în x i
0
Sxijj
jq
45
Q = 0
Valorile i sunt necunoscute. Pentru a le putea calcula se mai
introduce condiția de normalizare :
Având n + 1 ecuații, se pot afla cele n necunoscute.
Din distribuția de stare stabilă se pot dedu ce niște măsuri de
performanță aplicând metode corespunzătoare [1]:
– „măsuri bazate pe stare sunt cele care corespund în
mod clar probabilității ca modelul să se afle într -o stare
sau subset de stări care satisfac anumite condiții;
utilizarea de exemplu care corespunde stării în care o
resursă este folosită; alt e exemple: timpii de
inactivitate, numărul de joburi în sistem.
– măsuri bazate pe rată – sunt cele care corespund ratei
preconizate de producere a unor evenimente ; de
exemplu debitul;
– alte măsur i care nu se bazează pe utilizarea proceselor
Markov, caz în care se aplică una dintre legile
opera ționale; de exemplu timpul de răspuns ”.
MODELAREA DE NIVEL Î NALT
În situația în care complexitatea sistemelor de studiat crește,
crește corespunzător și numă rul stărilor și tranzițiilor posibile,
1
Sxi
j
46
fapt care determină ca analiza cu procese Markov să devină
ineficientă. Se mai pune problema abstractizării. Pentru a putea
modela cu procese Markov, ar fi nevoie de un nivel de
abstractizare mai ridicat, ceea ce poat e conduce la rezultate
eronate sau neconcludente. Ca soluție pentru această situație s –
au creat tehnicile de modelare de nivel înalt :
Rețele P etri;
Șiruri de așteptare și
Algebre de proces.
Formalismele acestora oferă metoda de abstractizare a
comportam entului și de asemenea procedura de generare a
procesului Markov de bază.
Caracteristicile instrumentelor de modelare de performanță de
nivel înalt: sunt suport pentru construirea modelului, putând
dispune și de interfețe grafice; procesul Markov corespunz ător
se poate genera automat cu soluții utilizând abordarea de bază
sau pe baza unor soluții de model particulare și permit
exprimarea măsuril or de performanță iar cele corespunzătoare
procesului Markov, se obțin automat [1].
REȚELE PETRI
Rețelele Petr i sunt compuse din două tipuri de noduri: locuri și
tranziții. În mod grafic, locurile sunt reprezentate de cercuri și
tranzițiile prin linii. Locurile și tranzițiile sunt legate prin
arcuri. Fiecare loc conține un număr de jetoane. Tranziția nu
47
poate fi r ealizată decât dacă toate locurile din amonte de ea
conțin cel puțin un jeton. La un moment dat poate avea loc o
singură tranziție. Execuția tranziției se face decrementând un
jeton din locurile aflate înaintea acesteia și incrementând
jetoanele locurilor situate după.
Jetoanele se deplasează între locuri în funcție de regulile de
declanșare impuse de tranziții. O tranziție poate porni când
fiecare dintre locurile conectate la ea are cel puțin un jeton;
când se declanșează, tranziția îndepărtează jetonul di n fiecare
loc și depune unul în fiecare dintre locurile cu care este
conectată. Aceasta este numită regulă de declanșare (firing
rule). Uneori este necesar ca un loc de intrare să conțină două
sau mai multe jetoane înainte să poată să pornească În acest
caz, pentru a nu trasa mai mult de un arc între loc și tranziție,
multiplicitatea arcelor se notează cu un număr lângă arc. Starea
sistemului îmbină informații despre toate stările locale.
Se pot introduce arcuri inhibitoare, reprezentate pe arc cu un
cerc la extremitatea dinspre loc. În acest caz, tranziția este
executabilă dacă toate locurile de unde provin arcurile
inhibitoare sunt vide și dacă celelalte locuri din amonte conțin
cel puțin un jeton. Execuția unei tranziții se face în aceeași
manieră ca și în cazul precedent, cu diferența că locurile din
amonte legate prin arcuri inhibitoare nu sunt decrementate cu
un jeton.
Rețelele Petri sunt folosite în modelarea sistemelor paralele și
distribuite, acestea fiind foarte greu de modelat cu rețele cu
șiruri de așteptare. Rețelele Petri au fost folosite de numeroși
48
cercetători, ceea ce a determinat apariția multor
variante[LiW02].
REȚELE PETRI STOCHAS TICE
Rețelel or Petri le-au fost adăugate variabile aleatorii pentru a
reprezenta durata activităților sau în târzierea până la
evenimente. Acest tip de rețele este cunoscut sub numele de
rețele Petri stochastice (SPN) . Procesul Markov se generează
cu ușurință dintr -un asemenea model însă numărul stărilor
rezultate este în continuare foarte mare. Avantajul constă în
aceea că generarea procesului Markov dintr -un model SPN este
simplă și ușor de implementat.
REȚELELE PETRI STOCH ASTICE GENERALIZATE
(GSPN)
Generalizarea implică adăugarea unor caracteristici
primitivelor de modelare furnizate de instrumentul de
modelar e. Ca rezultat, maparea între evenimentele din model și
cele din procesul Markov de bază este mai sofisticată. Cu toate
acestea, spațiul de stare care rezultă este mai compact și de cele
mai multe ori se poate obține o reprezentare mai apropiată a
comporta mentului sistemului.
REȚELE PETRI INTERPR ETATE
Aceste rețele fac parte din categoria rețelelor neautonome:
condițiile de declanșare a tranzițiilor sunt dependente de
condiții externe rețelei. Rețelele Petri interpretate conțin o parte
49
operativă care la rân dul ei conține o serie de variabile. Aceste
variabile sunt modificate de variabilele asociate locurilor.
Condițiile, funcțiile variabilelor sunt asociate tranzițiilor și
definesc dacă tranziția este executabilă.
REȚELE PETRI TEMPORI ZATE
Introduc noțiunea d e timp în parcurgerea rețelei. În celelalte
tipuri de rețele Petri, c onceptul de timp a fost folosit doar pentru
ordona rea tranzițiil or care s -ar putea produce simultan.
Rețelele Petri temporizate permit evaluarea cantitativă a
performanțelor sistemelor st udiate [LaT91].
REȚELELE PETRI COLOR ATE
Numărul mare de stări și tranziții rezultate din utilizarea
tipurilor de rețele Petri menționate anterior au impus
dezvoltarea unui nou tip și anume rețelele Petri colorate (CPN).
Acest tip a introdus un marcaj supli mentar pentru jetoane –
culoarea. Stările sistemului se vor diferenția prin acest atribut.
Culoarea jetonului determină execuția tranziției și se schimbă
la declanșarea acesteia.
REȚELE PETRI COLORAT E TEMPORIZATE
Conceptul de timp al CPN se bazează pe int roducerea unui ceas
global. Valorile ceasului reprezintă modelul de timp și pot fi:
întregi – timp discret sau, reali – timp continuu. În plus față de
50
valoare, jetonului i se permite o valoare de timp, numită marca
de timp. În mod intuitiv, marca de timp d escrie cel mai mic
model de timp la care jetonul poate fi utilizat adică, înlăturat de
producerea unui element de legătură.
Într-o rețea Petri colorată temporizată, elementul de legătură se
spune a fi autorizat de culoare când satisface regula de
autorizar e pentru CPN fără temporizare respectiv, când
jetoanele necesare sunt prezente la locurile de intrare și când
garda tranziției devine adevărată. Elementul de legătură mai
trebui să fie și în stare de ready pentru a fi autorizat. Aceasta
înseamnă că, pentru a fi îndepărtate, mărcile de timp ale
jetoanelor trebuie să fie mai mici sau egale cu modelul de timp
curent.
Execuția unei CPN temporizate este condusă de timp și este
similară cu cea a cozilor eveniment existente în multe limbaje
de simulare a eveniment elor discrete. Sistemul rămâne la un
model de timp dat atât timp cât există elemente de legătură
autorizate de culoare gata de execuție. Când acestea se
epuizează, sistemul avansează ceasul la următorul model de
timp la care elementele respective pot fi ex ecutate. Fiecare
marcaj există într -un interval închis al modelului de timp (poate
un singur moment).
REȚELE PETRI COLORAT E IERARHICE
Ideea care a stat la baza acestui tip de CPN a fost aceea de a
construi un model mare din mai multe CPN, numite pagini .
Într-o ierarhie CPN, este posibilă legarea unei așa -numite
51
tranziții de substituire cu o CPN separată, numită sub -pagină.
O sub -pagină furnizează o descriere mai precisă și mai detaliată
a activității reprezentate de tranziție. Fiecare sub -pagină are un
număr de locuri port care constituie interfața prin care aceasta
comunică cu mediul din jur. Pentru precizarea relației dintre
tranziția de substituire și sub -pagina sa, se face o asignare de
port. Respectiv, locurile unui port dintr -o sub -pagină sunt
legate la locuri socket ale tranziției de substituire. Când un loc
port este asignat unuia socket, cele două locuri devin identice.
Locul port și socket au întotdeauna aceleași marcaje. Tranziția
de substituire niciodată nu este autorizată și în consecință nu se
produce. [LiW02].
Dintre tipurile de rețele Petri, Rețelele Petri colorate (CPN) se
potrivesc cel mai bine pentru modelarea și analiza sistemelor
mari și complexe deoarece: permit modelare ierarhică, jetonul
poate conține informație complexă, timpul neces ar derulării
diferitor activități din sistem poate fi modelat, se pretează foarte
bine modelării și analizei de performanță a sistemelor
complexe și o calitate importantă: există instrumente bine –
testate pentru crearea, simularea și analiza modelelor CPN. În
ceea ce privește utilizarea rețelelor Petri de nivel înalt în analiza
de performanță există destul de puține studii, iar în ceea ce
privește analiza de performanță prin simulare cu rețele Petri de
nivel înalt și mai puține.
Rețelele Petri colorate au f ost utilizate în principal pentru
analiza protocoalelor de rețea dar, facilitățile lor sunt aplicabile
pentru orice tip de sistem. Protocoalele de rețea sunt studiate
deoarece este important să fie analiza tă atât funcționalit atea cât
52
și performanț a acestor a. Funcționalitatea se analizează pentru a
determina dacă serviciile pe care acesta le furnizează sunt cele
corecte și dacă există ambiguități sau probleme neluate în
calcul în specificarea protocolului.
ALGEBRE DE PROCES
Algebre de proces sunt limbaje a bstracte utilizate pentru
specificarea și proiectarea sistemelor concurente. Cele mai
cunoscute sunt Milner Calculus of Communicating Systems
(CCS) și Hoare Communicating Sequential Processe (CSP).
Algebrele de proces stohastice sunt o combinație a celor d ouă.
Modelele CCS și CSP au fost utilizate foarte mult pentru a se
stabili comportamentul corect al sistemelor complexe.
Sistemele sunt modelate în acest caz sub forma unor colecții de
entități, numite agenți care execută acțiuni atomice. Aceste
acțiuni s tau la baza limbajului și sunt folosite în descrierea
comportamentelor secvențiale care pot rula concurent și a
sincronizării sau comunicației dintre acestea.
În cazul CCS, doi agenți comunică. Atunci când unul execută
o activitate, celălalt o execută pe c ea complementară. Acțiunea
de comunicație care rezultă este privită ca una internă,
invizibilă mediului. Restricția este ca două acțiuni să nu se
producă simultan. Gramatica limbajului permite construirea
unui agent care are desemnată o primă acțiune (pref ix); i se
permite alegerea între alternative (choice) sau, are posibilități
de concurență (composition).
53
Pentru CSP, mecanismul de comunicare este diferit,
neexistând noțiunea de complementaritate. În această variantă,
doi agenți comunică executând acțiu nile simultan, acestea
având aceeași etichetă. Dat fiind faptul că pe durata
comunicației acțiunea reunită este vizibilă mediului, înseamnă
că poate fi reutilizată de alte procese concurente astfel că pot fi
implicate în comunicație mai mult de două proces e. Acesta este
mecanismul adoptat și de limbajele SPA.
Algebrele de proces oferă niște caracteristici care nu sunt
neapărat disponibile în celelalte paradigme de modelare de
performanță. Dintre acestea [JHi01] :
compozabilitatea care reprezintă posibilitat ea de a
modela un sistem ca interacțiune a subsistemelor
sale;
formalismul oferă o semnificație precisă tuturor
termenilor limbajului și
abstractizarea – capacitatea de a construi modele
complexe din componente detaliate, fără a ține
cont de comportamentul lor intern în situațiile în
care este necesar
Rețelele cu șiruri de așteptare oferă compozabilitate dar nu
dispun de formalism, SPN și GSPN dispun de formalism în
schimb nu și de compozabilitate; nici rețelele cu șiruri de
așteptare nici Petri, nu o feră m ecanisme de abstractizare .
54
Modele fără acțiuni imediate
Pentru orice model SPA cu acțiuni temporizate și spații de stare
finite, CTMC de bază se poate deduce direct prin asocierea
stării unui lanț Markov cu fiecare nod al sistemului de tranziții
etichetat e. Numele acțiunilor sunt luate în considerare mai
târziu, când se calculează măsuri de performanță de nivel -înalt.
Modele cu acțiuni imediate și temporizate
În procesele stohastice acțiunile imediate corespund cu
tranzițiile imediate. Prezența tranzițiil or imediate conduce la
două tipuri de stări: stări cu tranziții imediate de ieșire și stări
fără asemenea stări. Pentru primul tip s -a adoptat numele de
stări în dispariție (vanishing states). Celelalte se numesc stări
tangibile. Dacă dintr -o stare emană m ai multe tranziții
imediate, decizia între alternative este nedeterministă și poate
depinde de acțiunea oferită de mediu. Chiar dacă sistemul se
consideră a fi închis, decizia între mai multe tranziții imediate
(devenite interne) tot trebuie luată. O soluț ie ar putea fi
ponderarea tuturor alternativelor cu probabilități egale. În
aceste condiții, procesul stohastic de bază nu este lanț Markov
ci unul special semi -Markov care are atât tranziții imediate cât
și Markov. Cu toate că obținerea soluției nu prezin tă probleme,
efortul de soluționare se reduce de obicei prin înlăturarea
stărilor în dispariție, oferind astfel mai puține stări CTMC.
Agregarea compozițională
55
Relațiile de echivalență sunt benefice atât pentru eliminarea
tranzițiilor imediate cât și pent ru atenuarea exploziei spațiului
de stare prin mărire. Ambele pot fi obținute prin aplicarea
aceleiași strategii. Pentru o anumită specificare de exemplu
Sistem, ideea este de a calcula Sistem’ care este minimală
(raportat la numărul de stări) între specif icațiile echivalente cu
Sistem. Analiza de performanță poate fi apoi bazată pe
specificarea minimizată. În principiu, este posibilă producerea
Sistem’ prin rescrierea termenilor la nivelul sintactic, folosind
legi de echilibru. O altă abordare se poate fac e la nivelul
sistemului de tranziții, prin factorizarea întregului spațiu de
stare în clase de stări echivalente. Se obține o reprezentare
minimală fiecărei clase corespunzându -i o singură stare.
Strategia pentru factorizarea spațiului de stare este cunosc ută
sub numele de rafinare a partiționării (partition refinement). O
partiție este o reprezentare a unui set ca o uniune disjunctă de
subseturi.
Definirea și calculul măsurilor de performanță caracteristice
Rezultatul analizei de stare stabilă și al cele i tranzitorii este un
vector de probabilități. Acest vector poate fi folosit pentru a
obține măsuri mai sophisticate dupa cum se prezin ta in [1]:
„Măsuri de stare – reprezintă probabilitatea ca
sistemul să fie într -o anumită stare sau într -un grup
de stări. Utilizatorul poate preciza un set de stări
prin intermediul unor expresii regulate. După
analiză, instrumentul colectează toate stările din
spațiul de stare care corespund expresiei și
însumează probabilitățile corespunzătoare. Se pot
56
obține pe această cale : utilizarea resurselor,
disponibilitatea sau probabilitatea de blocare.
Debitul – în acest caz rezultatul nu mai este o
probabilitate ci o frecvență. Dacă se specifică
numelke unei acțiuni temporizate, se calculează
debitul adică, numărul de produceri ale acestei
acțiuni în unit ate de timp.
Valoarea medie – în prezența proceselor
parametrice unde unul dintre parametri este un
contor, acest tip de măsură va returna valoarea
medie a contorului. ”
REȚELE CU ȘIRURI DE AȘTEPTARE
Matematicienii au studiat șirurile de așteptare de aprox imativ
100 ani, una dintre primele aplicații fiind în telefonie ( formula
de pierderi a lui Erlang). Au câștigat teren în știința
calculatoarelor în ultimele decenii , când s -a realizat faptul că
atât cozile singulare cât și rețelele cu cozi sunt utilizabil e în
modelarea de performanță a sistemelor de calcul. În ultimii ani
dezvoltarea acestor sisteme s -a făcut peste posibilitățile de
expresivitate a rețelelor cu șiruri de așteptare .
Notații [3]
Proces de sosire : Dacă sosirile au loc la momentele t 1, t2, …,t j,
variabilele aleatoare j = tj-tj-1 sunt numite timpi inter -sosiri . Se
presupune în general că j formează o secvență de variabile
aleatoare independente și identic distribuite (IID). Cel mai
57
comun proces de sosire este Poisson, care are semnific ația că
timpii inter -sosiri sunt IID și sunt distribuiți exponențial. Sunt
folosite și alte distribuții cum ar fi Erlang și hiperexponențiale
. De fapt, sunt valide mai multe rezultate pentru cozi, pentru
toate distribuțiile timpilor inter -sosiri. Într -un astfel de caz, se
poate spune că rezultatul este valabil pentru o distribuție
generală .
1. Distribuția timpului de serviciu : timpul de serviciu se
presupune a fi variabilă aleatoare care este IID. Distribuția
folosită cel mai uzual este cea exponențială. Se utilizează
și alte distribuții ca: Erlang, hiperexponențială și generală.
2. Numărul de servere : Dacă există mai mult decât un server
în facilitatea de servicii procesarea clienților poate acea loc
concurent: câte un client la fiecare server. Se presupune că
serverel e sunt identice, așa că nu contează care sevește
clientul, rezultatele și caracteristicile serviciului fiind
identice. În cazul în care nu toate serverele sunt identice,
ele pot fi împărțite pe grupuri, având cozi separate pentru
fiecare grup.
3. Capacitatea sistemului : Numărul maxim de procese care
pot aștepta în cozi este limitat datorită spațiului disponibil
și pentru a evita timpii lungi de așteptare. Acest număr este
numit capacitatea sistemului. În cele mai multe sisteme,
capacitatea este fini tă. Cu toate acestea, dacă numărul este
mare, este mai ușor să fie analizat dacă se presupune o
capacitate infinită. Această capacitate include atât
procesele care așteaptă pentru servicii cât și pe cele care
sunt servite.
58
4. Dimensiunea populației : Numărul total al proceselor
potențiale care ar putea intra în coadă, reprezintă
dimensiunea populației. In cele mai multe sisteme reale,
dimensiunea populației este finită. Dacă aceasta este mare,
este din nou mai ușoară analiza pornind de la presupunere a
că este infinită.
5. Disciplina serviciului : Ordinea în care procesele sunt
servite. Cea mai comună este Primul venit, Primul servit
(FCFS). Alte posibilități sunt : Ultimul venit, Primul servit
(LCFS) și Ultimul venit, Primul servit cu preemțiune și
reluar e (preempt and resume) (LCFS -PR). UC -urile
sistemelor de calcul folosesc în general round -robin (RR)
cu un cuantum de dimensiune fixată. Dacă acest cuantum
este mic în comparație cu timpul de serviciu mediu, este
numit Partajare procesor (Processor Sharing – PS) din
moment ce fiecare din cele n joburi în așteptare ar trebui să
primească a 1/n –a parte din timpul procesorului. Un
sistem cu o întârziere fixată, de exemplu o legătură de
comunicație prin satelit, este numit Server infinit (IS) sau
un centru de întârziere. Terminalele din sistemele
timesharing sunt în general modelate ca centre de
întârziere. Uneori planificarea se bazează pe timpul de
serviciu necesar. Exemple în acest sens sunt : Cel mai scurt
timp de procesare întâi (SPT –shortest processing time
first), Întâi cel mai scurt timp de procesare rămas (shortest
remaining processing time first – SRPT), Întâi cel mai scurt
timp de procesare preconizat (SERPT – shortest expected
processing time first) și Întâi cel mai scurt timp de
procesare preconi zat rămas, (SERPT – shortest expected
59
remaining processing time first ). În lumea reală, ocazional
se mai pot întâlni: Biggest In, First Served (BIFS) sau
Loudest Voice, First Served (LVFS) .
Pentru a specifica un sistem cu cozi, trebuie precizați acești 6
parametri. Teoreticienii șirurilor de așteptare folosesc o notare
prescurtată, numită Kendall în forma A/S/m/B/ N/SD, literele
corespunzând în ordine, parametrilor de mai sus. Adică :
A este distribuția timpului inter -sosiri,
S este distribuția timpului de serviciu,
m este numărul de servere,
B este numărul de buffere (capacitatea sistemului),
N este dimensiunea populației și
SD este disciplina serviciului.
Distribuțiile pentru timpul inter -sosiri sunt de regulă notate
printr -un simbol dintr -o literă du pă cum urmează:
M – exponențială
Ek – Erlang cu parametrul k
Hk – Hiperexponențială cu parametrul k
D – deterministă
G – generală
60
Distribuția deterministă implică timpi constanți și inexistența
varianței. O distribuție generală înseamnă că aceasta nu este
specifică, deci este valabilă pentru oricare tip de distribuție.
O distribuție exponențială este notată cu M, care înseamnă fără
memorie . Această proprietate a distribuției exponențiale a
condus la numele ei de distribuție fără memorie (memoryless
distribution). T oate celelalte distribuții pre supun timpi de
sosire sau servic iu, individuali. Sosiri b ulk și servicii bulk în
care fiecare sosire sau serviciu constau dintr -un grup de joburi1
sunt notate cu indici superiori. Exemplu – sosiri sau servicii
bulk Poisson s unt notate cu M[x]. Aici x reprezintă dimensiunea
grupului care este în general o variabilă aleatoare și distribuția
sa trebuie specificată separat. Similar, G[x] ar reprezenta o
sosire bulk sau proces serviciu cu timp intergrup general.
1 În sistemele de calcul, fiecare dispozitiv este de regulă modelat ca
un centru de servicii cu o coadă de joburi de servit. Clienții în aceste
cozi sunt joburile care se deplasează de la un dispozitiv la celălalt. De
aceea termenul job și client este folosit interschimbabil. Simil ar,
dispozitiv, serviciu, centru și coadă . Termenul de buffer este folosit
pentru poziția de așteptare a joburilor în sistem.
61
CAPITOLUL 4
SIMULARE A
Analizând un sistem prin metode analitice, se poate deduce
comportamentul de stare stabil ă a procesului stohastic
corespunzător, exprimat ca distribuți e de probabilitate pentru
stările posibile. Astfel de modele pot fi privite ca abstractizări
matematice ale unui sistem. Pentru a deduce comportamentul
unui sistem, se face un studiu matematic a l modelului analitic.
Un model de simulare stohastică este, prin contrast, o
abstractizare algoritmică a sistemului, modelul de simulare este
reprezentarea care atunci când se execută , reproduce
comportamentul sistemului.
Simularea reprezintă o tehnică foa rte utilă pentru analiza de
performanță a sistemelor. Dacă sistemul de caracterizat nu este
disponibil, modelul de simulare oferă o cale de a estima
performanța sau, de a compara diferite alternative. Mai mult,
chiar dacă un sistem este disponibil pentru m ăsurare, modelul
de simulare poate fi preferabil măsurătorilor, deoarece oferă
posibilitatea de a compara alternativele în condițiile unei mari
varietăți de încărcare de lucru și mediu.
In [1], avantajele simulării față de modelarea analitică sunt
date de :
62
Nivelul de abstractizare – Modelarea Markov se
bazează pe multe presupuneri și abstractizări, chestiuni
care nu sunt întotdeauna potrivite pentru sistemul în
studiu. Modelele de simulare permit reprezentarea
sistemului la nivele de detaliere arbitrare.
Analiza tranzitorie – este utilă în cazurile în care
interesează comportamentul tranzitoriu al sistemului și
nu cel de stare stabilă.
Dimensiunea spațiului stărilor. De cele mai multe ori,
rezolvarea analitică a unui model pre supune
construirea și memorar ea spațiului de stare complet.
Într-o simulare în schimb, acest spațiu este construit
„din mers” pe durata execuției modelului nefiind
necesar astfel să fie imediat memorat.
ELABORAREA MODELELOR DE SIMULARE
Modelele de simulare sunt programe complexe și po t fi
dezvoltate în orice limbaj de programare. Există însă și
avantajul utilizării unor limbaje sau pachete de programe
special destinate simulării. Limbajele care au incluse
caracteristici pentru simulare, furnizează utilități pentru
caracteristicile de r utină ale modelului de simulare.
Limbajele de simulare realizează o economie de timp pentru
analistul care dezvoltă o simulare. Aceste limbaje au facilități
incluse, pentru înaintarea timpului, planificarea evenimentelor,
manipularea entităților, generar ea variațiilor aleatoare,
colectarea datelor statistice și generarea de rapoarte. Un limbaj
63
cum ar fi Pascal sau FORTRAN, poate fi folosit în primul rând
de către analiștii ne -experimentați în utilizarea limbajelor de
simulare.
Dacă se alege un limbaj de simulare, se investește mult timp în
învățarea acestuia. În cele mai multe cazuri, acesta trebuie
instalat pe calculatorul pe care se lucrează și verificată existența
tuturor componentelor. Dacă se alege un limbaj de scop
general, se poate porni activitat ea imediat. Se pierde însă timp
cu dezvoltarea rutinelor pentru fiecare activitate în parte.
Durează și studiul aprofundat al acestora și întotdeauna se
descoperă probleme.
Aceasta nu înseamnă că analiștii ar trebui să folosească
neapărat limbaje de simul are. Sunt și alte considerente cum ar
fi flexibilitatea, eficiența și portabilitatea, care fac ca limbajele
de scop general să fie unica soluție. Un model dezvoltat cu un
asemenea limbaj, necesită mai puțin timp CPU și este mai
eficient. De asemenea, oferă analistului o flexibilitate mai
mare, permițându -i să aleagă căi mai scurte, interzise în
limbajele de simulare. Mai mult, un model dezvoltat în acest
mod, poate fi foarte ușor convertit pentru a fi executat pe
diferite sisteme de calcul [3].
Aceste e xtensii constau într -o colecție de rutine pentru a
manipula taskuri care sunt cerute împreună în simulare. Scopul
este de a oferi un compromis în ceea ce privește flexibilitatea,
eficiența și portabilitatea.
64
Unele p achete de simulare permit utilizatorului să definească
model ul folosind un dialog. Pachetele dispun de o bibliotecă cu
structuri de date, rutine și algoritmi. Cel mai mare avantaj este
economia de timp.
În funcție de tipul de evenimente de simulat, l imbajele de
simulare pot fi clasificate în dou ă categorii: limbaje de simulare
pentru evenimente continue și de simularea evenimentelor
discrete [3]
În administrarea simulărilor intră unele caracteristici comune
ale acestora , dupa cum este aratat in [1]:
Planificatorul de evenimente . Evenimentele din sistem
schimbă starea acestuia și astfel conduc simularea. Un
planificator de evenimente urmărește evenimentele care
urmează să aibă loc, de regulă sub forma unor liste legate și
permite manipularea acestora în diverse moduri. De exemplu:
planifică un eveniment la un anu mit moment de timp, menține
evenimentul pentru o anumită durată, anulează un eveniment
planificat anterior și planifică un eveniment menținut un timp
nedefinit. Planificatorul de evenimente este una dintre
componentele cel mai des utilizate într -o simular e. Este apelat
înainte de fiecare eveniment și poate fi apelat des pe durata unui
eveniment pentru a planifica altele noi.
Ceasul simulării și administrarea timpului . Fiecare model
de simulare trebuie să dispună de o variabilă globală care să
reprezinte ti mpul simulat. Planificatorul de evenimente are de
obicei rolul de avans al timpului fie cu câte o unitate fie direct
la momentul următorului eveniment planificat. Această ultimă
65
abordare poartă numele de administrare a timpului condusă de
evenimente (event -driven).
Variabilele de stare sistem. Dat fiind faptul ca un model de
simulare generează o parcurgere aleatoare a spațiului stărilor
unui sistem, este esențial ca modelul să aibă variabile care să
păstreze starea sistemului la fiecare pas. Dacă rularea si mulării
este oprită la un anumit moment, ea poate fi reluată din punctul
respectiv doar dacă sunt cunoscute toate valorile variabile lor de
stare.
Rutine eveniment. Fiecare eveniment din sistem, aduce cu
sine o schimbare de stare; astfel, în modelul de simu lare efectul
fiecărui eveniment trebuie reprezentat în așa fel încât să
actualizeze variabilele de stare sistem și, uneori, să planifice
alte evenimente. Modul în care aceste rutine sunt generate
depinde de paradigma de simulare utilizată în construirea
modelului.
Generatoare de numere aleatoare . Numerele aleatoare joacă
un rol crucial în cele mai multe simulări de evenimente
discrete. Un generator de numere aleatoare este folosit pentru a
genera o secvență de valori aleatoare cuprinse între 0 și 1.
Aceste valori sunt transformate apoi într -o secvență de valori
aleatoare care să satisfacă o anumită distribuție.
Generatorul de rapoarte . Măsurile de performanță sunt
deduse din rularea unei simulări urmărind valorile parametrilor
de interes pe durata simulării . Cele mai multe limbaje și
pachete de modelare a simulării conțin rutine de calcul a unor
66
statistici, pe baza observărilor, care vor fi raportate la
încheierea simulării.
Rutinele pentru înregistrări (traces). Înregistrările pot fi utile
în depanarea (num ită uneori verificare) și validarea unui model.
Este o listă de evenimente ordonată după timp, variabile de
stare sau valori ale parametrilor rezultat. Cele mai multe
limbaje de simulare dispun de rutine de generare a
înregistrărilor care pot fi activate s au oprite în timpul rulării
unui model. Datorită faptului că această generare este
ineficientă, este utilizată de regulă doar pe durata dezvoltării
modelului.
Administrarea dinamică a memoriei . Numărul de entități
active pe durata execuției unui model de s imulare va fi diferită
în funcție de crearea de noi entități, în timp ce unele se
învechesc. Cele mai multe limbaje de simulare dispun de
colectarea automată a entităților care devin inutile (garbage
collection) în scopul îndepărtării acestora.
TIPURI DE SIMULARE
Printre diversele metode de simulare descrise în literatură, de
interes pentru domeniul calculatoarelor sunt: emularea,
simularea Monte -Carlo, simularea condusă de observații (t race
driven) și simularea evenimentelor discrete.
A. O simulare care utilizează hardware sau firmware
se numește emulare . Un emulator de terminal de exemplu,
simulează un tip de terminal sau altul. Un emulator de procesor
emulează un set de instrucțiuni al unui procesor sau al altuia.
67
Chiar dacă emularea este un tip de simulare, problemele de
proiectare pentru emulare sunt cel mai des problemele
proiectării hard.
B. Simularea Monte Carlo. O simulare statică sau una
fără axa timpului, se numește simulare Mo nte Carlo . O astfel
de simulare este folosită pentru a modela fenomene
probabilistice care nu -și schimbă caracteristicile în timp. Ca și
simularea dinamică, necesită generarea unor numere pseudo –
aleatoare. Simularea Monte Carlo este folosită și pentru
evaluarea unor expresii non -probabilistice, prin folosirea unor
metode probabilistice.
C. Simularea condusă de observații (trace driven), este
o simulare care folosește o observație ca intrare . O observație
(trace) este o înregistrare de evenimente ordonate în funcție de
timp pe un sistem real. Acest tip de simulare este destul de
obișnuit în analiza sistemelor. Sunt în general folosite în analiza
sau reglarea algoritmilor de administrare a resurselor. În aceste
situații, este utilizată ca intrare a simulării, o înregistrare (trace)
a necesarului de resurse, pentru modelarea diferitor algoritmi.
Această observare se poate folosi pentru găsirea setului optim
de parametri fie pentru un anumit algoritm de management al
memoriei, fie pentru compararea diferitor algo ritmi. Ar trebui
menționat că aceste observații ar trebui să fie independente de
sistemul studiat.
Avantajele metodei (Sherman și Brown) :
Credibilitatea : Rezultatele unei simulări bazate pe
observații, sunt ușor de vândut celorlalți membri ai
68
echipei de cercetare. O observație asupra referirilor
pagină are mai multă credibilitate decât referințele
generate aleator, folosind o distribuție presupusă.
Ușurința validării: Primul pas într -o asemenea
simulare este de a monitoriza un sistem real, pentru a
colec ta observația. Pe timpul monitorizării, se pot
măsura de asemenea caracteristicile de performanță ale
sistemului. Comparând performanța măsurată cu cea
rezultată din simulare, modelul poate fi ușor validat.
Încărcare de lucru precisă: O înregistrare (trace ),
păstrează efectele corelației și interferenței asupra
încărcării de lucru. Nu este necesară nici o simplificare,
ca și în cazul modelului analitic.
Echilibrul detaliat (tradeoff) : Datorită nivelului ridicat
de detaliere în încărcarea de lucru, este pos ibil să se
studieze efectul micilor modificări ale modelului sau
algoritmului.
Caracter aleator mai redus: O observație este o intrare
deterministă. Dacă simularea se repetă, observația de
intrare este aceeași, dar rezultatul poate fi altul, datorită
carac terului aleator din alte părți ale modelului. Per
total, rezultatul unui model pe bază de observație are
varianța mai mică, ceea ce înseamnă că este necesar un
număr mai mic de repetiții pentru a obține încrederea
statistică dorită în rezultat. De asemenea , dacă alte părți
ale sistemului nu sunt aleatoare, este posibil să se
69
obțină un rezultat absolut într -o singură execuție a
modelului.
Comparație corectă: O observație permite compararea
diferitor alternative pe baza aceluiași curent de intrare.
Este o com parație mai corectă decât cea din modelele
de simulare în care intrarea este generată de un curent
(stream) aleator și este diferită pentru diversele
alternative care sunt simulate
Similaritatea cu implementarea actuală : Un asemenea
model este foarte asem ănător cu sistemul modelat.
Dezavantaje [1]:
Complexitatea: necesită o simulare detaliată a
sistemului. Uneori, complexitatea modelului umbrește
algoritmul modelat.
Reprezentativitatea: Observațiile făcute pe un sistem
nu sunt reprezentative pentru încărcarea de lucru a altui
sistem. Chiar și pe un singur sistem încărcarea de lucru
poate să se modifice în timp și astfel observațiile se
învechesc mai repede decât alte forme de modele de
încărcare de lucru, care pot fi ajustate în timp.
Finitudinea: O observație este o secvență lungă. O
observație detaliată obținută în urma câtorva minute de
activitate pe un sistem, pot să umple un disc. Rezultatul
obținut pe baza celor câteva minute, nu se poate aplica
activităților de pe durata restului zilei.
70
Punct de validare unic: Fiecare observație oferă un
singur punct de validare. Un algoritm care poate să fie
cel mai bun pentru o observație se poate să nu fie bun
și pentru restul. Trebuie folosite mai multe observații
pentru a ajunge la validarea rezultatelor.
Detaliul: P roblema principală este cea a nivelului
foarte ridicat de detaliere. Calculele trebuie făcute
pentru fiecare element din observație
Compromisul (tradeoff): Folosind observații este greu
de modificat caracteristicile încărcării de lucru. Deci,
la fiecare sc himbare a încărcării de lucru, trebuie
schimbată și observația pentru a putea trage concluzii
cu privire la impactul pe care îl are această schimbare.
D. Simulări ale evenimentelor discrete În sistemele de
calcul, sunt folosite simulările de stare discretă fiindcă starea
sistemului este descrisă de numărul de joburi ale diferitelor
dispozitive. Termenul de discret nu se referă la valorile de
timp utilizate în simulare. O simulare cu evenimente discrete
poate utiliza atât valori de timp discrete cât și continue..
GENERAREA NUMERELOR ALEATOARE
Numerele aleatoare [3] au un rol important în cadrul modelelor
de simulare. Se presupune că a numite înt ârzieri din model nu
au valori deterministe dar vor fi reprezentate prin variabile
aleatoare; similar, dacă se do rește luarea unei decizii în
71
comportamentul unei entități aceasta se poate face
probabilistic. În ambele situații va fi necesar ă introducerea
eșantionării probabilității de distribuție astfel încât, pentru a
extrage câte o valoare de câte ori se ajunge în acea parte a
comportamentului entității. Pentru ambele situații este necesar
un generator de numere aleatoare .
Metoda cea mai comună este de a folosi o relație recursivă prin
care se obține ca într -o secvență, numărul următor să fie funcție
de ul timul număr sau ultimele două, adică:
xn=f(x n-1, xn-2, …)
O asemenea funcție este de exemplu:
16mod1 51n n x x
Este evident că dacă funcția f este cunoscută, se poate regenera
secvența oricând, cu condiția ca x 0 să fie dat. Această valoare,
care e ste folosită pentru începerea secvenței, se numește
valoare inițială sau sursă ( seed ).
O observație importantă cu privire la această funcție este aceea
că este deterministă . Fiind dată originea, se poate spune cu
probabilitate a de 1, care vor fi numerele din secvență.
Numerele sunt aleatoare pentru că vor trece testele statistice
pentru caracter aleator. Caracter ul lor fiind doar parțial aleator
se numesc pseudo -aleatoare . Este preferabil ă utiliza rea lor ,
deoarece deseori este necesară repetarea simulării în exact
aceleași condiții ca și anterior. Dacă sunt necesare rezultate
diferite, trebuie schimbată originea înainte de a rula simularea.
Astfel, există un control suplimentar asupra reproductibilității
rezultatelor.
72
Proprietățile unei funcți i generatoare :
1. Trebuie să fie calculabilă eficient. Pentru că simulările
necesită mai multe mii de numere aleatoare la fiecare
rulare, timpul procesor necesar generării acestora trebuie
să fie cât mai mic.
2. Perioada ar trebui să fie mare. O perioadă scurtă, ar putea
determina reciclarea secvenței de numere aleatoare și deci
s-ar obține o secvență de evenimente repetată. Aceasta ar
limita lungimea utilă a rulării simulării.
3. Valorile succesive ar trebui să fie independente și uniform
distribuite. Corelația dintre numerele succesive ar trebui să
fie mică, pentru că dacă are valori semnificative, indică
dependența.
Tipuri de generatoare de numere aleatoare [3]:
Linear -congruente
Tausworthe
Fibonacci extins
Combinate
GENERATOARE LINEAR C ONGRUENTE
73
În 1951, D.H.Lehmer a de scoperit că reziduurile puterilor
succesive ale unui număr, au bune proprietăți aleatoare. A
obținut al n-lea număr din secvență împărțind a n-a putere a
unui întreg a, cu un alt întreg m și luând restul. Adică: x n=an
mod m
O expresie echivalentă utiliza tă pentru a calcula x n după
calculul lui x n-1 este:
m ax xn n mod1
Parametrii a și m sunt numiți multiplicatori și respectiv
module . Lehman a ales pentru aceștia valorile : a=23 și
m=108+1. Acestea au fost implementate pe mașina ENIAC,
care era o mașină zecimală pe opt biți.
Multe dintre generatoarele de numere aleatoare folosite curent
sunt o generalizare a propunerii lui Lehman și au următoarea
formă:
m b ax xn n mod1
Aici, x n-ii sunt întregi între 0 și m-1. Constantele a și b sunt ne –
negative.
Aceste generatoare sunt populare pentru că pot fi ușor analizate
și se pot da anumite garanții cu privire la proprietățile lor,
folosind teoria congruenței. Din aceste motive, se mai numesc
Generatoare Mixte Linear Congruente sau Generatoare
Linea r Congruente (LCG) . Termenul de mixt, implică
utilizarea atât a multiplicării cu a și a adunării cu b. În general,
alegerea lui a, b și m afectează perioada de autocorelare din
secvență.
74
LCG MULTIPLICATIVE
Generatoarele prezentate anterior sunt LCG mixte. Dacă
incrementul b este zero, cum a fost cazul inițial pe care l -a
propus Lehman, nu mai este implicată nici o adunare și
generatorul se numește LCG multiplicativ și are forma:
m ax xn n mod1
Este evident că LCG -urile multiplicative sunt mai ef iciente
decât cele mixte, din punctul de vedere al timpului procesor
necesar calculului. Mai multă eficiență poate fi obținută prin
alegerea lui m ca putere a lui 2, astfel încât operația mod devine
trivială. Se poate a stfel vorbi despre LCG multiplicative de
două tipuri: unele cu m = 2k și altele cu m≠2k.
Una dintre precauțiile necesare la implementarea LCG este ca
toate calculele să fie făcute fără rotunjiri ale erorilor adică, să
se efectueze calculele folosind aritmetică întreagă, fără depășiri
(overfl ow). Perioada se poate reduce considerabil dacă au loc
trunchieri .
A doua problemă în implementarea LCG, este aceea că
produsul ax n-1, poate depăși cel mai mare număr permis de
sistem, producând depășire întreagă. O soluție pentru această
problemă este cea propusă de Schrage (1979), bazată pe
următoarea identitate :
m) div() ()( si) () mod( )( unde)( )( mod
ax qdivx xhxdivqrq xaxgxmhxgm ax
75
Aici, q = m div a , r = m mod a . Operația A div B este
echivalentă cu împărțirea celor două și trunchierea rezultatului.
Se poate arăta că pentru toți x -ii din domeniul 1, 2, 3, .., m -1,
expresiile implicate în calculul g(x) sunt toate mai mici decât
m-1. De asemenea, dacă r < q, h(x) este fie 0, fie 1 și poate fi
dedus din g(x); h(x) este 1, dacă și numai dacă g(x) este
negativă. Astfel, operația ax, care ar putea produce depășire, nu
trebuie executată.
GENERATOARE TAUSWORT HE
Interesul pentru generatoarele de numere aleatoare a crescut
datorită utilizării lor în aplicațiile criptografice. În asemenea
aplicații, sunt cerute numerele aleatoare de lungimi mari.
Asemenea numer e se obțin folosind o secvență aleatoare de
cifre binare, care apoi se împarte în șiruri de lungimi dorite.
Asemenea generatoare au fost propuse de Tausworthe (1965).
În general, un generator Tausworthe are următoarea
formă:
qn n q n q n bc bc bc b 0 2 2 1 1 …
unde c i și b i sunt variabile binare cu valori de 0 și 1. Generatorul
utilizează ultimii q biți din secvență. De aceea se numește
secvență autoregresivă de ordinul q , sau AR(q) . Un asemenea
generator poate avea o perioadă maximă de 2q-1.
76
Dacă se folosește D pen tru a denumi un operator de întârziere
astfel încât Db(n)=b(n+1), ecuația precedentă poate fi scrisă:
2 mod) ( …) ( ) ( ) (02
21
1 qibc qib DcqibDcqibDq
qq
qq
sau:
2 mod0 …02
21
1
c Dc Dc Dq
qq
qq
Ecuația precedentă este echivalentă cu :
2 mod0 …02
21
1
c Dc Dc Dq
qq
qq
Polinomul din partea stângă a ecuație i este numit polinom
caracteristic și se scrie de obicei cu x în locul lui D:
02
21
1 …c xc xc xq
qq
qq
Perioada unui generator Tausworthe depinde de polinomul
caracteristic. În particular, perioada este cel mai mic întreg n,
pentru care xn-1 este divizibil c u polinomul caracteristic .
Perioada maxim posibilă cu un polinom de ordin q este 2q-1.
Polinoamele care dau această perioadă sunt numite polinoame
primitive .
O secvență Tausworthe poate fi generată ușor din punct de
vedere hardware, folosind registre de d eplasare cu feedback
linear (Linear feedback shift registers –LFSR).
77
Din secvența de biți AR(q), se pot obține întregi aleatori de
lungime dorită. Tausworthe a propus construirea numerelor
aleatoare x n, de l-biți, folosind secvența de biți b n , prin
împă rțirea acesteia în grupuri succesive de s biți din care se
folosesc primii l biți ai fiecărui grup, ca fracție binară; adică:
1 2 1 …. .0 lsn sn snsn n b bbb x sau echivalent:
l
jjsnj
n b x
11 2
Aici, s este o constantă mai mare sau ega lă cu l și relativ primă
cu 2q-1. Prima restricție s ≥ l, asigură că dacă x n și x j pentru n≠j,
nu au nici un bit comun. A doua restricție, asigură perioada de
2q-1 pentru x n.
Dezavantajul acestor generatoare este acela că, în timp ce
secvența poate produ ce rezultate de test bune pe timpul ciclului
complet, s -ar putea să nu aibă un comportament local
satisfăcător. Deși corelația serială de ordin unu este aproape
zero, se bănuiește că anumite polinoame primitive pot da
corelații de nivel înalt, mici.
Pentru a construi numere aleatoare x n de l-biți din secvența
binară b n, Lewis și Payne (1973), au propus o metodă ușor
diferită de cea a lui Tausworthe. În această metodă, numită
GFSR (Generalized Feedback Shift Register), o secvență de l –
biți x n, este generat ă din secvența binară, după cum urmează:
78
sln snsnn n b bbb x)1( 2… .0
Aici, s este o întârziere aleasă cu grijă. Avantajul cheie al
metodei este acela că secvența x n poate fi generată foarte
eficient folosind deplasarea pe cuvânt și instrucțiuni sau –
exclusiv. Totuși necesită memorarea unei matrici de numere,
iar inițializarea ei trebuie făcută cu grijă [3]
GENERATOARE FIBONACC I EXTINSE
O secvență Fibonacci {x n} este generată de relația următoare:
xn=xn-1+xn-2
Generarea de numere aleatoare se poate încerca prin utilizarea
următoarei modificări a secvenței Fibonacci:
m x x xn n n mod2 1
GENERATOARE COMBINAT E
Este posibilă combinarea a două sau mai multe generatoare de
numere aleatoare, pentru a obține unul mai "bun". Tehnici de
realizare:
Adăugarea de nu mere aleatoare obținute cu două sau
mai multe generatoare. Dacă x n și y n sunt două
secvențe de numere aleatoare în domeniul 0 .. m -1, pot
fi combinate pentru a produce w n=(x n+yn) mod m.
Dacă cele două secvențe au perioade diferite și sunt
79
obținute cu algor itmi diferiți, aceasta ar putea mări
considerabil perioada și caracterul aleator.
Numere aleatoare obținute prin SAU -EXCLUSIV între
două sau mai multe generatoare. Această tehnică este
similară celei anterioare, adunarea fiind înlocuită cu
SAU -EXCLUSIV .
Shuffle – Această tehnică, folosește o secvență ca
index, pentru a de cide care dintre multele numere
generate de o a doua secvență să fie returnat. Una
dintre tehnicile de shuffling, mai cunoscută, este cea
propusă Marsaglia și Bray (1964) și are numele de
algoritm M . Se pare că asigură o proprietate de k –
distributivitate m ai bună decât cele generatoarele
bazate pe LFSR.
Cel mai bine este să se folosească un generator consacrat, care
a fost bine testat, decât inventarea unuia nou [3]
ANALIZA REZULTATELOR SIMULĂRII
Eficiența unui model de simulare este măsurată de
simili tudinea rezultatelor acestuia cu cele ale unui sistem real.
În primul rând, trebuie văzut dacă presupunerile făcute cu
privire la comportamentul sistemului real sunt corecte, iar apoi
dacă modelul corect implementează aceste presupuneri. Acești
doi pași su nt numiți verificare și validare . Validarea se ocupă
cu reprezentativitatea presupunerilor, iar verificarea este
legată de corectitudinea implementării . Verificarea se mai
poate numi și depanare (debugging) adică, asigurarea că
80
modelul va face ceea ce s -a preconizat. Validarea și verificarea
sunt concepte diferite prin aceea că, un model poate face parte
dintr -una din cele patru categorii posibile: invalid și neverificat ,
invalid și verificat , valid și neverificat și valid și verificat .
PROIECTARE MODULAR Ă DE SUS ÎN JOS
Modelele de simulare sunt programe mari. Toate tehnicile care
ajută la dezvoltarea, depanarea sau întreținerea programelor
mari sunt de asemenea utile pentru modelele de simulare.
Modularitatea impune ca modelul să fie structurat în modul e
care comunică între ele prin intermediul unor interfețe bine
definite. Aceste module poartă de regulă numele de subrutine,
subprograme, proceduri, etc. Interfața constă dintr -un număr de
variabile de intrare și ieșire sau, structuri de date. Odată ce
interfața și funcția unui modul au fost specificate, acesta poate
fi dezvoltat, depanat și întreținut independent. Modularitatea
permite astfel ca verificarea unei simulări să fie împărțită în mai
multe probleme de verificare a modulelor și a interfețelor lor .
Proiectarea de sus în jos, constă din dezvoltarea unei structuri
ierarhice pentru model, astfel încât problema să fie împărțită
recursiv într -un set de probleme mai mici.
ELIMINAREA ERORILOR
Constă din includerea în program a unor verificări și ieșiri
adiționale, care vor semnala problemele (bugs), dacă acestea
există.
81
PARCURGERE STRUCTURA TĂ ( WALK –
THROUGH )
Constă din prezentarea și explicarea codurilor, altor persoane
sau grupuri. Programatorul explică ce face fiecare linie de cod.
Chiar dacă auditor iul nu înțelege modelul, cei care se ocupă de
dezvoltare, descoperă problemele prin parcurgerea cu grijă a
programelor.
MODELE DETERMINISTE
Problema cheie în depanarea programelor de simulare este
reprezentată de caracterul aleator al variabilelor. Este e vident
că un program determinist este mai ușor de depanat. O tehnică
de verificare uzuală, este aceea de a permite utilizatorului să
specifice orice distribuție. Desigur, parametrii impliciți ar
trebui setați să reprezinte comportamentul într -un sistem rea l.
Dar prin specificarea distribuțiilor constante (deterministe),
utilizatorul poate determina cu ușurință variabilele de ieșire și
astfel să depaneze modulele.
RULAREA UNOR CAZURI SIMPLIFICATE
Modelul poate fi rulat pe cazuri mai simple, de exemplu, un
singur pachet, o singură sursă, sau un singur nod intermediar.
Aceste cazuri pot fi ușor analizate. Evident că un model care
merge pe cazuri simple nu este obligatoriu să funcționeze și pe
cele complexe. De aceea cazurile de test trebuie să fie atât de
compl exe cât să permită o analiză ușoară, fără simulare.
82
URMĂRIREA (TRACE)
Constă dintr -o listă ordonată a evenimentelor și a variabilelor
asociate. Ele pot fi prezentate la diverse nivele de detaliu:
evenimente, proceduri sau variabile. Ieșirile acestor observ ări
sunt utile în depanarea modelului. Urmărirea produce consum
suplimentar de procesare și de aceea modelul ar trebui să aibă
switch -uri care permit activarea sau dezactivarea ei.
AFIȘAREA GRAFICĂ ON -LINE
Simularea durează foarte mult. Graficele împreună cu
observările (traces) ajută la menținerea informării utilizatorului
cu privire la starea simulării. Reprezentarea grafică prezintă
rezultatele într -o formă mult mai intuitivă și în plus, ajută la
depanare.
TESTUL DE CONTINUITA TE
Testele de continuitate c onstau din rularea simulării de mai
multe ori, cu ușoare modificări ale parametrilor de intrare.
Pentru oricare parametru, o ușoară modificare a intrării ar
trebui să producă doar o modificare ușoară a ieșirii. Orice
schimbare bruscă a ieșirii trebuie stud iată; cel mai des se
datorează unor erori de modelare.
TESTE DE DEGENERARE
Constau din a verifica dacă modelul funcționează și pentru
valorile extreme ale parametrilor sistemului, configurației, sau
83
a încărcării de lucru. Totuși aceste cazuri extreme s -ar putea să
nu reprezinte cazuri tipice, ele ajută însă la descoperirea
problemelor la care altfel analistul nu s -ar gândi. Mai este util
să fie incorporate verificări ale valorilor parametrilor de intrare
și a încadrării lor în limitele permise. Analistul tr ebuie să
verifice funcționarea modelului pentru oricar e combinație a
limitelor admise [3].
TESTE DE CONSISTENȚĂ
Acestea constau din a verifica dacă modelul produce rezultate
similare, pentru valori ale parametrilor de i ntrare care au efecte
similare. De exemplu, două surse cu o rată de sosire de 100
pachete/secundă, ar trebui să încarce rețeaua cam la același
nivel ca și patru surse care au o rată de sosire de 50
pachete/secundă. Dacă ieșirea modelului indică o diferență
semnificativă între cele două situații, fie aceasta este
explicabilă, fie se datorează erorilor de programare.
Situațiile de test de continuitate, degenerare și consistență ar
trebui păstrate într -o bibliotecă de test astfel încât oricând apare
vreo schim bare în model, testele să poată să fie repetate pentru
verificare.
INDEPENDENȚA ORIGINI I
Sursele folosite în generarea de numere aleatoare nu ar trebui
să afecteze concluzia finală. Astfel, modelul ar trebui să
producă rezultate similare pentru diferite va lori sursă. Se pot
verifica rulând simularea cu diferite valori inițiale [3].
84
TEHNICI DE VALIDARE A MODELULUI
Validarea asigură că presupunerile folosite în dezvoltarea
modelului sunt rezonabile adică, dacă este corect i mplementat,
modelul ar trebui să producă rezultate apropiate celor observate
în sistemele reale. Tehnicile de validare depind de presupuneri
și de aici, de sistemele care sunt modelate. Astfel, tehnicile de
validare sunt în general aplicabile doar într -o simulare.
Se impune validarea celor trei aspecte esențiale ale modelului:
Presupuneri
Valori și distribuții ale parametrilor de intrare
Valori de ieșire (rezultate) și concluzii
Fiecare dintre aceste trei aspecte pot deveni subiect de testare a
validității prin compararea cu cele obținute dintr -una dintre cele
trei surse posibile:
Intuiția expertului
Măsurători ale sistemului real
Rezultate teoretice
Acestea conduc spre nouă tehnici de validare posibile.
Bineînțeles, s -ar putea să nu fie posibilă folosirea u nora dintre
ele. De exemplu, s -ar putea să nu fie disponibile nici un fel de
măsurători din sisteme reale, sau rezultate teoretice.
85
INTUIȚIA EXPERTULUI
Este cea mai practică și simplă metodă de validare a unui
model. Din tr-un colectiv fac parte persoane specializate pe
diverse domenii cum ar fi : proiectarea arhitecturii,
implementare, analiză, marketing sau întreținere. Evident,
selecția acestora depinde de stadiul din ciclul de viață al
sistemului care se modelează. Pentru sistemele deja în uz, sunt
preferați cei de la service sau marketing, ei cunoscând sistemul
mai bine decât implementatorii. În practică, este mai bine să se
facă validarea celor trei aspecte – presupuneri, intrare și rezultat
– separat, pe măsură ce modelul se dezvoltă. Presupunerile
trebuie soluționate imediat ce se pregătește un nou model de
simulare. Valorile de intrare și distribuțiile trebuie să fie
discutate și validate în timpul dezvoltării modelului.
Rezultatele (ieșirile), trebuie validate imediat după ce a fost
verificat un m odel. O tehnică de a judeca validitatea
rezultatelor este de a le prezenta împreună cu măsurătorile
făcute pe sistemul real, pentru ca experții să poată să le
compare. Analiștii pot sesiza erorile din simulare, doar
urmărind rezultatele acesteia.
MĂSURĂTO RI ÎN SISTEMUL REAL
Comparația cu sistemele reale este cea mai fiabilă și reprezintă
calea cea mai de dorit pentru validarea unui model de simulare.
În practică totuși, deseori nu este fezabilă fie pentru că
sistemele reale s -ar putea să nu existe, fie pen tru că
86
măsurătorile s -ar putea să fie prea costisitoare. Chiar dacă
puține, măsurătorile adaugă validitate simulării.
Presupunerile, valorile de intrare, rezultatele, încărcările de
lucru, configurațiile și comportamentul sistemului, ar trebui
comparate c e cele existente. Tehnicile statistice pot fi utilizate
pentru a compara modelul de simulare cu datele măsurate. În
simulările pe bază de observații (traces), pentru a valida
modelul, trebuie folosite înregistrări (traces) multiple obținute
în diverse me dii.
REZULTATELE TEORETIC E
În anumite situații, este posibil ă model area analitic ă a
sistemul ui în condițiile anumitor presupuneri simplificatoare.
S-ar mai putea determina analitic distribuțiile de intrare. În
asemenea cazuri, pentru validarea modelului de simulare, este
utilizată similitudinea între rezultatele teoretice și cele din
simulare. Similar, pentru dezvoltarea modelelor cu șiruri de
așteptare, analiștii constată că este foarte dificil ă modela rea
exact ă a comportamentul unui sistem real, de aceea ei dezvoltă
tehnici de aproximare, validarea făcându -se prin comparație cu
rezultatele obținute din simulare.
Această tehnică trebuie utilizată cu grijă, având în vedere că
atât tehnica de validare, cât și simularea pot fi invalide deoarece
se constată că nu reprezintă comportamentul real al unui sistem.
Modelarea analitică permit e validarea pentru cazuri mai
complexe. Trebuie ținut cont de faptul că nu există un model
complet validat. În realitate, putem doar să demonstrăm ca
87
modelul este valabil pentru câteva dintre situațiile comparate.
Pentru a dovedi că modelul funcționează ca și sistemul real în
toate circumstanțele, ar fi nevoie de o cantitate inestimabilă de
resurse. Exercițiul de validare este deci limitat la un număr de
scenarii și la încercarea de a acoperi cazurile cele mai
importante, ceea ce ajută la creșterea încrederii în rezultatele
modelului.
TRANSFER (REMOVAL) T RANZITORIU
În cele mai multe simulări, este de interes performanța de
stare stabilă respectiv, performanța după atingerea de căt re
sistem a unei stări stabile. În asemenea cazuri, rezultatele părții
inițiale a simulării n -ar trebui să fie incluse în calculul final.
Această stare inițială se numește stare tranzitorie. Problema
identificării sfârșitului stării tranzitorii se numește transfer
tranzitoriu . Problema cea mai mare este că nu se poate defini
cu exactitate ce anume constituie starea tranzitorie și momentul
în care aceasta se încheie. Toate metodele sunt deci euristice și
sunt:
1. Rulări lungi
2. Inițializare corespunzătoare
3. Trunch ierea
4. Ștergerea datelor inițiale
5. Mutarea majorității replicărilor independente
6. Medii pe loturi
88
RULĂRILE LUNGI
Prima metodă este de a utiliza pur și simplu rulări foarte lungi;
suficient ca să asigure că prezența condițiilor inițiale nu va
afecta rezultatu l. Metoda are două dezavantaje. Întâi, face
risipă de resurse; dacă simularea este scumpă, n -ar trebui să
dureze mai mult decât este absolut necesar. În al doilea rând,
chiar dacă generarea de noi observații nu consumă resurse
semnificative, este greu de s tabilit dacă lungimea simulării este
suficientă. Nu este o metodă recomandată.
INIȚIALIZARE CORESPU NZĂTOARE
O inițializare corespunzătoare necesită pornirea simulării într –
o stare apropiată cu starea stabilă preconizată. Această metodă
rezultă într -o redu cere a lungimii perioadei tranzitorii astfel
încât efectul asupra calculului total să fie cât mai mic.
TRUNCHIEREA
În această situație și în următoarele, se pornește de la
presupunerea că variabilitatea în timpul unei stări stabile este
mai mică decât în s tarea tranzitorie, ceea ce în general, este
adevărat. În metoda trunchierii, variabilitatea este măsurată în
termeni de nivel – minimul și maximul de observații. Dacă se
trasează traiectoria unor observații succesive, se poate observa
că domeniul acestora se stabilizează în momentul în care
simularea intră într -o fază de stare stabilă.
89
Fiind dat un eșantion de n observații {x 1, x2,…, x n}, metoda
trunchierii constă din ignorarea primelor l observații și se
calculează apoi minimul și maximul celor n-l observații. Acest
pas este repetat de l = 1,2,…, n -1 până când a (l+1) -a
observație, nu este nici minimul nici maximul observațiilor
rămase. Valoarea lui l, reprezintă la acest moment
dimensiunea stării tranzitorii.
Trunchierea poate da uneori rezultate inc orecte.
ȘTERGEREA DATELOR IN IȚIALE
Necesită studiul mediei totale, după ce câteva dintre
observațiile inițiale sunt șterse din eșantion. În timpul stării
stabile, media nu se schimbă mult în urma observațiilor șterse.
Cu toate acestea, caracterul aleator a l observațiilor, produce
ușoare modificări ale valorii mediei chiar și în timpul acestei
stări. Pentru a reduce efectul aleator, metoda necesită în primul
rând media mai multor replicări. Fiecare replicare constă dintr –
o rulare completă a simulării fără ni ci o schimbare în valorile
parametrilor de intrare. Replicările diferă doar prin valorile
inițiale folosite în generarea numerelor aleatoare. Traiectoria se
netezește dacă se face media pe replicări.
Presupunem că avem m replici de dimensiune n fiecare.
Fie xij a j-a observație dintr -a i-a replicare. j ia valori de la 1 la
n, iar i de la 1 la m. Metoda constă din următorii pași:
1. Se obține o traiectorie medie calculând media pe replici:
90
m
iij m i x x
11, j=1,2,…,n
2. Se calculează media totală:
n
jj nx x
11 . Se alege l =1 și
trecem la pasul următor.
3. Presupunând că starea tranzitorie este doar de lungime l, se
șterg primele l observații din traiectoria medie și se obține
o medie totală din cele n -1 valori rămase:
n
ljj n l x x
111
4. Se calc ulează schimbarea relativă a mediei totale:
xxxl
5. Se repetă pașii 3 și 4 modificând pe l de la 1 la n-1. După
o anumită valoare l, modificarea relativă a graficului se
stabilizează. Acest punct, este cunoscut sub numele de cot
(knee) și va loarea lui l în acest punct, este lungimea
intervalului tranzitoriu.
MUTAREA MEDIEI REPLI CILOR
INDEPENDENTE
Metoda mutării (deplasării) replicărilor independente este
similară celei de ștergere a datelor inițiale. Diferența de bază
constă în aceea că aceas tă metodă necesită calculul mediei într –
o fereastră de timp în deplasare.
91
Fiind date m replicări de dimensiune n fiecare, x ij notează a j-a
observație dintr -a i-a replică. Pașii sunt:
1. Se obține o traiectorie medie făcând media replicilor:
m
iij m i x x
11
j=1, 2, …,n. Se setează k=1 și:
2. Se trasează o traiectorie a mediei în deplasare a 2k+1 valori
succesive:
k
klj j xkx1121 , j=k+1, k+2,…,n -k
3. Se repetă pasul 2, cu k=2, 3, … până când curba este
suficient de netedă
4. Trebuie găsit cotul cu rbei. Valoarea j dă lungimea fazei
tranzitorii
MEDII PE LOTURI
Necesită rularea unei simulări foarte lungi și împărțirea ei
ulterioară în mai multe părți de durate egale. Acestea se numesc
loturi, sau subeșantioane. Media observațiilor din fiecare lot se
numește media lotului. Metoda impune studiul varianței
acestor medii de lot, ca funcții de dimensiunile acestora.
O rulare lungă de N observații, poate fi împărțită în m loturi de
dimensiune n fiecare, unde m= N/n . . este folosită pentru
92
a nota trunc hierea până la valoarea întreagă inferioară. Se
pornește cu o valoare mică a lui n, fie 2. Fie x ij a j-a observație
din al i-lea lot:
1. Pentru fiecare lot, se calculează media:
n
jij n i x x
11 , i=1,
2, …, m
2. Se calculează media totală:
m
ii mx x
11
3. Se calculează varianța mediilor loturilor:
m
ii mxx x Var
12
11) ( )(
Se mărește n și se repetă pașii de la 1 la 3, pentru n=3, 4, 5,…
Se trasează varianța, ca funcție de dimensiunea lotului, n.
Lungimea intervalului tranzitoriu este valoarea lui n pentru
care varianța începe să scadă sensibil.
Raționamentul pe care se bazează această metodă este
următorul: se presupune că lungimea perioadei tranzitorii este
T. Dacă dimensiunea n a lotului este mult mai mică decât T,
loturile inițiale aduc media to tală spre valoarea inițială a mediei
lotului, varianța este deci mică. Pe măsură ce dimensiunea
lotului crește, crește și varianța. La o valoare a lui n mai mare
decât T, doar media primului lot este diferită; mediile celorlalte
loturi sunt aproximativ ega le, ceea ce determină scăderea
varianței. În utilizarea acestei metode, trebuie ignorate acele
vârfuri pe curba varianței care sunt urmate de creșteri [3].
93
ÎNCHEIEREA SIMULĂRII
Cu toate că majoritatea simulărilor consideră că prezintă interes
performan ța stării stabile, există sisteme care nu ajung
niciodată într -o asemenea stare. Aceste sisteme permit operarea
în condiții tranzitorii. De exemplu, dacă traficul rețelei constă
din transferul unor fișiere mici (unul până la trei pachete),
simulările de st are stabilă care folosesc fișiere mari, vor da
rezultate fără importanță pentru un utilizator tipic. În asemenea
cazuri, este necesar studiul sistemului într -o stare tranzitorie.
Asemenea simulări se numesc simulări de încheiere. Alte
exemple de simulări d e încheiere, sunt sistemele care se închid
(shut down) la o anumită oră de exemplu, sau sistemele care au
parametri care se modifică în timp.
O altă problemă conexă este cea a condițiilor finale – respectiv,
cele de la finalul simulării. Starea sistemului la sfârșitul
simulării se poate să nu fie tipică stării stabile. În asemenea
cazuri, este necesar să se excludă porțiunea finală din răspunsul
din calculul de stare stabilă.
În final, analistul trebuie să mânuiască cu grijă entitățile rămase
la sfârșitul simulării.
serviciul incheiat au -si care joburi de numaruli serviciulu a totala duratai serviciulu a medie Durata
94
Când se calculează timpul mediu de așteptare, trebuie utilizate
doar joburile care și -au încheiat așteptarea și au început
execuția:
serviciu primit au care joburi de numarulasteptare de timpilor sumaasteptare de medie Durata
dacă q j este lungimea cozii la al j -lea eveniment care a
deter minat o schimbare a lungimii cozii, media acestor lungimi,
nu dă lungimea medie a cozilor, adică:
n evenimente de numarulj) lui evenimentu cozii (lungimea
cozii a medie Lungimean
1j
Trebuie utilizată în schimb o durată medie a procesului de
lungime a cozii:
T
0cozii(t)dt LungimeaT1cozii a medie Lungimea
Criteriu de încheiere: estimarea v arianței
Este importantă alegerea adecvată a lungimii simulării. Dacă
este prea scurtă, rezultatele pot fi foarte variabile. Pe de altă
parte, dacă este prea lungă, resursele de calcul și cele umane
sunt irosite inutil. Simularea ar trebui rulată până c ând
95
intervalul de încredere pentru răspunsul mediu, se îngustează
până la lungimea dorită. Adică :
)(2/ 1 x Var zx
Varianța mediei eșantionului pentru n observații independente
se poate obține cu ușurință din varianța observațiilor:
nx Varx Var)()(
De obicei observațiile nu sunt independente. Statistic a dispune
de metode pentru calculul corect al varianței mediei
observațiilor corelate:
Replicări independente
Medii de lot
Regenerare
Dintre acestea, primele sunt similare celor descrise anteri or
pentru transferul tranzitoriu.
REPLICĂRI INDEPENDEN TE
Replicarea se obține din repetarea simulării cu valori inițiale
diferite. Această metodă se bazează pe presupunerea că mediile
replicărilor independente sunt independente, chiar dacă
observațiile din tr-o replică sunt corelate.
96
Metoda constă din utilizarea a m replici de dimensiune n+n 0,
fiecare, n 0 fiind lungimea stării tranzitorii. Primele n 0 observații
din fiecare replică sunt înlăturate. Pașii sunt:
1. Pentru fiecare replică, se calculează media:
nn
njij n i x x0
011 ,
i=1, 2, …, m
2. Se calculează media totală:
m
ii mx x
11
3. Se calculează varianța mediilor replicilor:
m
ii mxx x Var
12
11) ( )(
Intervalul de încredere pentru răspunsul mediu este:
)(2/1 xVar zx
De remarcat că metoda n ecesită îndepărtarea a mn 0 observații
inițiale. Mai departe, mărimea intervalului de încredere este
invers proporțională cu
mn . Astfel, un interval de încredere
mai îngust se poate obține la fel de bine, fie crescând pe m, fie
pe n. Tot uși, pentru a reduce pierderea ( observații), se
sugerează ca m să fie menținut relativ mic, de exemplu 10.
Lungimea replicărilor ar trebui mărită pentru a obține
încrederea dorită.
97
MEDII PE LOTURI
Se mai numește metoda sub -eșantioanelor, constă din rulare a
unei simulări lungi, îndepărtând intervalul tranzitoriu inițial și
împărțirea observațiilor rămase în mai multe loturi sau sub –
eșantioane.
Fiind dată o rulare lungă a N+n 0 observații, unde n 0 este
numărul de observații care aparțin intervalului tranzitor iu sunt
îndepărtate, cele N observații rămase se împart în m =
mN/
loturi a n observații fiecare. Se pornește cu o valoare mică
pentru n, de exemplu n=1 și se continuă astfel:
1. Pentru fiecare lot, se calculează media:
n
jij n i x x
11 , i=1,
2, …, m
2. Se calculează media totală:
m
ii mx x
11
3. Se calculează varianța mediilor loturilor:
m
ii mxx x Var
12
11) ( )(
Intervalul de încredere pentru răspunsul mediu este:
)(2/1 xVar zx
98
De menționat că în principal, calculul se f ace la fel ca în cazul
replicărilor independente. Totuși metoda mediilor pe loturi
implică pierdere mai mică. Se renunță doar la n 0 observații.
Dimensiunea intervalului de încredere este invers
proporțională cu
mn și poate fi redusă prin creșterea fie a
numărului m de loturi sau a dimensiunii acestora, n.
Dimensiunea lotului n, trebuie să fie atât de mare încât mediile
pe loturi să aibă corelație mică. O cale pentru a -l găsi n -ul
corect este de a calcula covarianța mediilor pe loturile
succesive:
1
11 1 ) )( (21),(m
ii i ii x xxxmxx Cov
Această cantitate se mai numește și auto -covarianță. Prefixul
auto desemnează faptul că ambele variabile aleatoare
ix și
1ix
fac parte din același set.
Analiza precedentă este repeta tă cu valori crescătoare a
dimensiunii loturilor, până când auto -covarianței mediilor lot
este mică în comparație cu varianța lor. O variantă ar fi pornirea
cu n mic (de exemplu n=1) și dublarea lor succesivă.
METODE DE REGENERARE
Momentul în care sistemul intră într -o fază independentă, se
numește punct de regenerare.
99
Un sistem regenerativ (un sistem cu cicluri de regenerare) poate
fi analizat cu metoda regenerării. Și totuși, nu toate sistemele
sunt regenerative. Un sistem cu două cozi se poate regenera
atunci când ambele cozi sunt goale. Dacă numărul cozilor
crește, punctele de regenerare sunt mai rare iar ciclurile de
regenerare sunt mai lungi. Unele sisteme au "memorie" lungă,
ceea ce le face neregenerative.
Calculul varianței utilizând ciclurile de regenerare este destul
de complex. Aceasta pentru că ciclurile de regenerare sunt de
lungimi diferite. Timpul de răspuns mediu total nu poate fi
obținut din mediile ciclurilor individuale. Mediile ciclurilor
sunt rapoarte cu baze (lungimi de cicluri) care sunt diferite .
Presupunând că avem o simulare regenerativă constând din m
cicluri de dimensiuni n 1, n2, …, n n respectiv. Mediile ciclurilor
sunt date de:
in
jij
ii xnx
11
Totuși, media totală nu este o medie aritmetică a mediilor
ciclurilor:
m
iixmx
11
Procedura corectă pentru a calcula media totală și intervalul său
de încredere este:
100
1. Se calculează suma ciclurilor:
in
jij i x y
1
2. Se calculează media totală:
m
iim
ii
ny
x
11
3. Se calculează diferența dintre suma cicluri lor așteptată și
cea observată:
xny wi i i , i=1, 2, …,m
4. Se calculează varianța diferenței :
m
ii w wms w Var
12 2
11)(
5. Se calculează lungimea ciclului mediu :
m
ii mn n
11
Intervalul de încredere pentru răspunsul mediu este dat de:
mnszxw
2/ 1
Metoda are și dezavantaje. Întâi, lungimile ciclurilor sunt
imprevizibile. Nu se poate planifica durata simulării dinainte.
În al doilea rând, găsirea punctului de regenerare nu este
simplă; poate necesita multe verificări după fie care eveniment.
În al treilea rând, tehnicile de reducere a varianței cum ar fi
fluxuri aleatoare comune sau variabile opuse, nu pot fi folosite
101
din cauza lungimii variabile a ciclurilor. În final, estimatorii
mediei și varianței sunt prejudiciați în sensu l că valorile lor
așteptate dintr -un eșantion aleator, nu sunt egali cu cantitățile
estimate [1] [3].
102
CAPITOLUL 5
CONCLUZII
Tehnicile pentru evaluarea de performanță sunt după cum am
arătat: măsurarea, în care se încad rează benchmarking,
monitorizarea și dezvoltarea de prototipuri și modelarea –
analitică și pentru simulare.
Din modelarea analitică am abordat problematica legată de:
legile operaționale, procese Markov cu paradigmele de
modelare de nivel înalt legate de ele – rețele Petri, algebre de
proces stohastice și rețelele cu șiruri de așteptare.
Procesele Markov constituie o tehnică de modelare
convenabil ă, însă odată cu creșterea numărului de stări ale
sistemului studiat , construirea spațiului complet de stare ș i
găsirea tuturor tranzițiilor posibile în acest mod , constituie o
problemă complicată . Pentru c reșterea eficien ței, este necesară
o descriere mai abstractă a comportamentul sistemului . În acest
scop au fost introduse p aradigmele de modelare de nivel înalt ,
ale căror formalisme pot furniza modalitățile de abstractizare a
comportamentului sistem. Oferă analistului posibilitatea de a
descrie sistemul prin primitive ale paradigmei și nu direct cu
stările și tranzițiile procesului Markov. Formalismul mai
permit e și generarea procesului Markov corespunzător din
modelul de nivel înalt. Din categoria paradigmelor de modelare
103
de nivel înalt, fac parte: rețelele petri stohastice, algebrele de
proces stohastice și șirurile sau rețelele cu șiruri de așteptare.
Primitiv ele rețelelor Petri și a algebrelor de proces sunt de nivel
inferior, tranzițiile fiind reprezentate explicit. Simplitatea
rețelelor Petri și a algebrelor de proces stohastice oferă
expresivitate mai mare, putând cuprinde situații pe care rețelele
cu cozi nu le au. Rețelele cu șiruri de așteptare dispun de
primitive mai complexe care codifică o cantitate mare de
informație. Modelele generate utilizând instrumentele de
modelare de nivel înalt, pot să fie utilizate și în simulare.
Modelarea pentru simulare reprezintă abstractizare a
algoritmică a sistemului , pe când cea analitică reprezintă
abstractizare a matematică . Modelele de simulare ridică totuși
niște probleme legate de: complexitatea programelor de
definire a acestora, dificultăți le în parametrizare determinate de
numărul mare de parametri necesari unui model detaliat și
costurile ridicate în privința resurselor de calcul implicate în
rulare, în special când intervalele de încredere impuse sunt
foarte mici. Calitatea unui model de simulare este dată g radul
de cunoaștere a sistemului studiat și a tehnicilor statistice.
Modelele pentru simulare sunt rulate , astfel încât se poate
spune că măsurile de performanță sunt observate și nu deduse.
Oferă o mare flexibilitate în modul de definire al acestor
măsuri . Flexibilitatea reprezintă una dintre trăsăturile care pot
determina alegerea simulării ca și tehnică de analiză de
104
performanță. Dezavantajul constă în costurile mari ale
dezvoltării acesteia.
Valorile de intrare pentru simulare sunt obținute de obicei f ie
din monitorizare, fie din rularea unor benchmarkuri.
Rezultatele simulării sunt prelucrate statistic, putând astfel
obține pe lângă măsurile de performanță dorite și previziuni cu
privire la dezvoltarea sau funcționarea ulterioară a sistemului
în studiu .
Simularea constituie un instrument util în înțeleg erea și
optimizarea performa nțelor și a fiabilității unor sisteme și
deasemen ea, în verificarea corectitudinii la proiectarea unor
sisteme . Simularea în faza de proiectare reduce costurile
impuse de înlăt urarea erorilor survenite în această fază.
105
BIBLIOGRAFIE
[1] J. Hillston, "Modelling and Simulation," 2001. [Online].
Available:
http://www.dcs.ed.ac.uk/teaching/cs4/www/modsim/module
-page.html.
[2] R. Jain, The Art of Com puter Systems Performance Analysis,,
John Wiley & Sons, Inc. 1991.
[3] N. A. B. MOHAMMAD S. OBAIDAT, Fundamentals of
performance evaluation of computer and telecommunication
systems, John Wiley & Sons, Inc, 2010.
[4] G. B. G. C. Ajmone Marsan, "Perfo rmance Models of
Multiprocessor Systems," Massachussetts Institute of
Technology, 1986.
106
CUPRINS
CAPITOLUL 1 ………………………….. ………………………….. ………… 1
INTRODUCERE ………………………….. ………………………….. ……… 1
Alegerea metricilor de performanță ………………………….. …… 6
CAPITOLUL 2 ………………………….. ………………………….. ………… 9
TEHNICI DE MĂSURARE ………………………….. …………………… 9
BENCHMARKING ………………………….. ………………………….. ………… 9
MONITOARE ………………………….. ………………………….. ………… 10
Clasifi carea monitoarelor ………………………….. ………………. 12
CAPITOLUL 3 ………………………….. ………………………….. …………… 18
MODELAREA ANALITICĂ ………………………….. ……………………….. 18
CLASIFICAREA TEHNICIL OR ANALITICE ………………………….. ……………. 21
LEGI OPERAȚIONALE ………………………….. ………………………….. ….. 32
A. Legea lui Little ………………………….. ………………………… 33
B. Legea utilizării ………………………….. ………………………… 34
C. Legea fluxului forțat ………………………….. ………………… 34
D. Legea timpului general de rezidență ……………………….. 37
E. Legea timpului de răspuns interactiv ……………………….. 38
F. Analiza gâtuirilor ………………………….. …………………….. 38
Procese Markov ………………………….. ………………………….. .. 39
Diagrame de tranziție a stărilor ………………………….. ……… 42
Matricile generatoare ………………………….. …………………… 42
DISTRIBUȚIA DE STARE STABILĂ ………………………….. ………….. 42
Ecuațiile echilibrului global ………………………….. ………….. 43
MODELAREA DE NIVEL ÎN ALT………………………….. ………………. 45
Rețele Petri ………………………….. ………………………….. …….. 46
107
Algebre de proces ………………………….. ………………………… 52
Rețele cu șiruri de așteptare ………………………….. …………… 56
CAPITOLUL 4 ………………………….. ………………………….. …………… 61
SIMULAREA ………………………….. ………………………….. …………….. 61
ELABORAREA MODELELOR DE SIMULARE ………………………….. . 62
TIPURI DE SIMULARE ………………………….. …………………………. 66
GENERAREA NUMERELOR A LEATOARE ………………………….. ….. 70
Generatoare linear congruente ………………………….. ……….. 72
LCG multiplicative ………………………….. ……………………….. 74
Generatoare Tausworthe ………………………….. ……………….. 75
Generatoare Fibonacci extinse ………………………….. ……….. 78
Generatoare combinate ………………………….. …………………. 78
ANALIZA REZULTATELOR SIMULĂRII ………………………….. …….. 79
Proiectare modulară de sus în jos ………………………….. ……. 80
Eliminarea erorilor ………………………….. ………………………. 80
Parcurgere structurată ( Walk -through ) ……………………… 81
Modele deterministe ………………………….. ……………………… 81
Rularea unor cazuri simplificate ………………………….. ……… 81
Urmărirea (Trace) ………………………….. ……………………….. 82
Afișarea grafică on -line ………………………….. …………………. 82
Testul de continuitate ………………………….. ……………………. 82
Teste de degenerare ………………………….. ……………………… 82
Teste de consistență ………………………….. ………………………. 83
Independența originii ………………………….. ……………………. 83
TEHNICI DE VALIDARE A MODELULUI ………………………….. …………….. 84
Intuiția expertului ………………………….. …………………………. 85
Măsurători în sistemul real ………………………….. …………….. 85
Rezultatele teoretice ………………………….. ……………………… 86
Transfer (removal) tranzitoriu ………………………….. ………… 87
Rulările lungi ………………………….. ………………………….. ….. 88
Inițializare corespunzătoare ………………………….. …………… 88
108
Trunchierea ………………………….. ………………………….. ……. 88
Ștergerea datelor inițiale ………………………….. ……………….. 89
Mutarea mediei replicilor i ndependente ………………………… 90
Medii pe loturi ………………………….. ………………………….. … 91
Încheierea simulării ………………………….. ……………………… 93
Replicări independente ………………………….. ………………….. 95
Medii pe loturi ………………………….. ………………………….. … 97
Metode de regenerare ………………………….. ……………………. 98
CAPITOLUL 5 ………………………….. ………………………….. …………. 102
CONCLUZII ………………………….. ………………………….. ……………. 102
BIBLIOGRAFIE ………………………….. ………………………….. ….. 105
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Performanta A Sistemelor De Calcul Fundamente Teoretice [621959] (ID: 621959)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
