Esercizio 1. Si consideri un sistema con 8 pagine di mem. fisiche sul quale sono attivi tre processi A, B e C. Si supponga che all’istante 1000 siano caricate le pagine:

 

processo                               pag. logica            pag. fisica             istante di caricamento        riferita

A                                            0                             7                             500                                         SI

A                                            8                             6                             480                                         NO

A                                            5                             5                             300                                         SI

B                                            5                             4                             970                                         NO

B                                            6                             0                             120                                         SI

C                                            2                             2                             765                                         NO

C                                            5                             1                             900                                         NO

C                                            9                             3                             212                                         NO

 

Supponendo che il sistema utilizzi un algoritmo di sostituzione second chance, dire cosa avviene nei seguenti casi:

 

  1. second chance GLOBALE, C riferisce la pagina logica 5
  2. second chance GLOBALE, A riferisce la pagina logica 3

 

Soluzione:

La lista delle pagine per l’algoritmo second chance GLOBALE è

    B6(120,SI)->C9(212,NO)->A5(300,SI) ->A8(480,NO)->A0(500,SI)->C2(765,NO)->C5(900,NO)->B5(970,NO)


Quindi le risposte sono:

1.) La pagina C5 è già in memoria (nella pagina fisica 1) e quindi viene marcata come riferita

2.) La pagina logica A3 non è in memoria, l’algoritmo second chance esamina B6, siccome è stata riferita, viene inserita in testa alla lista ed
        il campo riferita viene resettato, quindi viene esaminata C9, che viene eliminata, la lista risultante è


A5(300,SI) ->A8(480,NO)->A0(500,SI)->C2(765,NO)->C5(900,NO)->B5(970,NO) )->B6(120,NO)->A3(1000,SI)

 

 

 

Esercizio 2: Si consideri un sistema che utilizza tabelle delle pagine a due livelli con dimensione delle pagine di 4 KB e indirizzi a 32 bit suddivisi in tre
campi da rispettivamente 10, 10 e 12 bit (il campo di 12 bit è ovviamente l’offset). Calcolare la dimensione della tabella delle pagine di un processo
che ha allocato le seguenti aree di memoria logica:

    1. area 1: locazioni da 0 a 1000000
    2. area 2: locazioni da 4200000 a 5200000

 

Soluzione

 

Il numero di pagine fisiche indirizzabili è 2^20, quindi un descrittore di pagina deve contenere almeno 20 bit per l’indirizzo della pagina fisica
(anche se la dimensione effettiva della mem. fisica è inferiore), più alcuni bit accessori. Dato che non sono forniti ulteriori dettagli, e che comunque è bene avere
descrittori che occupino un numero intero di byte,  supponiamo per semplicità che un descrittore di pagina occupi 4 byte.

 

Una tabella delle pagine di primo livello può indirizzare fino a 2^10=1024 tabelle di secondo livello. Dato che gli indirizzi sono di 32 bit = 4 byte,
una tabella di secondo livello occupa 4KB.

 

Una tabella delle pagine di secondo livello può indirizzare fino a 2^10=1024 pagine di 4KB ciascuna, per un totale di 4MB. Dato un descrittore occupa 4 byte,
una tabella di secondo livello occupa 4KB.

 

L’area 1 necessita della prima tabella delle pagine di secondo livello dato che occupa uno spazio inferiore a 4MB allocato a partire dall’indirizzo 0.

 

L’area 2 necessita della sola seconda tabella di secondo livello dato che occupa uno spazio inferiore a 4MB allocato a partire dall’indirizzo 4200000.
Si osservi che la seconda tabella di secondo livello indirizza memoria compresa tra 4MB e 8MB.

 

quindi in totale servono 3 tabelle: una di primo livello e due di secondo livello per un totale di 12 KB

 

 

Esercizio 4. Si consideri un gestore della memoria basato su swapping che utilizza una bitmap per rappresentare lo stato di allocazione della memoria.

Supponiamo che la bitmap contenga le seguenti informazioni.

 

0111110001100

 

Supponiamo ora che al gestore della memoria arrivino le seguenti richieste in sequenza:

1- deallocazione del processo allocato che occupa le locazioni 1-3

2- allocazione di un nuovo processo di dim. 1

3- allocazione di un nuovo processo di dim. 4

4- allocazione di un nuovo processo di dim. 4

 

Supponendo che il gestore della memoria utilizzi politiche di allocazione best fit, dire come si comporta il gestore della memoria e
come varia il contenuto della bitmap.

 

Soluzione

 

1) 0000110001100

2) 0000110001110

3) 1111110001110

4) lo spazio libero è frammentato e non c’è posto per un altro processo di dim. 4. Ci sono due soluzioni: o si compatta la memoria o
si scaricano uno o più processi su disco.

 

 

Esercizio 5. Si consideri un processo attualmente in esecuzione, il cui contenuto della memoria associativa nella MMU e la tabella delle
pagine siano rispettivamente:

 

MEM. Associativa:

valido     pag. logica            modificata             protezione             riferita    pag. fisica

1              7                             SI                            RW                        SI            7

1              5                             NO                         R                             SI            8

