Sistemi Operativi A.A. 2010/2011

Documenti analoghi
Sistemi Operativi 13 Novembre 2015

Sistemi Operativi A.A. 2011/2012

Laboratorio di Sistemi Operativi Simulatori

Eserciziario. Leonardo Ranaldi. January 2019

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.

Scheduling della CPU

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi 9/05/2012 <C>

Il Sistema Operativo Ripasso

esercizi memoria virtuale...

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 21 settembre 2006

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

TERMINA ESECUZIONE A B =85 85 C =90 90 D = E = INIZIA ESECUZIONE

Sistemi Operativi 20 giugno 2013 Compito B

Scheduling della CPU. Sistemi Operativi L-A AA

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi Esercizi Ordinamento Processi

Sistemi Operativi 2003/2004. Lo scheduling dei processi

Ordinamento dei processi

Il software. la parte contro cui si può solo imprecare

E-1: Scheduling dei processi

Sistemi operativi e distribuiti

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi e Laboratorio, Prova del 9/9/2014

Scheduling della CPU

Scheduling della CPU

GESTIONE DELLA MEMORIA CENTRALE

Esercizio Dispositivi-1. Soluzione

Sistemi operativi. Sistemi Operativi. Sistemi Operativi. Funzioni del Sistema Operativo

1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia

Scheduling della CPU. Capitolo 6 - Silberschatz

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc Esercitazione. Memoria virtuale

SCHEDULING DELLA CPU. Obiettivi. » Introduzione allo scheduling della CPU. » Algoritmi di scheduling della CPU

Sistemi Operativi e Laboratorio, Prova del 16/1/2015

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Sistemi Operativi. Lezione 5 Lo scheduling

Cognome: Nome: Matricola:

Sistemi Operativi Esercizi Gestione Memoria

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Settore Inizio lettura: t+ Fine lettura Inizio trasf. in memoria Fine trasf. in memoria 5 (35-21).0,1= 1,4 1,5 1,5 1,56

Sistemi Operativi e Laboratorio, Prova del 25/5/2016

Sistemi Operativi Appello del 10 luglio 2017 Versione Compito A Cognome e nome: Matricola: Posto:

Cognome e nome: Matricola: Posto:

Corso di Informatica

il Nucleo e la gestione dei processi

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Memoria secondaria. Fabio Buttussi HCI Lab Dept. of Math and Computer Science University of Udine ITALY

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms

1.9: Gestione della Memoria Secondaria

Esercitazione di Sistemi Operativi

Cognome e nome: Matricola: Posto: Regole dell'esame.

Sistemi Operativi. Scheduling dei processi

Capitolo 14: Struttura delle memorie di massa

= 0, 098 ms. Da cui si ricava t 2 medio

L ordinamento dei processi. Ordinamento dei processi. Fasi di ordinamento. Attribuzione della CPU 1. Materiale preparato da: A.

SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 5 luglio 2004

ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse

PROVA SCRITTA DEL CORSO DI C A L C O L A T O R I E L E T T R O N I C I NUOVO E VECCHIO ORDINAMENTO DIDATTICO 24 Settembre 2008

12 Memoria secondaria Struttura del disco Struttura del disco

Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl

Lezione T17 Algoritmi di sostituzione delle pagine

Sistemi Operativi. Scheduling dei processi

Criteri di Scheduling! Algoritmi di Scheduling! Scheduling per sistemi multprocessore!! Modelli Asimmetrico e Simmetrico! Processori Multicore!

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione

= ,5. = 0, 985, ossia un hit rate del 98,5%.

Modello di Sistema Real Time. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Sistemi Operativi e Laboratorio, Prova del 16/2/2015

Scheduling della CPU Simulazione in linguaggio Java

PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 16 Gennaio 2014

Sistemi Operativi. Bruschi Martignoni Monga. Scheduling. Sistemi batch SJF. Sistemi. interattivi Priority RR Code multiple Sistemi real-time Deadline

Architettura degli Elaboratori 2

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Esercizi su dischi magnetici

