Sei sulla pagina 1di 6

Esercizi Memorie 1 D::Le page table (tabelle delle pagine) sono memorizzate nella memoria fisica.

Quest'ultima ha un tempo di accesso di 1 nanosecondi. !l "L# (translation loo$%aside buffer) pu& mantenere ' entr( della page table e ha un tempo di accesso di 1 nanosecondi. Durante l'esecuzione di un processo) si * +isto che per ',- del tempo l'entr( della page table richiesta risiede nel "L# e solo il .- delle reference causano un page fault. !l tempo medio per il rimpiazzamento delle pagine * di . millisecondi. /alcolare il tempo medio di accesso a memoria. 0::1er ogni riferimento abbiamo i seguenti possibili esiti: /on probabilit2 .', si +erifica un "L# hit %%3 il tempo di accesso * ""L# 4 "MEM /on probabilit2 .15 (cio* 1 % .', % . .) si +erifica un "L# miss) ma non un page fault %%3 il tempo di accesso * ""L# 4 ."MEM

/on probabilit2 . . si +erificano un "L# miss e un page fault %%3 il tempo di accesso * ""L# 4 "MEM 4 . ms 4 ""L# 4 "MEM (nell'ordine abbiamo un "L# miss) il recupero della tabella delle pagine in memoria) il rimpiazzamento della pagina e ripristino esecuzione) un "L# hit e il recupero della pagina in memoria). !l tempo medio di accesso * 6uindi: E7" 8 .',9(1 4 1 ) 4 .159(1 4 . ) 4 . .9(. 4 . 4 .91 :) 8 ; 1.,.. ns . D::<sando i tempi di accesso e gli hit ratio specificati nell' =E>E0/!?!@ 1=) calcolare i tempi medi di accesso in caso di organizzazione delle page table su piA li+elli) in particolare in caso di organizzazione tBo%le+el) three%le+el e four%le+el. 0::1aginazione a due li+elli: /'* un errore in: ( .', C 11 ns)4 .15 C(1 41 infatti do+rebbe essere: tDmedioDaccessoDmemoria 8 ( .',C11 ns)4( .1,C(1 41 8 E5.,4;:., 8 1; ns B ed il resto della soluzione *: tDaccessoDpagefault 8 ( .E'C1; ns)4( . .C.C1 F:) 8 15G..4; 8 ; 15G..ns 1er 6uanto riguarda la paginazione a tre li+elli: tDmedioDaccessoDmemoria 8 ( .',C11 ns)4( .1,C(1 41 8 E5.,4:1., 8 1,,ns tDaccessoDpagefault 8 ( .E'C1,,ns)4( . .C.C1 F:) 8 1,1.E4; 8 ; 1,1.Ens !nfine) a ; li+elli: tDmedioDaccessoDmemoria 8 ( .',C11 ns)4( .1,C(1 41 8 E5.,4G:., 8 1G ns tDaccessoDpagefault 8 ( .E'C1G ns)4( . .C.C1 F:) 8 1::.:4; 8 ; 1::.:ns 41 41 ) 41 41 )

41

41

41

41

41

41

41

5 D::/os'* l'anomalia di #elad(H Mostrare che un algoritmo di rimpiazzamento delle pagine implementato tramite stac$ * immune dall'anomalia di #elad( 0::1er anomalia di #elad( si intende il caso in cui all'aumentare del numero di frame disponibili) e 6uindi di memoria utilizzabile per i processi) il tasso di page fault tende a non diminuire. L'algoritmo I!I@ soffre di tale anomalia) a differenza dell'algoritmo L0< con implementazione tramite stac$. 7d esempio si pro+i a considerare un insieme di : processi) processati secondo il seguente ordine : 1)5);)G),);)5):),)G) il >@ assegna solo , frame per gestirne la processione. /on tale algoritmo e tale numero di frame si a+rebbe un totale di G page fault) , per riempire i frame disponibili durante i primi caricamenti 4 1 per inserire il processo : (che +a a

sostituirsi al G) ultimo della pila) 4 1 per reinserire il processo G) precedentemente prelazionato. @ra si presupponga di ottenere : frame in+ece che ,) con : frame si a+rebbero : page fault) 6uindi all'aumentare del numero di frame il tasso di page fault tende a diminuire) pro+a che tale algoritmo con implementazione tramite stac$ * immune all'anomalia di #elad(. ; D::La strategia Jorst%fit alloca sempre la =buca piA grande= in fase di allocazione della memoria. /onfrontare i +antaggi e gli s+antaggi di 6uesta tecnica con 6uelle Iirst%fit e #est%fit. 0::1er 6uanto riguarda l'allocazione Iirst%fit) il suo +antaggio * l'estrema rapidit2 do+uta all'assenza di operazioni di ricerca ottimizzata) che * appunto il suo s+antaggio in 6uanto l'allocazione di un immagine in una determinata partizione in memoria non ha una moti+azione particolare. #est%fit e Borst%fit impiegano entrambi un tempo maggiore per tro+are l'elemento da rimpiazzare perchK sono costretti a scorrere tutti i =buchi= per scoprire il piA adatto. #est%fit ha il +antaggio di mantenere intatti i =buchi= piA grandi permettendo la futura allocazione di immagini di dimensione piA consistente. /onseguentemente tende a frammentare eccessi+amente la memoria (lascia =buchi= di piccole dimensioni) difficilmente allocabili). Jorst%fit ha il +antaggio di non creare una cosL ele+ata frammentazione) lasciando =buchi= di dimensione il piA grande possibile. /ontrariamente al #est%fit tutti gli spazi liberi tendono a diminuire in modo regolare tra loro lasciando poca +ariet2 di dimensioni allocabili. , D::>i consideri un sistema di indirizzamento paginato con pagine di ; M#) la cui page table * la seguente: % ;M ;M % 'M 'M % 1.M 1.M % 1:M >i traducano i seguenti indirizzi +irtuali in indirizzi fisici: 5. 1 1 ) mostrando i passaggi effettuati. ) 115 )1 ) , 5 ) E1 ) :, ) ', ) .1 ) ;. ) . 1 5