0              4                             NO                         RW                        SI            5

 

Tab. delle pagine:

pag. logica            pag. fisica             modificata             protezione             riferita    presente/assente

……………………………  

4                             5                             NO                         RW                        NO          SI

5                             8                             NO                         R                             SI            SI

6                             6                             SI                            RW                        NO          SI

7                             7                             SI                            RW                        NO          SI

8                             -                              NO                         RW                        NO          NO

…………………………..

 

analizzando ognuno dei seguenti casi in modo INDIPENDENTE DAGLI ALTRI, dire quali eccezioni vengono sollevate,  come si comporta il sistema
e come variano le due tabelle:

1-       il processo effettua uno accesso in scrittura alla pagina logica 5

2-       il processo effettua uno accesso in scrittura alla pagina logica 4

3-       il processo effettua uno accesso in lettura alla pagina logica 8

 

Soluzione

 

1) il descrittore della pagina 5 è caricato nella mem. associativa, quindi si traduce l’indirizzo. Siccome l’accesso è in scrittura ma l’accesso alla pagina
è consentito in sola lettura viene generata un’eccezione che provocherà il fallimento del processo.

 

2) il descrittore della pagina 4 non è caricato nella mem. associativa, quindi viene generata un’eccezione di indirizzo, si accede alla tabella delle pagine,
si scopre che la pagina 4 è caricata in memoria, quindi si carica il descrittore della pag. 4 in mem. associativa e si marca la pag. 4
come modificata e riferita nella mem. associativa che quindi diventa:

 

valido     pag. logica            modificata             protezione             riferita    pag. fisica

1              7                             SI                            RW                        SI            7

1              5                             NO                         R                             SI            8

1              4                             SI                            RW                        SI            5

 

La tabella delle pagine resta invariata.

 

3) il descrittore della pagina 8 non è caricato nella mem. associativa, quindi viene generata un’eccezione di indirizzo, si accede alla tabella delle pagine,
si scopre che la pagina 8 NON è caricata in memoria, quindi si genera un page fault.

Al termine del page fault verrà aggiornato il descrittore della pagina 8 nella tabella delle pagine e verrà caricato il descrittore nella memoria associativa.

 

 

Esercizio 6. Dato un file system FAT con blocchi di 4KB (4096 byte) e il seguente frammento di FAT, dire in quali blocchi fisici sono collocati i seguenti byte:

1.        byte 6758 del file che inizia al blocco 33

2.        byte 8192 del file che inizia al blocco 34

3.        byte 4094 del file che inizia al blocco 34

 

frammento di FAT :

blocco fisico         contenuto della FAT

…..

30                            31

31                            37

32                            36

33                            32

34                            35

35                            30

36                            40

37                            41

…..

 

Soluzione

 

1) il byte 6758 sta nel blocco logico 1, quindi il blocco fisico è 32

2) il byte 8192 sta nel blocco logico 2, quindi il blocco fisico è 30

3) il byte 4094 sta nel blocco logico 0, quindi il blocco fisico è 34

 

 

Esercizio 8. Fornire il contenuto dell'i-node  e del blocco relativo alla directory `tool' di un file system Unix V7 nel seguente caso :

(si assume che file e directory nella gerarchia indicata occupino un solo blocco,accanto ad ogni file o directory è indicato il numero di i-node (I=…)
e il numero del blocco (b=…))

Soluzione

Contenuto dell’i-node numero 7

 

          (attributi vari)

100   (indirizzo primo blocco dati)

 

Contenuto del blocco 100

 

               Numero di i-node     Nome file/directory

                               7                             . (punto)

                               1                             . . (punto punto)

                               83                           src

                               4                             c

                               156                         d

                               99                           a

 

 

Esercizio 9. Elencare i controlli principali effettuati dal comando unix fsck

 

Soluzione

 

1) Verifica la consistenza dei blocchi

–scandisce gli i-node e blocchi liberi:

–costrisce tabella blocchi liberi e tabella blocchi in uso

• un blocco che non è nè libero nè allocato lo aggiunge alla lista libera

• un blocco che compare due volte nella lista libera (ammesso che si usi lista libera e non bitmap) lo aggiunge alla lista libera

•un blocco allocato da due file distinti lo duplica per avere una copia diversa  in ciascun file

2) Verifica la consistenza delle directory

–scandisce le directory e conta l’occorrenza di ogni file o directory

–controlla la consistenza fra le occorrenze ed il conto degli hard link nell’i-node

 

 

Esercizio 10. Dato un file system NTFS con blocchi di dimensione 4KB, e il seguente MTF record del file Pippo, individuare
i blocchi fisici nei quali sono contenuti i seguenti byte del file A:

1.        5672

2.        47657

3.        61000

 

Soluzione

 

1-       il blocco logico è 1, quindi si tratta del secondo blocco del primo run, per cui l’indirizzo del blocco fisico è 38

2-       il blocco logico è 11, quindi si tratta del quarto blocco del terzo run, per cui l’indirizzo del blocco fisico è 90

3-       il blocco logico è il 14, quindi si tratta del primo blocco del quarto run, per cui l’indirizzo del blocco fisico è 51