#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. |
Definizione nel file io_device.c.
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).
parg | inutilizzato |
Definizione alla linea 69 del file io_device.c.
pthread_mutex_t fifo_lock = PTHREAD_MUTEX_INITIALIZER [static] |
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.
uint16_t ioreq_count [static] |
int max_proc |
proc_t ** proc_table |
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" |