Appunti di Sistemi Operativi. Enzo Mumolo address web address :

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

IL SISTEMA OPERATIVO

2.2 Scheduling in Linux

La schedulazione. E.Mumolo

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Il supporto al sistema operativo

SCHEDULING DEI PROCESSI

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Sistemi Operativi 9 luglio 2013 Compito

Sistemi Operativi a.a Esercizi - 2

Simuliamo ora il funzionamento di LRU sulla reference string data:

SCHEDULING+ DELLA+CPU+

Transcript:

Sistemi Operativi A.A. 2010/2011 Esercitazione 15 Dicembre 2009 (Agg.to Dic. 2010) Nome Cognome Matricola e-mail Esercizio 1 - Scheduling dei processi Data la seguente sequenza di processi Processo Istante Arrivo Durata Priorità P 1 0 7 2 P 2 1 5 3 P 3 3 3 1 P 4 7 5 2 se ne determini l'ordine di esecuzione secondo ognuno dei seguenti algoritmi: FCFS - First come, First served SJF - Shortest Job First (senza/con prelazione) RR - Round Robin, con q=2 e q=4 Scheduling per priorità Per ciascuno degli algoritmi si calcoli il tempo di attesa medio. Si elenchino infine sinteticamente vantaggi e svantaggi di ciascuno degli algoritmi. Soluzione Per calcolare il tempo di attesa di ogni processo dobbiamo applicare la seguente formula: T A = I fine -I arrivo -Durata Ricordiamo che il tempo di attesa T A misura per quanto tempo un processo pronto rimane "in attesa" nella coda dei processi ready. E' importante chiarire come deve essere determinato il valore della quantità I fine. I fine è il quanto di tempo immediatamente successivo all'ultimo in cui il processo è stato in esecuzione. Ad esempio, nel caso di un processo di durata 3 che inizia la sua esecuzione all'istante 1, I fine varrà 4. Infatti il processo viene eseguito: Durante il quanto di tempo che inizia all'istante 1 Durante il quanto di tempo che inizia all'istante 2 Durante il quanto di tempo che inizia all'istante 3 A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 1/13

Dunque, all'inizio del quanto di tempo 4 il processo ha terminato la sua esecuzione e la CPU può essere assegnata ad un altro processo. FCFS 1. All'istante t=0 arriva il processo P 1. La CPU è libera e il processo va subito in esecuzione. 2. All'istante t=1 arriva il processo P 2. La CPU è impegnata dal processo P 1 e il processo P 2 viene inserito nella coda dei processi pronti. 3. All'istante t=3 arriva il processo P 3 che viene inserito in coda. La coda contiene il processo P 2 e il processo P 3. 4. All'istante t=7 il processo P 1 è terminato e la CPU può essere assgnata ad un nuovo processo. Il primo processo che era stato inserito nella coda era il processo P 2 che andrà in esecuzione. 5. All'istante t=7 arriva il processo P 4 che viene inserito nella coda dopo il processo P 3. 6. All'istante t=12 il processo P 2 è finito e viene avviato il processo P 3. 7. All'istante t=15 il processo P 3 è finito e viene avviato il processo P 4. Riassumendo, i processi vengono schedulati secondo il seguente ordine: Processo 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 4 4 4 4 4 t 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 Si osserva dunque che il tempo di attesa è: 7-0 - 7 = 0 per il processo P 1. 12-1 - 5 = 6 per il processo P 2. 15-3 - 3 = 9 per il processo P 3. 20-7 - 5 = 8 per il processo P 4. Processo Arrivo Fine Durata Attesa P 1 0 7 7 0 P 2 1 12 5 6 P 3 3 15 3 9 P 4 7 20 5 8 Tempo Attesa Medio = 5.75 SJF - Senza Prelazione A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 2/13

