Funzioni | |
static int | simulate_loop (int procnum) |
Simulazione d'accesso ad un vettore di elementi. | |
static int | random_access (int procnum) |
Effettua un accesso alla memoria con indirizzo casuale. | |
static void * | thread_proc (int procnum) |
Thread per la simulazione di un processo. | |
void | proc_init (int num, int percentile, int only_read, int max_memory, char *pl, int lp) |
Funzione per la creazione dei thread di tipo "PROCESSO". | |
void | process_info (int procnum) |
Stampa lo stato delle pagine di un processo. |
void proc_init | ( | int | num, | |
int | percentile, | |||
int | only_read, | |||
int | max_memory, | |||
char * | pl, | |||
int | lp | |||
) |
Funzione per la creazione dei thread di tipo "PROCESSO".
Ad ogni thread viene associato un PID che lo identifica univocamente, nonche una page table: tale tabella, di default, viene inizializzata con un numero casuale di pagine, compreso tra 1 e 16; il parametro -M
, tuttavia, impone ad ogni processo di allocare il massimo delle pagine disponibili (16 per processo).
Viene inoltre assegnata una probabilita di effettuare richieste di accesso alla memoria piuttosto che al dispositivo di I/O; di base tale valore e pari ad 80% ma e tuttavia possibile modificare questo valore con il parametro -P
, nonche inizalizzare ogni singolo processo con un valore differente (usando -l
).
num | Numero massimo di thread da eseguire | |
percentile | Probabilita' di eseguire una lettura in memoria | |
only_read | Specifica se i processi possono effettuare accessi esclusivamente in lettura o anche in scrittura | |
max_memory | Se vale uno, il processo alloca il massimo della memoria | |
pl | Stringa con le probabilita per l'inizializzazione dei processi | |
lp | Localita' temporale |
Definizione alla linea 254 del file proc.c.
void process_info | ( | int | procnum | ) |
Stampa lo stato delle pagine di un processo.
La funzione scrive, nel file di log del processo, lo stato delle pagine: per ognuna di esse viene indicato se e' presente o meno in memoria, se e' referenziata o se "sporca".
procnum | Identificativo processo nella page table |
Definizione alla linea 338 del file proc.c.
int random_access | ( | int | procnum | ) | [static] |
Effettua un accesso alla memoria con indirizzo casuale.
La funzione si occupa di generare un indirizzo di memoria con un approccio pseudo casuale; in osservanza della localita temporale sussite la probabilta che una richiesta possa essere vicina alla precedente, con un intervallo pari a 1024.
procnum | Identificativo del processo all'interno della proc_table |
Definizione alla linea 139 del file proc.c.
int simulate_loop | ( | int | procnum | ) | [static] |
Simulazione d'accesso ad un vettore di elementi.
La funzione e' responsabile della simulazione di un'iterazione su un vettore di LOOP_ITERATIONS elementi, ognuno dei quali e' pari a SIZE_OF_ITEM byte.
Definizione alla linea 114 del file proc.c.
void * thread_proc | ( | int | procnum | ) | [static] |
Thread per la simulazione di un processo.
Il thread, istanziato dalla funzione proc_init, si occupa di simulare un processo utente: la sua esecuzione e legata a quella della MMU, che rimane attiva fintanto che non viene raggiunto il numero massimo di accessi alla memoria.
Al thread sono concesse solo due operazioni:
procnum | Identificativo del processo all'interno di proc_table |
Definizione alla linea 178 del file proc.c.
![]() |
Università degli studi di Urbino "Carlo Bo" |