11.07.2015 Views

CSIM BY EXAMPLES

CSIM BY EXAMPLES

CSIM BY EXAMPLES

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Next-event time advancee0 e1 e2 e3 e4 e5t0=0 t1 t2 t3 t4 t5A t0, dopo che l’evento e0 è occorso,¤ Determino gli eventi successivi ed i relativi istanti di occorrenza, adesempio {(e1,t1),(e2,t2), (e3,t3), (e4,t4)}¤ Individuo l’evento che si verificherà per primo, ad esempio e1 edavanzerò il tempo di simulazione all’istante t1.n Aggiorno lo stato del sisteman Aggiorno la lista degli eventi (nuovi eventi potrebbero essere stati determinati)Emiliano.Casalicchio@uniroma2.it ©


Download <strong>CSIM</strong>19 -- C, C++http://www.ce.uniroma2.it/~casali/download/CD-<strong>CSIM</strong>19/Manualehttp://www.mesquite.com/documentation/index.htmEmiliano.Casalicchio@uniroma2.it ©


Installazione <strong>CSIM</strong>19¨ gcc- Creare una directory csim19 in /usr/local- Decomprimere l’archivio csim19 nella directory csim19- tar -xf csim19_linux_gcc.tar (oppure tar –xf csim19_linux_gcc.tar )- Entrare nella directory /usr/local/csim19/lib- make¨ gpp- Creare una directory csim19 in /usr/local- Decomprimere l’archivio csim19 nella directory csim19- tar -xf csim19_linux_gpp.tar (oppure tar –xf csim19_linux_gpp.tar )- Entrare nella directory /usr/local/csim19/lib- makeEmiliano.Casalicchio@uniroma2.it ©


Compilazione¨ csim.gcc¤ gcc -Ilib $* lib/csim.gcc.a –lm¨ csim.gcc Emiliano.Casalicchio@uniroma2.it ©


Oggetti <strong>CSIM</strong>“It is the processes which mimic thebehaviour of active entities in thesimulated system.”¨Process: entità attive che¤ usano risorse (facility, storage, mailboxes),¤ La loro esecuzione è guidata dal verificarsi di eventi,¤ Collezionano statistiche (per mezzo di apposite funzioni)¨¨¨¨¨¨¨Facilities: modellano code e serventi, sono utilizzate dai processiStorages: risorse che possono essere parzialmente/discretamente allocate da unprocesso¤ Ad es. Una porzione di memoria, un descrittore di file o processo, un socket…Events: usati per sincronizzare i processiMailboxes: usate per la comunicazione tra processiData collection structures: usate per collezionare dati durante una simulazione¤ Ad es. l’andamento temporale di una variabile di stato (lunghezza di una coda)Process classes: usate per caratterizzare I processi nell’uso di risorse, eventi estatisticheStreams - streams di numeri casualiEmiliano.Casalicchio@uniroma2.it ©


Process¨¨¨¨Entità attive in un modello <strong>CSIM</strong>¤ Sistema Client-Server: client modellato con un processo, server confacilityE’ una procedura C che esegue una create¤ Processo <strong>CSIM</strong> ≠ Processo Unix¤ create simile ad una fork unix.+ istanze di uno stesso processo attive “simultaneamente”¤ Eseguite in parallelo rispetto al Tempo Simulato…¤ …Ma eseguite serialmente sul processoreOgni istanza di processo <strong>CSIM</strong> ha il proprio ambiente di esecuzione¤ Variabili locali e argomenti di input (non può ritornare un valore)¤ Variabili globali a cui hanno accesso tutti i processiEmiliano.Casalicchio@uniroma2.it ©


Process (2)¨Un processo <strong>CSIM</strong> può trovarsi in 4 diversi stati:¤ In esecuzione (active)¤ Pronto (Ready) per essere eseguito (ad esempio ha ottenuto la facility ola quantità di storage attesa)¤ Bloccato (Hold) x consentire al tempo simulato di trascorrere¤ In Attesa (Wait) del verificarsi di un evento¨¨Quando un processo termina il suo ambiente <strong>CSIM</strong> (variabili estatistiche) viene eliminato¤ Terminate(): terminazione esplicita¤ Exit (e.g. for an external interrupt): terminazione implicita.Ogni processo ha un¤ ID unico,¤ PrioritàEmiliano.Casalicchio@uniroma2.it ©