1. All'istante t=0 arriva il processo P 1. La CPU è libera e il processo va subito in esecuzione. 2. All'istante t=1 arriva il processo P 2. Al processo P 1 sono necessarie ancora 6 unità di tempo di elaborazione, al processo P 2 soltanto 5. Tuttavia, dal momento che l'algoritmo è implementato senza prelazione, il processo P 1 mantiene il possesso della CPU fino alla sua conclusione. 3. All'istante t=3 arriva il processo P 3 che viene inserito in coda. La coda contiene sia il processo P 2 che il processo P 3. 4. All'istante t=7 il processo P 1 è terminato. Nella coda sono già presenti sia il processo P 2 che il processo P 3. Viene inoltre aggiunto il processo P 4 che arriva all'istante 7. Viene selezionato per l'esecuzione il processo P 3 dal momento che è quello che richiede il minor tempo di esecuzione. 5. All'istante t=10 il processo P 3 è terminato e deve essere avviato un nuovo processo. I due processi presenti nella coda (P 2 e P 4 ) richiedono lo stesso tempo di CPU. Tuttavia viene selezionato il processo P 2 che per primo è stato inserito nella coda. 6. All'istante t=15 il processo P 4 è terminato e viene avviato il processo P 4. 7. All'istante t=20 il processo P 4 è terminato. Processo 1 1 1 1 1 1 1 3 3 3 2 2 2 2 2 4 4 4 4 4 t 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 L'assenza della prelazione implica che quando un processo prende possesso della CPU continua la sua elaborazione fino alla fine. Quindi il tempo di attesa è dato semplicemente dalla differenza tra l'istante di avvio e l'istante di arrivo. Processo Arrivo Fine Durata Attesa P 1 0 7 7 0 P 2 1 15 5 9 P 3 3 10 3 4 P 4 7 20 5 8 Tempo Attesa Medio = 5.25 SJF - Con Prelazione 1. All'istante t=0 arriva il processo P 1. La CPU è libera e il processo va subito in esecuzione. 2. All'istante t=1 arriva il processo P 2. Al processo P 1 sono necessarie ancora 6 unità di tempo di elaborazione, al processo P 2 soltanto 5. Dal momento che l'algoritmo è implementato con prelazione, il processo P 1 viene interrotto e messo nella coda e il processo P 2 va in esecuzione. A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 3/13

3. All'istante t=3 arriva il processo P 3. In esecuzione c'è il processo P 2 al quale mancano 3 unità di tempo per essere completato. Dal momento che il processo P 3 richiede anch'esso 3 unità di tempo, si continua a eseguire il processo P 2. Il processo P 3 viene inserito nella coda. 4. Istante t=6. Il processo P 2 è finito e viene selezionato dalla coda il processo P 3 che va in esecuzione. 5. Istante t=7. Arriva il processo P 4 che viene inserito nella coda. 6. All' istante t=9 il processo P 3 è terminato e si deve selezionare un nuovo processo. Nella coda sono presenti il processo P 1 (che richiede ancora 6 unità di CPU) e il processo P 4 che ne richiede solo 5. Viene avviato quest'ultimo. 7. All'istante t=14 il processo P 4 è terminato. A questo punto, viene riavviato il processo P 1 che, essendo l'ultimo processo rimasto, potrà essere eseguito fino alla fine. Processo 1 2 2 2 2 2 3 3 3 4 4 4 4 4 1 1 1 1 1 1 t 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 Processo Arrivo Fine Durata Attesa P 1 0 20 7 13 P 2 1 6 5 0 P 3 3 9 3 3 P 4 7 14 5 2 Tempo Attesa Medio = 4.5 Round Robin q = 2 1. All'istante t=0 arriva il processo P 1. La CPU è libera e il processo va subito in esecuzione. 2. All'istante t=1 arriva il processo P 2. La CPU è impegnata dal processo P 1 e il processo P 2 viene inserito nella coda dei processi pronti. CODA = {P 2 } 3. All'istante t=2 il processo P 1 ha esaurito i due quanti di tempo a sua disposizione. La sua esecuzione viene interrotta e viene spostato nella coda dei processi pronti. Viene avviato il processo P 2. Il processo P 1 deve ancora eseguire 5 unità di tempo. CODA = {P 1 } 4. All'istante t=3 arriva il processo 3. La CPU è impegnata dal processo P 2 e il processo P 3 viene inserito nella coda dei processi pronti. CODA = {P 1,P 3 } 5. All'istante t=4 il processo P 2 ha esaurito i due quanti di tempo a sua disposizione. Viene interrotto e spostato nella coda dei processi pronti. Il processo P 2 deve ancora eseguire 3 unità di tempo. Viene avviato il processo P 1. CODA = {P 3,P 2 } A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 4/13

