nucleo
Nucleo di Calcolatori Elettronici
Caricamento in corso...
Ricerca in corso...
Nessun risultato
Diagramma di collaborazione per Semafori:

Topics

 Parti C++/Assembler delle primitive
 

Strutture dati

struct  des_sem
 Descrittore di semaforo. Continua...
 

Funzioni

int liv_chiamante ()
 Restituisce il livello a cui si trovava il processore al momento in cui è stata invocata la primitiva.
 
natl alloca_sem ()
 Alloca un nuovo semaforo.
 
bool sem_valido (natl sem)
 Verifica un id di semaforo.
 

Variabili

des_sem array_dess [MAX_SEM *2]
 Array dei descrittori di semaforo.
 
natl sem_allocati_utente = 0
 Numero di semafori allocati per il livello utente.
 
natl sem_allocati_sistema = 0
 Numero di semafori allocati per il livello sistema (moduli sistema e I/O)
 

Descrizione dettagliata

Dispensa: https://calcolatori.iet.unipi.it/resources/semafori.pdf

Documentazione delle funzioni

◆ liv_chiamante()

int liv_chiamante ( )

Restituisce il livello a cui si trovava il processore al momento in cui è stata invocata la primitiva.

Avvertimento
funziona solo nelle routine di risposta ad una interruzione (INT, esterna o eccezione) se è stata chiamata salva_stato().

Definizione alla linea 159 del file sistema.cpp.

Questo è il grafo dei chiamanti di questa funzione:

◆ alloca_sem()

natl alloca_sem ( )

Alloca un nuovo semaforo.

Restituisce
id del nuovo semaforo (0xFFFFFFFF se esauriti)

Definizione alla linea 178 del file sistema.cpp.

Questo è il grafo delle chiamate per questa funzione:
Questo è il grafo dei chiamanti di questa funzione:

◆ sem_valido()

bool sem_valido ( natl sem)

Verifica un id di semaforo.

Parametri
semid da verificare
Restituisce
true se sem è l'id di un semaforo allocato; false altrimenti

Definizione alla linea 205 del file sistema.cpp.

Questo è il grafo delle chiamate per questa funzione:
Questo è il grafo dei chiamanti di questa funzione:

Documentazione delle variabili

◆ array_dess

des_sem array_dess[MAX_SEM *2]

Array dei descrittori di semaforo.

I primi MAX_SEM semafori di array_dess sono per il livello utente, gli altri MAX_SEM sono per il livello sistema.

Definizione alla linea 151 del file sistema.cpp.

◆ sem_allocati_utente

natl sem_allocati_utente = 0

Numero di semafori allocati per il livello utente.

Definizione alla linea 170 del file sistema.cpp.

◆ sem_allocati_sistema

natl sem_allocati_sistema = 0

Numero di semafori allocati per il livello sistema (moduli sistema e I/O)

Definizione alla linea 173 del file sistema.cpp.