in questa fase ci siamo occupati dell’implementazione della fase 4 del sistema operativo, il livello di supporto.
il livello 4 gestisce
il livello di supporto lavora in Kernel mode ma con interrupt abilitati, a differenza del livello 3.
Abbiamo suddiviso il livello di supporto con un criterio più generico, abbiamo infatti:
p3handlers
, contenente:
pager
Il gestore delle TLB exceptions.
TLB_RefillHandler
Si occupa di sostituire (refill) le entry non valide o datate con nuove entry richieste dal livello di supporto.
updateTLB
Si occupa di poche semplici operazioni che si assicurano il TLB sia sempre aggiornato.
writeReadFlash
Si occupa di effettuare operazioni WRITE / READ su un device.
psyscall
, contenente:
get_TOD
, terminate
, write_to_printer
, write_to_terminal
, read_from_terminal
.supExceptHandler
, che comprende il gestore delle syscall sopra mensionate.main
p3test
createUserProc
, che si occupa di creare i processi per effettuare il testtest3
, che inizializza le strutture dati di questa fase e crea i processi tramite la procedura sopra descrittaAbbiamo avuto una serie di complicazioni dovuta alla spesso non chiara documentazione in alcuni punti.
Al momento il progetto non passa il test richiesto dalla consegna, a causa di diversi errori tra i quali
deviceHandler
della fase due, che dopo diversi tentativi di correzione non siamo riusciti a sviluppare correttamente.swap_t
o list_head
) apparivano non definiti in alcuni segmenti di codice nonostante la loro regolare inclusione, non siamo riusciti a capire la natura di questo errore data l’inconsistenza di tale malfunzionamento.
swap_t
, che ci ha impedito di procedere nella fase di debugging