6. All'istante t=6 il processo 1 viene interrotto e spostato nella coda dei processi pronti. Il processo P 1 deve ancora eseguire 3 unità di tempo. Viene avviato il processo P 3. CODA = {P 2,P 1 }. 7. All'istante t=7 arriva il processo P 4 che viene inserito nella coda. CODA = {P 2,P 1,P 4 }. 8. All'istante t=8 viene interrotto il processo P 3 e viene selezionato il primo processo dalla coda (il processo P 2 ). Il processo P 3, che richiede ancora un quanto di tempo, viene reinserito nella coda. CODA = {P 1,P 4, P 3 }. 9. All'istante t=10 il processo P 2 viene interrotto e viene spostato nella coda poichè richiede ancora un quanto di tempo di esecuzione. Viene avviato il processo P 1 che è il primo tra quelli in coda. CODA = {P 4, P 3, P 2 }. 10. All'istante t=12 il processo P 1 viene interrotto e messo in coda. Viene avviato il processo P 4. CODA = {P 3, P 2, P 1 }. 11. All'istante t=14 il processo P 4 viene interrotto e viene avviato il processo P 3. Il processo P 4 torna in coda. CODA = {P 2, P 1, P4}. 12. All'istante t=15 il processo P 3 ha terminato l'esecuzione. Parte il processo P 2. CODA = {P 1, P 4 }. 13. All'istante t=16 il processo P 2 è terminato. Parte il processo P 1. CODA = {P 4 }. 14. All'istante t=17 il processo P 1 è terminato. Dal momento che non ci sono altri processi in coda, il processo P 4 può continuare ad essere eseguito per tutte e 3 le unità di tempo che gli sono necessarie. Processo 1 1 2 2 1 1 3 3 2 2 1 1 4 4 3 2 1 4 4 4 t 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 Processo Arrivo Fine Durata Attesa P 1 0 17 7 10 P 2 1 16 5 10 P 3 3 15 3 9 P 4 7 20 5 8 Tempo Attesa Medio = 9.25 Round Robin q = 4 1. All'istante t=0 arriva il processo P 1. La CPU è libera e il processo va subito in esecuzione. 2. All'istante t=1 arriva il processo P 2. La CPU è impegnata dal processo P 1 e il processo P 2 viene inserito nella coda dei processi pronti. CODA = {P 2 } A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 5/13

