Issuu on Google+

Capitolo 7 7.1 Si descrivano le condizioni necessarie affinché si verifichi il deadlock. Sono condizioni indipendenti? 7.2 Si spieghi cos’è un grafo di assegnazione delle risorse e come si usa. 7.3 Si spieghi come è possibile intervenire su un sistema al fine di prevenire situazioni di deadlock. In particolare, si dimostri che l’ordinamento delle risorse e richieste in ordine crescente implicano l’assenza di deadlock. 7.4 Si spieghi cosa si intende per stato sicuro e sequenza sicura e che relazione esiste tra questi concetti ed il problema del deadlock. 7.5 Cos’è un arco di reclamo? Come può essere usato in un grafo di assegnazione delle risorse al fine di evitare il deadlock? 7.6 Si descriva l’algoritmo del banchiere. In particolare: • Strutture dati utilizzate • Procedura di verifica dello stato • Procedura per la gestione delle richieste 7.7 Cos’è un grafo di attesa? Come può essere usato in relazione al problema del deadlock? Esistono delle limitazioni per l’uso di un tale strumento? 7.8 Si descriva l’algoritmo di rilevamento del deadlock per un sistema con più istanze di una singola risorsa. 7.9 Si discutano brevemente le strategie applicabili nel ripristino da situazioni di stallo e gli svantaggi che esse comportano. 7.10 Si spieghi in modo chiaro e conciso in cosa differiscono i tre approcci • • •

Prevenire Evitare Rilevare e ripristinare

al problema del deadlock. Inoltre, si ponga in evidenza l’incidenza di ognuno di essi sull’uso delle risorse del sistema.


Capitolo 8 8.1 Si discutano le tre forme di associazione degli indirizzi (address binding) al codice ed ai dati di un programma. Inoltre, si spieghi cosa si intende per spazio di indirizzo logico e spazio di indirizzo fisico di un processo e quale funzione svolge la MMU. 8.2 Si descrivano brevemente il caricamento dinamico ed il collegamento dinamico, evidenziandone l’utilità ed il supporto che il SO deve fornire per l’implementazione. 8.3 Si descriva brevemente il meccanismo di swapping, discutendone l’uso attuale nei SO e l’efficienza. 8.4 Cosa si intende per frammentazione esterna e frammentazione interna? 8.5 Si descriva, facendo uso di un disegno, il funzionamento di una memoria paginata. Inoltre, si spieghi come funziona una TLB e perché è importante nell’implementazione di una memoria paginata. 8.6 Di solito ad ogni frame sono associati dei bit di protezione. A cosa servono? 8.7 Perché si rende necessario “strutturare” una tabella delle pagine? Si descrivano le tre strutturazioni maggiormente utilizzate e se ne evidenzino vantaggi e svantaggi. 8.8 Si descriva, facendo uso di un disegno, una organizzazione a due livelli di una memoria paginata per uno spazio di indirizzamento a 32 bit. 8.9 Si descriva, facendo uso di un disegno, il funzionamento di una memoria segmentata. 8.10 Si descriva la segmentazione paginata implementata nel processore Pentium.


Capitolo 9 9.1 Si spieghi, chiaramente e concisamente, cos’è la memoria virtuale, quali sono le motivazioni per cui è stata introdotta, e quali vantaggi comporta. 9.2 Si descriva, facendo uso di un disegno, la realizzazione della memoria virtuale tramite paginazione su richiesta (demand paging). 9.3 Cosa si intende per tempo di accesso effettivo (EAT)? 9.4 Cosa si intende per copia su scrittura (copy-on-write) e quali vantaggi comporta? 9.5 Cos’è l’anomalia di Belady? 9.6 Come può essere implementato l’algoritmo LRU? Se ne discutano le prestazioni. 9.7 Si descrivano brevemente le approssimazioni dell’algoritmo LRU. 9.8 Si descrivano i vantaggi che la bufferizzazione può portare nell’implementazione della memoria virtuale. 9.9 Secondo quali strategie vengono allocati i frame ai processi? Esistono vincoli architetturali da rispettare? 9.10 Cos’è il thrashing? 9.11 Come funziona e su quale principio si basa il modello del working set? È una tecnica efficiente per controllare il fenomeno del thrashing? 9.12 Come si può controllare il thrashing efficientemente? 9.13 Si spieghi quali vantaggi comporta la mappatura dei file in memoria in un SO e che relazione esiste in Windows XP tra il meccanismo della mappatura dei file in memoria e la comunicazione tra processi. 9.14 Si descrivano brevemente le tecniche di allocazione di memoria per il kernel studiate a lezione. Inoltre, si spieghi perché tali tecniche sono vantaggiose rispetto alle tecniche usate per l’allocazione di memoria dei processi utente. 9.15 Per cosa si usano, ed in quale contesto, i seguenti bit: - bit di modifica - bit di validità - bit di riferimento


Esercizi