Esempio di processo#include “csim.h”;void sim( int argc, char *argv[]) {FACILITY Server; /* Definizione di una facility*/Server = facility(“Server”);/* simtime() mi restituisce il tempo disimulzione*/while( simtime()


Process¨¨¨¨Processi eseguiti simultaneamente¤ Il <strong>CSIM</strong> process manager crea questa illusione attivando e sospendendo Iprocessi quando il tempo avanza e gli eventi si verificanoI processi vengono eseguiti finche non invocano una¤ hold¤ use Accodano il processo¤ allocate¤ wait¤ TerminateProcessi vengono ri-avviati quando¤ Il tempo di hold termina,¤ L’attesa in coda termina (per l’uso di una facility/storage/evento)Il tempo simulato trascorre solo se viene eseguita una¤ hold¤ useEmiliano.Casalicchio@uniroma2.it ©


Process: Esempio¨ ES: P1 e P2 attendono di utilizzarerispettivamente le facility F1 e F2¤ P1 e P2 non sono processi concorrenti in naturaP1P2t1 t2 (t2+T_f2) (t1+T_f1)Emiliano.Casalicchio@uniroma2.it ©


Process: EsempioP1(in_args){t1=simtime()…wait(F1)hold(F1,T_f1)release(F1)terminate()}P2(in_args){t2=simetime()…wait(F2)hold(F2,T_f2)release(F2)……terminate()}wait(F1)+hold(F1,T_f1)+release (F1) = use(F1,T_f1)Emiliano.Casalicchio@uniroma2.it ©Sim.Timet1t2(t2+T_f2)(t1+T_f1)P1 P2ExecTime


Use Case: Cloud Web App (CWA)client(web)client(web)client(web)End-usersExperienceInternet(o Intra-Net)NetworkPerformanceWeb Appon aCloudServerPerformanceEmiliano.Casalicchio@uniroma2.it ©


CWA Use Case: Modello C/S semplice¨ Il processo degli arrivi e dei tempi di serviziopuò assumere una qualsiasi distribuzione (oessere derivato da un trace file)¨ Sono interessato solo alla “end-user experince”¨ Soluzione¤ Il client è modellato con un processo <strong>CSIM</strong>¤ I ritardi indotti dal sistema Net + App modellatocon una facilityEmiliano.Casalicchio@uniroma2.it ©


* Esempio 1*/!/* !!!!!!!!!Pseudo Codice!!!!!!!!!! */!#include “csim.h”;!!void sim( int argc, !! char *argv[]) {!!!FACILITY Server; /* Definizione di una facility */!!!generated_client=0;!!resetted=false;!!stop_client=false;!!!Server = facility(“Server”); /* Inizializzazione diuna ! ! ! ! !facility */!!/* CONTINUA NEXT SLIDE */!Emiliano.Casalicchio@uniroma2.it ©


* simtime() mi restituisce il tempo di simulzione*/!!while( simtime() TRANSIENT_TIME)&&(!resetted)) {!! !reset();!! !resetted=true;!!}!} /* End sim process */!!Emiliano.Casalicchio@uniroma2.it ©!


void Web_client( long int my_number ) {!!!sprintf( strbuf, "Web_client%d", my_number );!!create( strbuf ); /* Creazione del processo */!!!use(Server, lognormal(0.4, 10.0) ); /* simulo ritardo dovutoal servizio di rete, server e applicazione*/!!!/*!L’operazine use() realizza la sequenza delle 3 operazioni:!reserve(facility); //accoda se occupato riserva se libero!hold(hold_time); //fa avanzare il tempo simulato!release(facility); //rilascia la facility!*/!!!terminate();!!}!!Emiliano.Casalicchio@uniroma2.it ©