3. All'istante t=3 arriva il processo P 3. La CPU è impegnata dal processo P 1 e il processo P 3 viene inserito nella coda dei processi pronti. CODA = {P 2,P 3 } 4. All'istante t=4 il processo P 1 ha esaurito i suoi quanti di tempo. Viene sospeso, spostato nella coda, e viene avviato il processo P 2. CODA = {P 3,P 1 } 5. All'istante t=7 arriva il processo P 4 che viene inserito nella coda. CODA = {P 3, P 1,P 4 } 6. All'istante t=8 il processo P 2 ha esaurito i suoi quanti di tempo. Viene sospeso, spostato nella coda e viene avviato il processo P 3. CODA = {P 1,P 4,P 2 } 7. All'istante t=11 il processo P 3 è terminato. Viene avviato il processo P 1. CODA = {P 4,P 2 } 8. All'istante t=14 il processo P 1 è terminato. Viene avviato il processo 4. CODA = {P 2 } 9. All'istante t=18 il processo P 4 ha terminato i suoi quanti di tempo. Viene inserito in coda e viene avviato il processo P 2. CODA = {P 4 } 10. All'istante t=19 il processo P 2 è terminato e viene avviata l'esecuzione dell'ultimo quanto del processo P 4. Processo 1 1 1 1 2 2 2 2 3 3 3 1 1 1 4 4 4 4 2 4 t 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 Processo Arrivo Fine Durata Attesa P 1 0 14 7 7 P 2 1 19 5 13 P 3 3 10 3 4 P 4 7 20 5 8 Tempo Attesa Medio = 8 Scheduling per priorità (con prelazione) 1. All'istante t=0 arriva il processo 1. La CPU è libera e il processo va subito in esecuzione. 2. All'istante t=1 arriva il processo 2. Il processo ha priorità più bassa rispetto a quello in esecuzione per cui viene messo in coda. CODA = {P2} 3. All'istante t=3 arriva il processo 3. Il processo ha priorità più alta sia del processo 1 (che è in esecuzione). L'esecuzione di 1 viene interrotta, il processo viene spostato nella coda e la CPU inizia ad eseguire il processo 3. Il processo 1 ha priorità maggiore del processo 2, per cui andrà a prendere posizione nella coda prima di P2. CODA = {P1, P2} 4. All'istante t=6 il processo 3 è terminato e riprende l'esecuzione del processo 1. CODA = {P2} A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 6/13

5. All'istante t=7 arriva il processo 4 che ha la stessa priorità del processo 1 che è in esecuzione. 1 continua ad essere eseguito. Tuttavia, poichè il processo 4 ha priorità maggiore del processo 2, precederà quest'ultimo nella coda. CODA = {P4, P2} 6. All'istante t=10 il processo 1 è terminato e viene avviato il processo 4. CODA = {P2} 7. All'istante t=15 il processo 4 è terminato e viene avviato il processo 2. CODA = {} Processo 1 1 1 3 3 3 1 1 1 1 4 4 4 4 4 2 2 2 2 2 t 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 Processo Arrivo Fine Durata Attesa P 1 0 10 7 3 P 2 1 20 5 14 P 3 3 6 3 0 P 4 7 15 5 3 Tempo Attesa Medio = 5 Esercizio 2 - Accesso al disco Si consideri la sequenza di richieste di accesso al disco riportata qui di seguito: 141 130 217 111 20 250 270 190 230 99 Dato un disco la cui superficie è suddivisa in 300 tracce e supposto che la testina si trovi inizialmente posizionata sulla traccia 150, si illustri come la richiesta di sequenze viene soddisfatta da ciascuna delle seguenti politiche: FCFS - First Come, First Served SSTF - Shortest Seek Time First SCAN (con/senza Look) C-SCAN (con / senza Look) Per ciascuna di esse, si calcoli il numero medio di spostamenti che viene effettuato dalla testina. Per le politiche di SCAN, si assuma che la testina inizi a muoversi verso numeri di traccia crescenti. Per le politiche C-SCAN la testina legge mentre si muove verso i numeri di traccia crescenti. Lo spostamento all'indietro della testina A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 7/13

durante la fase di non lettura, non deve essere conteggiato nel calcolo dello spostamento medio. FCFS # 1 2 3 4 5 6 7 8 9 10 Richiesta 141 130 217 111 20 250 270 160 230 99 Media Spost. 9 11 87 106 91 230 20 110 70 131 86.5 SSTF # 1 2 3 4 5 6 7 8 9 10 Richiesta 141 130 111 99 160 217 230 250 270 20 Media Spost. 9 11 19 12 61 57 13 20 20 250 47.2 SCAN senza Look # 1 2 3 4 5 6 7 8 9 10 Richiesta 160 217 230 250 270 141 130 111 99 20 Media Spost. 10 57 13 20 20 189 11 19 12 79 41 SCAN con Look # 1 2 3 4 5 6 7 8 9 10 Richiesta 160 217 230 250 270 141 130 111 99 20 Media Spost. 10 57 13 20 20 159 11 19 12 79 38 C-SCAN senza Look # 1 2 3 4 5 6 7 8 9 10 Richiesta 160 217 230 250 270 20 99 111 130 141 Media Spost. 10 57 13 20 20 50 79 12 19 11 29.1 C-SCAN con Look # 1 2 3 4 5 6 7 8 9 10 Richiesta 160 217 230 250 270 20 99 111 130 141 Media Spost. 10 57 13 20 20 0 79 12 19 11 24.1 A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 8/13

