Compito di Sistemi Operativi, Prof. Mancini - 12 gennaio 1999
1. (punti: -1,4)
Esistono sistemi operativi dove,
Nel sistema Unix la chiamata di sistema denominata fork eseguita dal processo Pi:
Le seguenti quattro condizioni (1) le risorse sono seriali, (2) le risorse sono non prerilasciabili, (3) le risorse sono gestite con richiesta bloccante, e (4) il sistema raggiunge uno stato di attesa circolare, solo collettivamente:
Nei sistemi operativi l'identificazione degli utenti avviene tramite una parola d'ordine password. Ipotizzando parole d'ordine di 8 caratteri, scelti in un alfabeto di 80 simboli (lettere maiuscole, minuscole, cifre decimali e caratteri speciali):
Illustrare in al più 60 parole il fenomeno conosciuto sotto il nome di thrashing
6. Considerare un insieme di cinque processi
P1, P2, P3, P4, P5 con i seguenti tempi di arrivo e tempi di esecuzione
in millisecondi:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Assegnare questo insieme di processi ad un processore in base alla politica Shortest Job First.
b (punti: 2)
Calcolare il valor medio del tempo di attesa dei processi.
c (punti: 2)
Calcolare il valor medio del tempo di turnaround dei processi.
S = 9 3 1 0 1 3 5 9 15 1 3 6 4 6 5 1 7 4 6 3
Illustrare il comportamento dell'algoritmo Second Chance di sostituzione delle pagine per una memoria fisica di 5 blocchi. Calcolare il numero di page fault che si verificano.
b (punti: 3)
Illustrare il comportamento dell'algoritmo LRU di sostituzione delle pagine per una memoria fisica di 5 blocchi. Calcolare il numero di page fault che si verificano.
Utilizzare le primitive P e V definite sui semafori per realizzare un semplice programma concorrente che possa causare l'attesa indefinita ma non lo stallo dei processi componenti.
9. (punti: 8)
Realizzare un Perl script efficiente che legga il contenuto degli archivi
passati come parametro e stampi ciascuna linea nello standard output a
meno che la linea non sia già stata stampata prima. Si assuma che
i dati da leggere non possano essere contenuti completamente in memoria
centrale.
Risultati della prova
1.a,c 2.e,g 3.a,b 4.b
5. In caso di gestione di memoria virtuale, il thrashing consiste nella frequente alternanza di caricamenti e scaricamenti di un ristretto numero di pagine di memoria durante l'esecuzione di un processo. Questo fenomeno contribuisce a ridurre la velocita' di avanzamento dei processi.
6.
a) Algoritmo Shortest Job
First:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b) media tempo di attesa dei
processi: 64/5
c) turnaround medio: 115/5
7.
a.
Algoritmo Second Chance:
|
TurnoMS e' inizializzato
a 4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
Numero page fault: 4+7
b. Algoritmo
LRU
(pag. 469 del Maestrini):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
Numero page fault: 4+7
8. Nel
problema dei processi lettori e scrittori in un database puo' avvenire
il fenomeno di
attesa indefinita:
Se mentre e' presente un processo
lettore nella sezione critica, continuano ad arrivare altri lettori, tutti
i processi scrittori dovranno aspettare (attesa indefinita) l'uscita dell'ultimo
lettore(*) dalla sua sezione critica, rilasciando cosi' la mutua
esclusione sul semaforo db.
semaphore mutex=1, db=1;
int rc=0;
void Lettore()
{
P(mutex);
rc++;
if (rc==1) P(db);
V(mutex);
LetturaDB();
P(mutex);
rc--;
if (rc==0) V(db);
(*)
V(mutex);
}
void Scrittore()
{
P(db);
ScritturaDB();
V(db);
}
9.
perl -ne 'print unless $seen{$_}++'
archivi
12 gennaio 1999 -
Si ringraziano i volenterosi studenti Alessandro Cagnetti e Daniele Giabbai
![]() |
![]() |
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica ![]() |
|
![]() |
![]() |