CWA Use Case: Modello C/S multiserver¨ Il processo degli arrivi e dei tempi di servizio puòassumere una qualsiasi distribuzione (o esserederivato da un trace file)¨ Sono interessato solo alla “end-user experince”¨ Soluzione¤ Il client è modellato con un processo <strong>CSIM</strong>¤ Trascuro i ritardi di rete¤ Voglio modellare l’applicazione come un processomulti-thread¤ Il tempo di servizio dell’applicazione include tutti iritardi lato serverEmiliano.Casalicchio@uniroma2.it ©


* Esempio 1*/!/* !!!!!!!!!Pseudo Codice!!!!!!!!!! */!#include “csim.h”;!/* set number of servers to 3 */!#define NUM_SRVRS 3!!void sim( int argc, !!char *argv[]) {!!FACILITY multi_server; /* declare facility*/!!!!generated_client=0;!!resetted=false;!!stop_client=false;!!!Server = facility_ms("multi srvr", NUM_SRVRS); /*initialize! ! ! ! ! !srvr with 3 srvrs*/!!/* CONTINUA NEXT SLIDE */!Emiliano.Casalicchio@uniroma2.it ©


* simtime() mi restituisce il tempo di simulzione*/!!while( simtime() TRANSIENT_TIME)&&(!resetted)) {!! !reset();!! !resetted=true;!!}!} /* End sim process */!!Emiliano.Casalicchio@uniroma2.it ©!


void Web_client( long int my_number ) {!!!sprintf( strbuf, "Web_client%d", my_number );!!create( strbuf ); /* Creazione del processo */!!!use(Server, lognormal(0.4, 10.0) ); /* simulo ritardo dovutoal servizio di rete, server e applicazione*/!!!/*!L’operazine use() realizza la sequenza delle 3 operazioni:!reserve(facility); //accoda se occupato riserva se libero!hold(hold_time); //fa avanzare il tempo simulato!release(facility); //rilascia la facility!*/!!!terminate();!!}!!Emiliano.Casalicchio@uniroma2.it ©


CWA Use Case: Modello C/S “cluster”¨¨¨¨Il processo degli arrivi e dei tempi di servizio può assumereuna qualsiasi distribuzione (o essere derivato da un trace file)Voglio considerare la piattaforma dell’infrastrutturasottostante: un cluster di server ed il relativo load balancerSono interessato solo alla “end-user experince”Soluzione¤ Il client è modellato con un processo <strong>CSIM</strong>¤ Modello la rete con un ritardo dipendente dalladimensione della richiesta/risposta¤ Modello un cluster di server con n code e serventi ed ilLoad Balancer come un servente a coda singola¤ Il tempo di servizio dell’applicazione include tutti i ritardi latoserverEmiliano.Casalicchio@uniroma2.it ©


facs[1]facs[2]/* Esempio 1*/!/* !!!!!!!!!Pseudo Codice!!!!!!!!!! */!#include “csim.h”;!/* set number of servers to 3 */!#define NUM_FACS 10 /*set the number of facilities */!!void sim( int argc, !!char *argv[]) {!!!FACILITY servers[NUM_FACS]; /* declare facility array */!!FACILITY loadbalancer; !!!!facility_set(servers, ”servers", NUM_FACS); /*initialize a set! ! ! ! !of 10 facilities */!!loadbalancer=facility(“loadbalancer”);!!generated_client=0;!!resetted=false;!!stop_client=false;!!!/* CONTINUA NEXT SLIDE Emiliano.Casalicchio@uniroma2.it */!©facs[n]


* simtime() mi restituisce il tempo di simulzione*/!!while( simtime() TRANSIENT_TIME)&&(!resetted)) {!! !reset();!! !resetted=true;!!}!!report_facilities();!} /* End sim process */! Emiliano.Casalicchio@uniroma2.it ©!


void Web_client( long int my_number ) {!!fload filesize;!!sprintf( strbuf, "Web_client%d", my_number );!!create( strbuf ); /* Creazione del processo */!!/*** START END-USER Experience****/!!filesize=pareto(1.0)!!hold(filesize/BW+2*RTT); !/*BW ad RTT are two constantsrepresenting the bandwidth and the round-trip time*/!!use(loadbalancer, 0.005); /* 5msec balancing time */ !!!!i = (int)uniform(0.0, (double)(NUM_FACS-1)); /*select a facility*/!!!use(servers[i], pareto(2.0)); /*use facility[i] for! ! ! ! !service_time time unit*/!/*** END END-USER Experience ***/!!/*** Total responce time must be collected here using TABLES andISTOGRAMS data structures ***/ !!!terminate();!!Emiliano.Casalicchio@uniroma2.it ©}!


