Argomenti del Parziale 2: NB: gli argomenti sono stati trattati a lezione a diversi gradi di approfondimento, non sempre il testo approfondisce nello stesso modo. + Sistema Operativo Gestione memoria Salti assoluti e relativi al PC, Linking (collegamento), Rilocazione statica e dinamica Segmentazione Paginazione Memoria Virtuale Gestione CPU modalità operative (modo kernel, modo utente) (vedere caso di studio IA-32) Scheduler, gestione e ciclo di vita dei processi (start, ready, running, in attesa di I/O, stop) Protezione modalità operative (modo kernel, modo utente) servizi del sistema operativo e livello di protezione della CPU (vedere caso di studio IA-32) gestione di interrupt ed eccezioni (vedere caso di studio IA-32) passaggi di parametri durante gli interrupt stacks per l'esecuzione di procedure di interrupt Gestione dell'I/O I/O, memory mapped I/O I/O giudato dalla CPU, I/O gestito ad interrupt, I/O gestito mediante il Direct Memory Access (DMA) + Livello di Architettura dell'Insieme delle Istruzioni (ISA)del processore + Caso di Studio: Architettura Intel IA-32 Registri per le applicazioni Registri e strutture dati per il sistema operativo -------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------- Dettagli -------------------------------------------------------------------------------------------- Livello di Architettura dell'Insieme delle Istruzioni. Capitolo 5: (Intro) 5.1 Panoramica livello ISA. 5.1.1 Proprietà del livello ISA. 5.1.2 Modelli di memoria. 5.1.3 Registri. 5.1.4 Istruzioni 5.1.5 Panoramica del livello ISA del Pentium 4 (visto come rappresentante dell'IA-32) 5.2 Tipi di dati (Intro). 5.2.1 Tipi di dati numerici (cenni). 5.4.2 Modalità di indirizzamento per istruzioni di salto (Indirizzamento relativo al Program Counter, detto anche salto relativo, contrapposto al salto assoluto). 5.5.7 Input/Output 5.6 Controllo di flusso (intro). 5.6.4 Trap 5.6.5 Interrupt -------------------------------------------------------------------------------------------- Caso di Studio: Architettura Intel IA-32 Architettura di base dell' IA-32 (Selezione da manuale Intel) http://www.cs.unibo.it/~ghini/didattica/archcomp/SELEZIONE_IA-32%20volume1_Basic_architecture.pdf Supporto al sistema operativo fornito dall' IA-32 (Selezione da manuale Intel) http://www.cs.unibo.it/~ghini/didattica/archcomp/SELEZIONE_IA-32%20Volume%203A%20System%20Programming%20Guide.pdf NB: alcuni paragrafi della selezione proposta non sono necessari, vedere il seguente elenco dei paragrafi da leggere.pdf http://www.cs.unibo.it/~ghini/didattica/archcomp/SELEZIONE_IA-32%20Volume%203A%20System%20Programming%20Guide_INDICE.txt -------------------------------------------------------------------------------------------- Sistema operativo Capitolo 6 Livello macchina del sistema operativo (Intro) Gestione memoria 6.1 Memoria virtuale (intro) Salti assoluti e relativi al PC, Linking (collegamento), Rilocazione statica e dinamica 7.4 Collegamento e Caricamento 7.4.1 Compiti del Linker 7.4.2 Struttura di un modulo oggetto 7.4.3 Rilocazione a tempo del binding e dinamica 7.4.4 Collegamento dinamico (intro) Collegamento dinamico in UNIX Segmentazione 6.1.6 Segmentazione 6.1.7 Implementazione della segmentazione (no best fit, no first fit, no MULTICS) Paginazione 6.1.1 Paginazione 6.1.2 Implementazione della paginazione 6.1.3 Paginazione a richiesta e working set. 6.1.4 Politica di sostituzione delle pagine (solo cenni, no algoritmi, non approfondire) 6.1.5 Dimensione di pagina e frammentazione (solo cenni, non approfondire) Memoria Virtuale 6.1.8 Memoria virtuale del pentium 4 (rappresentante dell' IA-32) 6.1.10 Memoria virtuale e caching 6.4.2 Esempi di memoria virtuale - memoria virtuale di UNIX Gestione CPU modalità operative (modo kernel, modo utente) (vedere caso di studio IA-32) Scheduler, gestione e ciclo di vita dei processi (start, ready, running, in attesa di I/O, stop) Protezione modalità operative (modo kernel, modo utente) servizi del sistema operativo e livello di protezione della CPU (vedere caso di studio IA-32) gestione di interrupt ed eccezioni (VEDERE CASO DI STUDIO IA-32) classificazione di Interrupt (hardware/software, mascherabili/non mascherabili) classificazione di Eccezioni (fault, trap, abort) uso dello stack durante le chiamate a funzione stacks per l'esecuzione di procedure di interrupt nell'architettura IA-32 task, processi, stacks passaggi di parametri durante gli interrupt uso dello stack durante gli interrupt a seconda dei livelli di privilegio necessari stacks per l'esecuzione di procedure di interrupt Gestione dell'I/O Buffer delle applicazioni, buffer di sistema operativo, passaggio dati tra buffer, system calls. Registri delle perferiche Spazio degli indirizzi per l' Input/Output Memory Mapped I/O istruzione MOV Il problema dell'ordine degli accessi a registri diversi di una stessa periferica a causa della cache (disabilitare la cache?) Spazio degli indirizzi di I/O separato istruzioni IN e OUT (piu' lente, nessun problema ordine, garanzia di scrittura su registri). I/O guidato dalla CPU, I/O gestito ad interrupt, I/O gestito mediante il Direct Memory Access (DMA) 5.5.7 Input/Output --------------------------------------------------------------------------------------------