0::1er ciascun indirizzo +irtuale N) con pagine da ; M#) il numero di frame * ottenuto accedendo alla page table nella riga data da N O ; E:. L'offset all'interno del frame * in+ece N - ; E:. L'indirizzo fisico * dato da: (P Irame 9 ; E:) 4 @ffset 5. 115 1 , 5 E1 :, ', .1 ;. 1 1 : D::>i descri+a la tecnica del budd( s(stem utilizzata per gestire l'allocazione della memoria ai processi. Quindi) si consideri una memoria da :;M# gestita tramite budd( s(stem in cui +engono allocati blocchi adatti a contenere) nell'ordine) i processi 11) 1.) 15) 1;. Le dimensioni di tali processi sono rispetti+amente di .M#) 11M#) 1. b(te e . M#. a) Quanti split della memoria +engono e ffettuati per allocare lo spazio ai 6uattro processi consideratiH Mostrare inoltre lo stato della memoria dopo l'allocazione dei processi) indicando 6uali sono i blocchi liberi e 6uali sono occupati. b) Quante operazioni di compattazione della memoria +egono e ffettuate se il processo 15 termina rilasciando la memoria che gli era stata allocataH Mostrare inoltre lo stato della memoria dopo l'allocazione dei processi) indicando 6uali sono i blocchi liberi e 6uali sono occupati. 0::HHH G D::>i consideri un sistema di indirizzamento paginato con pagine di . M#) la cui page table * la seguente: : Irame .) @ffset 5. %%3 (.9; E:) 4 5. 8 115E. : Irame 5) @ffset 51 ' %%3 (59; E:) 4 51 ' 8 1,5E: : Irame .) @ffset 1 %%3 '1E. 4 1 8 E1E. : Irame 1) @ffset E5; %%3 (19; E:) 4 E5; 8 , 5 : Irame 5) @ffset E ' %%3 1..'' 4 E ' 8 151E: : Irame 1) @ffset .; ; %%3 ; E: 4 .; ; 8 :, : Irame 5) @ffset 5 ' %%3 1..'' 4 5 ' 8 1.,E: : Irame .) @ffset .1 %%3 '1E. 4 .1 8 1 .E. : Irame 1) @ffset 1 ; %%3 ; E: 4 1 ; 8 ;. : Irame 5) @ffset 1E ' %%3 1..'' 4 1E ' 8 1;1E:

% .M .M % ;M ;M % :M :M % 'M 'M % 1 M

5 ; . 1

>i traducano i seguenti indirizzi +irtuali in indirizzi fisici) mostrando i passaggi effettuati: .1;') 1 G:) ; E,) 'EE.) ; E:) G.'5) 'EE5) :'.:. Data poi la corrispondente reference string) calcolare il numero di page fault applicando gli algoritmi L0<) I!I@ e l'algoritmo ideale) nel caso di . frame. 0::ind. logico .1;' appartiene alla pagina 1 (.$%;$) inizio pagina 8 . ;' offset 8 indirizzo logico % inizio pagina 8 .1;' % . ;' 8 1 pagina 1 %3 frame indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 9. ;' 4 1

81

ind. logico 1 G: appartiene alla pagina 1 ( %.$) inizio pagina 8 offset 8 indirizzo logico % inizio pagina 8 1 G: % 8 1 G: pagina %3 frame 5 indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 59. ;' 4 1 G: 8 G.. ind. logico ; E, appartiene alla pagina 1 (.$%;$) inizio pagina 8 . ;' offset 8 indirizzo logico % inizio pagina 8 ; E, % . ;' 8 . ;G pagina 1 %3 frame indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 9. ;' 4 . ;G 8 . ;G ind. logico 'EE. appartiene alla pagina ; ('$%1 $) inizio pagina 8 '1E. offset 8 indirizzo logico % inizio pagina 8 'EE. % '1E. 8 ' pagina ; %3 frame 1 indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 19. ;' 4 ' ind. logico ; E: appartiene alla pagina . (;$%:$) inizio pagina 8 ; E: offset 8 indirizzo logico % inizio pagina 8 ; E: % ; E: 8 pagina . %3 frame ; indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 ;9. ;' 4

8 .';'

8 '1E.

