






Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Libro di Michael Dahlin, Thomas Anderson tradotto in italiano (13 capitoli).
Tipologia: Appunti
1 / 11
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







Capitolo 9 (26/04/18) CACHE La cache è una memoria, che contiene una copia di dati, molto veloce. Se un dato che sto cercando lo trovo viene chiamato hit altrimenti ho un miss. Perché funzionano le cache? Dapprima ci si era accorti che nei programmi vigeva il principio di località. Per un bel po’ di tempo quindi utilizzo gli stessi dati/istruzioni. Esiste anche una località spaziale: per esempio quando lavoro in una matrice (quindi i dati sono uno accanto all’altro). In lettura In Scrittura
Working set= insieme di locazioni di memoria che vengono utilizzate da un processo per un certo periodo di tempo, quindi è molto ragionevole mettere tale working set all’interno della cache. Thrashing: Il working set > dimensione della cache, quindi ogni volta devo recuperare informazioni che non ho. Come si realizza fisicamente la cache? Come una memoria associativa chiamata Fully Associative. In questo caso ho subito il valore se esiste in cache (poiché viene fatto un controllo in parallelo) ma costa tanto. Potrei realizzarla con una tabella hash, tale tecnica chiamata Direct Mapped. In pratica si utilizza una via di mezzo, quindi si utilizzano più memorie associative le quali sono indirizzate tramite funzioni hash()
Che succede se la cache è piena? Devo scegliere quali oggetti mettere. Quali sono i criteri?
Least Frequently Used (LFU): Scaricare quello che in un certo lasso di tempo è stato riferito molto meno. A volte MIN si comporta come LRU.
Cosa si fa nel caso di un page fault?
Se non trovo nessuna posizione libera: Prima di andare a caricare dal disco la pagina richiesta, devo buttare fuori una pagina chiamata vittima , la quale viene salvata in disco prima di essere rimpiazzata. OSS: Se la pagina da buttar via non è stata mai modificata, allora la dichiaro libera immediatamente. Altrimenti, prima la salvo su disco e poi posso rimpiazzarla. Questo è possibile grazie al bit di modifica. Riassunto paginazione a domanda:
Una volta che la pagina è stata modificata
Ad ogni giro di lancetta ho 2 possibilità:
Quindi per ogni pagina mantengo un bit che indica se è stato riferito nell’ultimo time tick, ad un page fault si esamina il bit R. WSCLOCK
età: time ultimo rif.
Continuo lezione (08/05/18)