Processo utente


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.

Documentazione delle funzioni

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).

Parametri:
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.

Questo è il grafo delle chiamate per questa funzione:

Questo è il grafo dei chiamanti di questa funzione:

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".

Parametri:
procnum Identificativo processo nella page table

Definizione alla linea 338 del file proc.c.

Questo è il grafo dei chiamanti di questa funzione:

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.

Parametri:
procnum Identificativo del processo all'interno della proc_table
Restituisce:
Se vale zero (0) indica al processo di terminare

Definizione alla linea 139 del file proc.c.

Questo è il grafo delle chiamate per questa funzione:

Questo è il grafo dei chiamanti di questa funzione:

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.

Questo è il grafo delle chiamate per questa funzione:

Questo è il grafo dei chiamanti di questa funzione:

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:

  • Accesso alla memoria, generando un indirizzo virtuale casuale, sempre compreso nel proprio spazio d'indirizzamento
  • Accesso al dispositivo di I/O.
    Parametri:
    procnum Identificativo del processo all'interno di proc_table

Definizione alla linea 178 del file proc.c.

Questo è il grafo delle chiamate per questa funzione:

Questo è il grafo dei chiamanti di questa funzione:

Università degli studi di Urbino "Carlo Bo"