ind. logico G.'5 appartiene alla pagina 5 (:$%'$) inizio pagina 8 :1;; offset 8 indirizzo logico % inizio pagina 8 G.'5 % :1;; 8 115E pagina 5 %3 frame . indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 .9. ;' 4 115E 8 ,.5, ind. logico 'EE5 appartiene alla pagina ; ('$%1 $) inizio pagina 8 '1E. offset 8 indirizzo logico % inizio pagina 8 'EE5 % '1E. 8 ' 1 pagina ; %3 frame 1 indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 19. ;' 4 ' 1 8 .';E ind. logico :'.: appartiene alla pagina 5 (:$%'$) inizio pagina 8 :1;; offset 8 indirizzo logico % inizio pagina 8 :'.: % :1;; 8 :'. pagina 5 %3 frame . indirizzo fisico 8 n.frame9dim.pagina 4 offset 8 .9. ;' 4 :'. 8 ;GG' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

0EIE0EQ/E >"0!QR: 1 1 8 page fault

1;.5;5

I!I@: 1 1 ; . 5 ; 5 8 reference string %%%%%%%%%%%%%%%% 111;;555 %%%%%%%%%%%%%%%% O ..;; %%%%%%%%%%%%%%%% 1 1 1 1 1 1 8 : page fault L0<: 1 1 ; . 5 ; 5 8 referenc string %%%%%%%%%%%%%%%%%%%%%%% 19 19 1 19 . .9 ; ;9 %%%%%%%%%%%%%%%%%%%%%%% O 9 ; ;9 5 59 5 %%%%%%%%%%%%%%%%%%%%%%% 1 1 1 1 1 1 8 : page fault 7LR@0!"M@ @""!M7LE: 1 1 ; . 5 ; 5 8 reference string %%%%%%%%%%%%%%%% 111;;;;; %%%%%%%%%%%%%%%% O .555 %%%%%%%%%%%%%%%% 1 1 1 1 1 8 , page fault ' D::>i consideri la seguente se6uenza di richieste di allocazioneOrilascio di blocchi di memoria (in b(te): :;M S7T) ,1.M S7T) 1.'M S7T) . M S7T) 1.'M S0T) :;M S7T) . M S0T) ,1.M S0T. Do+e S7T rappresenta una richiesta di allocazione) ed S0T il corrispondente rilascio. 7ssumendo di a+ere una memoria di dimensione 1M#) mostrarne l'e+oluzione in corrispondenza delle +arie richieste) nel caso +enga usato il meccanismo del budd( s(stem per la gestione della memoria. 0::La soluzione all'esercizio proposto * la seguente: >i indicano gli spazi allocati con 7 gli spazi non allocati con E !nizio: 1 .;MSET :;MS7T: suddi+ido la memoria in passi fino ad arri+are al blocco da :;$) prima ,1.) poi .,:) poi 1.' e infine :; :;MS7TU:;MSETU1.'MSETU.,:MSETU,1.MSET ,1.MS7T: ho gi2 lo spazio pronto) 6uindi lo uso direttamente :;MS7TU:;MSETU1.'MSETU.,:MSETU,1.MS7T 1.'MS7T: ho gi2 lo spazio pronto) 6uindi lo uso direttamente :;MS7TU:;MSETU1.'MS7TU.,:MSETU,1.MS7T . MS7T: ho gi2 lo spazio pronto) 6uindi lo uso direttamente :;MS7TU:;MSETU1.'MS7TU.,:MS7TU,1.MS7T 1.'MS0T: >+uoto il blocco da 1.' ma non posso ricompattarlo con niente. :;MS7TU:;MSETU1.'MSETU.,:MS7TU,1.MS7T :;MS7T: ho gi2 lo spazio pronto) 6uindi lo uso direttamente :;MS7TU:;MS7TU1.'MSETU.,:MS7TU,1.MS7T

. MS0T: >+uoto il blocco da .,: ma non posso ricompattarlo con niente. :;MS7TU:;MS7TU1.'MSETU.,:MSETU,1.MS7T ,1.MS0T: >+uoto il blocco da ,1. ma non posso ricompattarlo con niente. :;MS7TU:;MS7TU1.'MSETU.,:MSETU,1.MSET 6uindi 6uesta * anche la situazione finale +isto che i blocchi da :; non +engono deallocati nella se6uenza data E D::>i consideri una memoria paginata con pagine di 1M# e la seguente page table: %1M 1M%.M .M%5M 5M%;M 1 . ) .1 ) ;. )1 1 ) 5

>i traducano i seguenti indirizzi logici in indirizzi fisici: . ) 115 ) 1 ) , 5 ) ; E ) ., ) 5, mostrando i passaggi effettuati e indicando la presenza di e+entuali indirizzi non +alidi. 0::HHH 1

D::>i consideri un sistema dotato di memoria +irtuale con paginazione a . li+elli e indirizzi logici a 5. bit. Qual * la dimensione massima della memoria e la dimensione dell'indirizzo fisico se la memoria * di+isa in 1 .; pagineH 0::HHH 11 D::<n processo) a cui il sistema operati+o assegna inizialmente ; frame +uoti) effettua accessi in memoria in base alla seguente stringa di riferimenti: 1:.5.;:51 Mostrare l'e+oluzione nel tempo dei frame ed e+idenziare i page fault usando gli algoritmi I!I@) L0< ed ottimale. 0::7lgoritmo I!I@ (il primo elemento introdotto * il primo ad essere rimpiazzato): 1 1 : 1 : . 1 : . "otale: : page fault. 7lgoritmo L0< (l'elemento usato meno di recente * il primo ad essere rimpiazzatoV * contrassegnato da un asterisco): 1 : . 5 . ; : ; . 5 ; : 1 ;9 : 5 5 1 : . 5 . 1 : . 5 ; ; : . 5 : ; : . 5 5 ; : . 5 1 ; 1 . 5

1 19 19 19 19 ; : : . "otale: : page fault. : . 5 : . 5 . 5

:9 :

.9 1

59 5

7lgoritmo ideale (rimpiazza l'elemento che +err2 usato piA lontano nel futuro): 1 1 : 1 : . 1 : . "otale: , page fault. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I!QE E>E0/!?! MEM@0!E%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5 1 : . 5 . 1 : . 5 ; 1 : ; 5 : 1 : ; 5 5 1 : ; 5 1 1 : ; 5