Esercizio 3 - Memoria Virtuale Si consideri la seguente richiesta di pagine 3 1 2 3 4 1 2 3 4 5 3 1 2 1 4 Mostrare come vengono allocate le pagine virtuali da parte dei seguenti algoritmi di sostituzione: Ottimo FIFO LRU Seconda Chance Si ipotizzi che la dimensione della memoria sia di 3 pagine fisiche. Si valuti quanto la prestazione degli algoritmi in termini di numero di page fault. Si valuti inoltre quando la prestazione dei due algoritmi FIFO e LRU si discosta da quella ottima (in termini percentuali). OTTIMO 3 3 3 3 4 4 4 4 4 5 5 5 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 4 F F F F F F F F R 3 1 2 3 4 1 2 3 4 5 3 1 2 1 4 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Page Fault: 8 Prime 3 richieste: La memoria è inizialmente vuota, quindi le pagine 3, 1 e 2 vengono caricate. Richiesta #4: La pagina 3 è già presente in memoria. Richiesta #5: La pagina 4 non è presente in memoria. Si deve eliminare la pagina che verrà chiesta più tardi. Dopo la 4, vengono chieste le pagine 1, 2, 3. Quindi quest'ultima è quella che viene eliminata. Richiesta #6: La pagina 1 è già presente in memoria. Richiesta #7: La pagina 2 è già presente in memoria. Richiesta #8: La pagina 3 non è presente in memoria. Di quelle presenti, quella che verrà richiesta più tardi è la 2 che viene sostituita. A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 9/13

Richiesta #9: La pagina 4 è presente in memoria. Richiesta #10: La pagina 5 non è presente in memoria. Di quelle presenti, quella che verrà richiesta più tardi è la 4 che viene sostituita. Richieste #11 e #12 : Le pagine 3 e 1 sono già presenti in memoria. Richiesta #13: La pagina 2 non è presente in memoria. Guardando alle successive richieste, osserviamo che delle tre pagine presenti soltanto la 1 verrà richiesta in seguito. Perciò possiamo scegliere indifferentemente di eliminare o la 5 o la 3. Scegliamo la prima. Richiesta #14: La pagina 1 è già presente in memoria. Richiesta #15: La pagina 4 non è presente in memoria. Decidiamo di eliminare la pagina 3. FIFO 3 3 3 3 4 4 4 4 4 4 4 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 4 F F F F F F F F F R 3 1 2 3 4 1 2 3 4 5 3 1 2 1 4 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Page Fault: 9 + 12.5% rispetto all'ottimo LRU 3 3 3 3 3 3 2 2 2 5 5 5 2 2 2 1 1 1 4 4 4 3 3 3 3 3 3 3 4 2 2 2 1 1 1 4 4 4 1 1 1 1 F F F F F F F F F F F F R 3 1 2 3 4 1 2 3 4 5 3 1 2 1 4 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Page Fault: 12 + 50% rispetto all'ottimo Seconda Chance (CLOCK) 3 3 3 3 4 4 4 4 4 4 4 1 1 1 1 A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 10/13

