Riferimenti per il file vmbo/src/mmu.c

#include "mmu.h"

Vai al codice sorgente di questo file.

Strutture dati

struct  mmu_shared_data
 Struttura per contenere la richiesta attuale alla MMU. Continua...
struct  free_frames
struct  used_frames
struct  active_pages

Definizioni

#define EMPTY   0
#define DATA_AVAILABLE   1
#define RESULT_AVAILABLE   2

Funzioni

static int second_chance (int procnum, uint16_t page, int update_stats, frame_t **frame)
 Algoritmo di rimpiazzo della pagina.
static void * thread_mmu (void *pArg)
 Thread MMU.
pthread_t * mmu_init (int max_read, int ram_size, int page_size)
 Inizializzazione MMU.
uint32_t memory_access (int procnum, uint32_t address, int rw)
 Funzione per la lettura/scrittura di una zona di memoria.

Variabili

int anticipatory_paging
 Indica se la paginazione anticipata risulta attiva.
struct mmu_shared_data current
 Istanza della struttura mmu_shared_data.
static int mmu_should_exit
 Variabile di controllo per l'MMU.
static pthread_mutex_t mem_read_lock = PTHREAD_MUTEX_INITIALIZER
 Mutex per la mutua esclusione della chiamata a memory_access.
static struct free_frames free_frames_head
 Lista dei frame inutilizzati (puntatore al primo elemento).
static struct used_frames used_frames_head
 Lista dei frame utilizzati (puntatore al primo elemento).
static struct active_pages active_page_head
proc_t ** proc_table
 Vettore dei processi attivi.
int max_proc
 Numero di processi concorrenti.
int debug
 Livello di debug.


Descrizione dettagliata

Autore:
Ferruccio Vitale (unixo@devzero.it)
Data:
21/04/2009
Nota:
Universita' degli studi di Urbino "Carlo Bo"
Sistemi Operativi
Professore Emanuele Lattanzi
Anno Accademico 2008 - 2009

Definizione nel file mmu.c.


Documentazione delle definizioni

#define DATA_AVAILABLE   1

Definizione alla linea 16 del file mmu.c.

#define EMPTY   0

Definizione alla linea 15 del file mmu.c.

#define RESULT_AVAILABLE   2

Definizione alla linea 17 del file mmu.c.


Documentazione delle variabili

struct active_pages active_page_head [static]

Indica se la paginazione anticipata risulta attiva.

Qualora il numero di frame fisici disponibili siano superiori a 128 viene abilitata la paginazione anticipata.

Definizione alla linea 24 del file mmu.c.

Istanza della struttura mmu_shared_data.

int debug

Livello di debug.

Determina il livello di dettaglio dei messaggi d'errore e informativi prodotti dal simulatore. Il parametro "-d" aumenta tale livello e puo essere specificato piu volte.

Definizione alla linea 57 del file vmbo.c.

STAILQ_HEAD free_frames_head [static]

Lista dei frame inutilizzati (puntatore al primo elemento).

int max_proc

Numero di processi concorrenti.

La variabile max_proc, per default, viene inizializzato al valore 5, ma e tuttavia modificabile usando il paramentro -p.

Definizione alla linea 102 del file proc.c.

pthread_mutex_t mem_read_lock = PTHREAD_MUTEX_INITIALIZER [static]

Mutex per la mutua esclusione della chiamata a memory_access.

Definizione alla linea 65 del file mmu.c.

int mmu_should_exit [static]

Variabile di controllo per l'MMU.

Questa variabile determina la durata del thread MMU: fintanto che il valore e pari a zero, il thread continua la propria esecuzione, viceversa termina. Questa variabile viene posta ad uno dalla funzione memory_access.

Definizione alla linea 60 del file mmu.c.

Vettore dei processi attivi.

Viene allocato dalla funzione proc_init e deallocato nel main al termine dell'esecuzione; il numero massimo di elementi e dato dal valore di max_proc.

Definizione alla linea 95 del file proc.c.

STAILQ_HEAD used_frames_head [static]

Lista dei frame utilizzati (puntatore al primo elemento).

Lista delle pagine residenti in memoria (puntatore al primo elemento).

Università degli studi di Urbino "Carlo Bo"