Facilities: reports¨ Rapporti statistici per le facility possono essereprodotti chiamando le report functions.¨ La funzione report_facilities stampa i rapportirelativi a tutte le facility instanziate.¨ Per ogni facility vengono riportati:¤ facility name¤ service discipline¤ service time¤ utilization¤ throughput rate¤ queue length¤ response time¤ completed service requestsEmiliano.Casalicchio@uniroma2.it ©


Limite dei report <strong>CSIM</strong>¨ I report contengono informazioni cumulative cheaggregano le metriche osservate su tutto il temposimulatoEmiliano.Casalicchio@uniroma2.it ©


FACILITY: Service FunctionFACILITY cpu; /*declare facility variable cpu */…cpu = facility("cpu"); /*initialize facility and name it cpu */set_servicefunc(cpu, pre_res) /*set service protocol to preemptresume*/…priority = 100; /*make process high priority */use(cpu, service_time); /*preempt lower priority process and usefacility*/...Emiliano.Casalicchio@uniroma2.it ©


FACILITY: service discipline (1)¨¨fcfs - first come, first servedinf_srv - infinite servers¨lcfs_pr - last come, first served, preempt¤ Un nuovo processo è sempre servito, affettuando preeption sul processoin servizio.¤ Priorità non considerataEmiliano.Casalicchio@uniroma2.it ©


FACILITY: service discipline (1)¨prc_shr - processor sharing¤ Tempo di servizio è determinato in base al numero di processi allafacility. Di default il tasso è n (numero di proc alla facility), ossia se ci sonon processi alla facility il tempo di servizio è moltiplicato di un fattore n¤ No queuing delay¤ Massimo 100 processi possono condividere una facility prc_shrPrototype: void set_loaddep(FACILITY f, double rate[], long n)Example: set_loaddep(f, rate, 10);Emiliano.Casalicchio@uniroma2.it ©


FACILITY: service discipline (2)¨¨¨pre_res - preempt resume¤ Processi alta priorità effettuano preemption su quelli a priorità + bassa¤ Processi con priorità uguale sono serviti con politica fcfsrnd_rob - round robin¤ Processi serviti in modalità RR.¤ Ogni processo utilizzerà la facility per un TIMESLICE specificato inset_timeslice¤ NO priorityrnd_pri - round robin with priority¤ Processi ad alta priorità serviti prima.¤ Processi con la stessa priorità serviti in modalità RR.Emiliano.Casalicchio@uniroma2.it ©


Esempio¨ Homework: Fare confronti tra le variediscipline di servizioEmiliano.Casalicchio@uniroma2.it ©


CWA Use Case:Modello C/S “diffserv” + “cluster”¨¨¨¨¨¨Il processo degli arrivi e dei tempi di servizio può assumere unaqualsiasi distribuzione (o essere derivato da un trace file)Voglio considerare la piattaforma dell’infrastruttura sottostante: uncluster di server ed il relativo load balancerassumiamo di avere 2 classi di utenti:¤ high priority¤ low priorityClassi di utenti differenti vengono schedulate con priorità differenti latoserverSono interessato solo alla “end-user experince”Soluzione¤ Il client è modellato con un processo <strong>CSIM</strong> con prioritठModello la rete con un ritardo dipendente dalla dimensione della richiesta/risposta¤ Modello un cluster di server con n code e serventi ed il Load Balancer comeun servente a coda singola¤ Il tempo di servizio dell’applicazione include tutti i ritardi lato serverEmiliano.Casalicchio@uniroma2.it ©