1 1 1 1 1 1 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 4 F F F F F F F F F R 3 1 2 3 4 1 2 3 4 5 3 1 2 1 4 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Page Fault: 9 + 12.5% rispetto all'ottimo Prime tre richieste: le prime tre pagine vengono caricate in memoria con il corrispondente bit di riferimento settato a 1. Si tenga presente che nel caso in cui tutti i bit siano settati a 1 l'algoritmo Seconda Chance "degenera" in un algoritmo FIFO, dove la prima pagina ad essere eliminata è quella che per prima è stata caricata in memoria. Quindi la Next Victim in questo caso sarà la pagina 3. Lo stato della memoria dopo le prime 3 richieste sarà il seguente: Pagina 3 1 2 Reference Bit 1 1 1 Richiesta #4: Viene richiesta la pagina 3, che è già in memoria. Il reference bit della pagina 3 è già a 1 e quindi la situazione della memoria non cambia. Pagina 3 1 2 Reference Bit 1 1 1 Richiesta #5: Viene richiesta la pagina 4, che non è in memoria. La dovrebbe essere la pagina 3, il cui reference bit è però = 1. L'algoritmo mette a 0 il reference bit della pagina 3 e seleziona come la pagina 1. Anche questa ha il reference bit a 1: nuovamente, l'algoritmo mette il reference bit a 0 e passa alla pagina successiva. Anche la pagina 2 ha il reference bit a 1: viene settato a 0 e si passa alla pagina successiva. Dal momento che le pagine sono disposte in una coda circolare si torna alla pagina 3. A questo punto questa ha il reference bit a 0 e può essere sostituita. Si osservi come di fatto l'algoritmo si sia comportato come un algoritmo FIFO (tutte le pagine avevano R.B. a 1) Una volta che la pagina 4 è stata caricata, abbiamo la seguente situazione: Pagina 4 1 2 Reference Bit 1 0 0 A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 11/13

Richiesta #6: Viene richiesta la pagina 1, che è in memoria. Il reference bit della pagina viene impostato a 1. Pagina 4 1 2 Reference Bit 1 1 0 Richiesta #7: Viene richiesta la pagina 2, che è in memoria. Il reference bit della pagina viene impostato a 1. Pagina 4 1 2 Reference Bit 1 1 1 Richiesta #8: Viene richiesta la pagina 3, che non è in memoria. Dal momento che tutte le pagine hanno il reference bit a 1, il puntatore a Next Victim compie un giro completo della coda azzerando i reference bit per poi tornare alla pagina 1 che è quella che viene sostituita (di fatto era la più vecchia delle pagine presenti in memoria). Una volta che la richiesta della pagina 3 è stata soddisfatta, la situazione delle code è la seguente: Pagina 4 3 2 Reference Bit 0 1 0 Richiesta #9: Viene richiesta la pagina 4. La pagina è in memoria e il suo reference bit viene settato a 1. Pagina 4 3 2 Reference Bit 1 1 0 Richiesta #10: Viene richiesta la pagina 5 che non è in memoria. La pagina 2 è la Next Victim e dato che il suo reference bit è 0 viene sostituita. Pagina 4 3 5 Reference Bit 1 1 1 Richiesta #11: Viene richiesta la pagina 3, che è in memoria. La pagina ha già il reference bit a 1 per cui la situazione rimane immutata. A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 12/13

Pagina 4 3 5 Reference Bit 1 1 1 Richiesta #12: Viene richiesta la pagina 1 che non è in memoria. Tutte le pagine hanno il reference bit a 1 e quindi l'algoritmo percorre tutta la coda azzerando i reference bit. Torna infine alla pagina 4 e la sostituisce. Pagina 1 3 5 Reference Bit 1 0 0 Richiesta #13: Viene richiesta la pagina 2. La è la pagina 3, il cui reference bit è 0. La pagina viene sostituita e la diventa la pagina successiva. Pagina 1 2 5 Reference Bit 1 1 0 Richiesta #14: Viene richiesta la pagina 1, che è già in memoria con R.B. = 1. La situazione non cambia. Pagina 1 2 5 Reference Bit 1 1 0 Richiesta #15: Viene richiesta la pagina 4 che non è in memoria. La è la pagina 5 che viene eliminata dato che il suo R.B. è uguale a 0. Pagina 1 2 4 Reference Bit 1 1 1 A.A. 2010 2011 Sistemi Operativi Esercitazione 14/12/2010 13/13