Riferimenti per il file vmbo/src/io_device.c

#include "io_device.h"

Vai al codice sorgente di questo file.

Strutture dati

struct  io_requests
 Lista FIFO di richieste di I/O. Continua...

Funzioni

static void * thread_io_device (void *parg)
 Thread dispositivo I/O.
pthread_t * io_device_init (int min, int max)
 Inizializzazione I/O.
int io_device_read (uint16_t procnum)
 Richiede un accesso al dispositivo di I/O.
void tell_io_device_to_exit ()
 Determina l'uscita del thread di I/O.

Variabili

static struct io_requests io_request_head
 Puntatore al primo elemento della FIFO.
static uint16_t ioreq_count
 Numero di richieste di I/O in coda.
static pthread_mutex_t fifo_lock = PTHREAD_MUTEX_INITIALIZER
 Mutex posto a protezione della FIFO.
static pthread_cond_t wait_cond = PTHREAD_COND_INITIALIZER
 Condizione d'attesa nel quale il thread thread_io_device si blocca in attesa che la FIFO contenga un elemento.
static pthread_mutex_t wait_lock = PTHREAD_MUTEX_INITIALIZER
 Mutex posto a protezione della condizione wait_cond.
static pthread_mutex_t request_lock = PTHREAD_MUTEX_INITIALIZER
 Mutex posto a protezione della FIFO: per inserire/rimuovere elementi dalla coda si deve prima effettuare il lock di questo mutex.
static int io_device_should_exit
 Durata del thread I/O.
proc_t ** proc_table
 Vettore dei processi attivi.
int max_proc
 Numero di processi concorrenti.


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 io_device.c.


Documentazione delle funzioni

void * thread_io_device ( void *  parg  )  [static]

Thread dispositivo I/O.

La funzione costituisce il corpo del thread che rappresenta il dispositivo di I/O. Il suddetto thread sospende la propria esecuzione fintanto che non siano presenti delle richieste d'accesso al dispositivo. Il thread termina la propria esecuzione quando sono stati compiuti il numero massimo d'accessi alla memoria (ad opera dell'MMU).

Parametri:
parg inutilizzato
Restituisce:
inutilizzato

Definizione alla linea 69 del file io_device.c.

Questo è il grafo delle chiamate per questa funzione:

Questo è il grafo dei chiamanti di questa funzione:


Documentazione delle variabili

pthread_mutex_t fifo_lock = PTHREAD_MUTEX_INITIALIZER [static]

Mutex posto a protezione della FIFO.

Definizione alla linea 30 del file io_device.c.

int io_device_should_exit [static]

Durata del thread I/O.

Questa variabile determina, quando posto ad uno, l'uscita del thread che emula il dispositivo di I/O; tale condizione viene impostata dalla funzione memory_access quando viene raggiunto il limite massimo d'accessi alla memoria.

Definizione alla linea 52 del file io_device.c.

struct io_requests io_request_head [static]

Puntatore al primo elemento della FIFO.

Numero di richieste di I/O in coda.

Definizione alla linea 26 del file io_device.c.

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.

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.

pthread_mutex_t request_lock = PTHREAD_MUTEX_INITIALIZER [static]

Mutex posto a protezione della FIFO: per inserire/rimuovere elementi dalla coda si deve prima effettuare il lock di questo mutex.

Definizione alla linea 44 del file io_device.c.

pthread_cond_t wait_cond = PTHREAD_COND_INITIALIZER [static]

Condizione d'attesa nel quale il thread thread_io_device si blocca in attesa che la FIFO contenga un elemento.

Definizione alla linea 35 del file io_device.c.

pthread_mutex_t wait_lock = PTHREAD_MUTEX_INITIALIZER [static]

Mutex posto a protezione della condizione wait_cond.

Definizione alla linea 39 del file io_device.c.

Università degli studi di Urbino "Carlo Bo"