* Esempio 1*/!/* !!!!!!!!!Pseudo Codice!!!!!!!!!! */!#include “csim.h”;!/* set number of servers to 3 */!#define NUM_FACS 10 /*set the number of facilities */!#define H_PRI_RATE 0.4!#define H_PRI 5!!void sim( int argc, !!char *argv[]) {!!!FACILITY servers[NUM_FACS]; /* declare facility array */!!FACILITY loadbalancer; !!!CLASS lp;!!CLASS hp;!!!facility_set(servers, ”servers", NUM_FACS); !!loadbalancer=facility(“loadbalancer”);!!generated_client=0;!!resetted=false;!!stop_client=false;!!!/* CONTINUA NEXT SLIDE */!Emiliano.Casalicchio@uniroma2.it ©


* simtime() mi restituisce il tempo di simulzione*/!!while( simtime() TRANSIENT_TIME)&&(!resetted)) {!! !reset();!! !resetted=true;!!}!!report_facilities();!} /* End sim process */! Emiliano.Casalicchio@uniroma2.it ©!


void Web_client( long int my_number ) {!!fload filesize;!!sprintf( strbuf, "Web_client%d", my_number );!!create( strbuf ); /* Creazione del processo */!!!!if(uniform(0.0,1.0)


Esempi¨ Uso discipline di scheduling (ServiceFunc.c)Emiliano.Casalicchio@uniroma2.it ©


Use Case: Physical Resource Allocationin Virtualized Environment (AVE)¨ Ogni VM richiede una certa quantità di risorse HWalla piattaforma hostVM1 VMi VMnHost platformEmiliano Casalicchio (C)3 Aprile 2012


Use Case AVE: modello semplice,allocazione statica¨ Supponiamo che CPU, spazio su disco e RAM sianole risorse di interesse¤ allocabili in quantità discrete¨ Supponiamo che ogni VM per poter essere eseguita(o per eseguire un suo processo) abbia bisogno ditutta la RAM dichiarata¨ Dobbiamo modellare quindi l’allocazione di unaquantità discretaEmiliano.Casalicchio@uniroma2.it ©


#include !… !#define RAM_TOT 4*1024 /*M<strong>BY</strong>TE quindi 4GB RAM*/!FACILITY cpu,disk;!STORE mem;!!void sim(int argc, char *argv[]){!!!double intT;!!int vmID=0, resetted=0, VMmem[10];!!create("sim");!!!cpu=facility("cpu");!!disk=facility("disk");!!mem=storage(”mem",RAM_TOT); !!!!VMmem=initmem(); /*memory requirements for each VM in M<strong>BY</strong>TE*/!!!!}!!!end_sim=event("end_sim");!!event_monitor(end_sim);!!for(i=0;i


!void VM(int vID, int RAMsize){!/*RAMsize è in M<strong>BY</strong>TE*/!!char strbuf[15]; !!!int u;!!double d,s;!!!!sprintf(strbuf,"VM%d",cID);!!create(strbuf);!!!while(state(end_sim)==NOT_OCC){!! !allocate(RAMsize,mem);!! !d=exponential(0.5);!! !use(cpu,d); !!! !s=pareto(1.4);!! !use(disk,s);!! !deallocate(RAMsize,mem);!!! !/* task Inter-arrival time*/!! !hold( (double) exponential(0.1)); !!!!!!}!!csim_terminate();!}!!!!Emiliano.Casalicchio@uniroma2.it ©


EVENTS: wait e queue¨Un evento può trovarsi nello stato¤ OCC (occurred) o NOT_OCC (not occurred)¨Se un processo WAIT per un evento e¤ Se stato(e)=NOT_OCC il processo viene sospeso. Tutti i processi inattesa vengono risvegliati quando stato(e)=OCC (settato da qualcheprocesso)¤ Se stato(e)=OCC il processo continua e viene settatostato(e)=NOT_OCC¨Se un processo QUEUE per un evento e¤ Se stato(e)=NOT_OCC il processo viene accodato. Quandostato(e)=OCC (settato da qualche processo) il primo processo in codaviene risvegliato¤ Se stato(e)=OCC e non ci sono altri processi in attesa, il processocontinua e viene settato stato(e)=NOT_OCCEmiliano.Casalicchio@uniroma2.it ©


EVENTSEVENT ev; /*declare event variable ev */...!ev = event("ev"); /*initialize an event named ev */....!!wait(ev); /*wait for event to occur before !! ! !proceeding */...!queue(ev); /*wait for event to occur, for!processes to respond before proceeding*/!set(ev); /*indicate that an event has occurred */...!Emiliano.Casalicchio@uniroma2.it ©


EVENTS: array of#define NUM_EVENTS 25 /*set number of events in array*/EVENT ev_arr[NUM_EVENTS]; /*declare event array */....!event_set(ev_arr, "ev arr", NUM_EVENTS); /*initialize! ! ! ! !array of 25 events*/....wait(ev_arr[5]); /*wait for sixth event to occur before! ! ! !proceeding */...set(ev_arr[5]); /*indicate that sixth event has !! ! !occurred*/...!!i = wait_any(ev_arr); /*i is index of event which !! ! ! !occurred */ORi = queue_any(ev_arr); /*i is index of event which! ! ! !occurred */.......!Emiliano.Casalicchio@uniroma2.it ©


EVENTS: wait with TimeOut!st = timed_wait(ev, 50.0); /*wait for a! ! !maximum of 50 time units */!if(st ! = TIMED_OUT) { /*did not timed! ! ! ! !out */.....}!Emiliano.Casalicchio@uniroma2.it ©


Esempi¨ Generazione/gestione interrupt¤ single handler¤ multi handlerEmiliano.Casalicchio@uniroma2.it ©


Generazione di numeri casuali econtrollo della simulazione in<strong>CSIM</strong>Emiliano.Casalicchio@uniroma2.it ©


Agenda¨ Generazione di numeri casuali in <strong>CSIM</strong>¨ Terminazione della simulazione in <strong>CSIM</strong>Emiliano.Casalicchio@uniroma2.it ©


Random Numbers¨ Possibilità di generare¤ Single stream¤ Multiple stream¨ Ditribuzioni Continue¨ Distribuzioni Discrete¨ Distribuzioni EmpiricheEmiliano.Casalicchio@uniroma2.it ©


Continuous Distributions¨¨¨¨¨¨¨¨¨¨¨¨double uniform(double min, double max)double triangular(double min, double max, double mode)double beta(double min, double max, double shape1, double shape2)double exponential(double mean)double gamma(double mean, double stddev)double erlang(double mean, double var)double hyperx(double mean, double var)double weibull(double shape, double scale)double normal(double mean, double stddev)double lognormal(double mean, double stddev)double cauchy(double alpha, double beta)double hypoexponential(double mn, double var)¨ double pareto(long a)¨ double zipf(long n)¨double zipf_sum(long n, double *sum)Emiliano.Casalicchio@uniroma2.it ©


Discrete Distributions¨ long random_int(long min, long max)¨ long bernoulli(double prob_success)¨ long binomial(double prob_success, long¨ num_trials)¨ long geometric(double prob_success)¨ long negative_binomial(long success_num,double prob_success)¨ long poisson(double mean)Emiliano.Casalicchio@uniroma2.it ©


Empirical Distributions¨¨void setup_empirical(long n, double prob[],double cutoff[], long alias[])¤ Deve essere invocata in fase di setup dei generatori dinumeri casuali¤ prob[] contiene le probabilità di generare un numerodouble empirical(long n, double cutoff[], longalias[], double value[])¤ Permette di estrarre un valore dal set value[] in base alleprobabilità specificate in prob[]¤ prob[i]= probabilità di estrarre il valore value[i]Value[] Prob[]5 0.37 0.29 0.411 0.0715 0.03- 1.0Emiliano.Casalicchio@uniroma2.it ©


Single stream¨ Di default <strong>CSIM</strong> usa un’unico stream di numeri, ed ilseme è automaticamente impostato ad 1¨ Per cambiare seme:¤ void reseed(STREAM s, long n)!¤ Es: reseed(NIL, 13579);¤ Il seme può essere cambiato in qualsiasi punto della simulazione¨ Per conoscere lo stato attuale di uno stream¤ long stream_state(STREAM s)!¤ Es: stream_state(NIL) ritorna lo stato della stream unica.¤ Es: reseed(NIL, 13579); !!i=stream_state(NIL); /* i=13579 */!Emiliano.Casalicchio@uniroma2.it ©


Multiple stream¨Variabili aleatorie indipendenti richiedono sequenzeindipendenti.¤Utililizzando stream separate si è sicuri di avere stream indipendenti¨¨<strong>CSIM</strong> mette a disposizione 100 stream indipendenti i cui seed sonospaziati di 100.000 valori.¤ STREAM create_stream(void)!¤ Es:STREAM s; !s = create_stream(); !reseed(STREAM s, long n);!double stream_(STREAM s, );!Emiliano.Casalicchio@uniroma2.it ©


Esempi <strong>CSIM</strong>¨¨single-stream.c, multistream.csingle-stream.c¤ Seed=35t=0.011882, srv=2t=0.11806, srv=2t=0.615691, srv=3t=1.27062, srv=4t=1.72347, srv=1t=1.8161, srv=2t=1.83036, srv=3t=1.86344, srv=0t=1.93414, srv=3t=3.95347, srv=4t=5.74728, srv=4t=7.05873, srv=0t=9.43674, srv=3t=9.68803, srv=2t=9.81166, srv=3t=9.90979, srv=4t=10.3409, srv=0t=10.7878, srv=2Seed=37t=3.47511, srv=2t=3.54453, srv=3t=4.76106, srv=4t=5.05914, srv=0t=5.3492, srv=3t=6.11876, srv=4t=6.73165, srv=2t=6.85498, srv=1t=8.16424, srv=2t=11.5625, srv=4t=11.6885, srv=2t=12.5472, srv=4t=12.9105, srv=0t=14.002, srv=4t=14.2299, srv=1t=14.9446, srv=2t=16.217, srv=1t=18.1702, srv=3Emiliano.Casalicchio@uniroma2.it ©


Trace delle simulazioni¨ Trace simulation¤ Possibilità di tracciare i processin trace_on(); trace_process(processName);¤ Possibilità di tracciare gli oggetti, e.g. eventi,storages, facility, etc…Emiliano.Casalicchio@uniroma2.it ©


Esempio di tracetime process id pri status21.382 AT2 4 1 use facility httpd for 0.00421.382 AT2 4 1 reserve facility httpd21.382 AT3 5 1 use facility httpd for 0.03021.382 AT3 5 1 reserve facility httpd21.382 AT4 6 1 use facility httpd for 0.08921.382 AT4 6 1 reserve facility httpd21.382 AT5 7 1 use facility httpd for 0.02521.382 AT5 7 1 reserve facility httpd21.382 AT6 8 1 use facility httpd for 0.02821.382 AT6 8 1 reserve facility httpd21.382 AT7 9 1 use facility httpd for 0.00421.382 AT7 9 1 reserve facility httpd21.382 AT8 10 1 use facility httpd for 0.35721.382 AT8 10 1 reserve facility httpd21.382 AT9 11 1 use facility httpd for 0.11421.382 AT9 11 1 reserve facility httpd21.382 AT10 12 1 use facility httpd for 0.02821.382 AT10 12 1 reserve facility httpd21.382 AT0 33 1 wait event burst (#9d49e28)21.382 AT1 34 1 wait event burst (#9d49e28)21.382 AT2 35 1 wait event burst (#9d49e28)21.382 AT3 36 1 wait event burst (#9d49e28)21.382 AT4 37 1 wait event burst (#9d49e28)21.382 AT5 38 1 wait event burst (#9d49e28)21.382 AT6 39 1 wait event burst (#9d49e28)21.382 AT7 40 1 wait event burst (#9d49e28)21.382 AT8 41 1 wait event burst (#9d49e28)21.382 AT9 42 1 wait event burst (#9d49e28)21.382 AT10 43 1 wait event burst (#9d49e28)21.510 WC10 23 1 terminate process22.535 WC20 44 1 use facility httpd for 1.25822.535 WC20 44 1 reserve facility httpd22.548 WC11 24 1 terminate processEmiliano.Casalicchio@uniroma2.it ©


Esempio¨ confidenceInterval.c¤ out.confidenceIntervalYesNo¤ out.confidenceIntervalYesYesEmiliano.Casalicchio@uniroma2.it ©

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!