Stavo facendo come esercizio esami vecchi, ma sono bloccato sui primi 2 esercizi di questo che vi posto.
- Codice: Seleziona tutto
1. Studenti e docenti condividono uno stesso archivio contenente i temi d’esame di vari insegnamenti. Gli studenti possono accedere contemporaneamente all’archivio per leggere le prove d’esame date in passato ed esercitarsi. I docenti, che accedono all’archivio per preparare i nuovi temi d’esame per i futuri appelli, possono accedervi solo in modo mutualmente esclusivo, sia rispetto agli studenti, che rispetto ad altri docenti, per evitare che occhi indiscreti possano copiare il testo dell’esame e divulgarlo agli studenti prima dell’appello. Fornire una soluzione che usi i semafori per sincronizzare studenti e docenti durante l’accesso all’archivio. [8 punti]
2. Si descriva in dettaglio il concetto di paginazione. Si consideri quindi una memoria paginata a 2 livelli, di dimensione pari a 256MB, indirizzata al byte e composta da 1024 pagine, e si risponda alle seguenti domande:
(a) Quali sono le dimensioni della memoria logica, dell’indirizzo logico e di una pagina?
(b) Quali sono le dimensioni della memoria fisica, dell’indirizzo fisico e di un frame?
(c) Considerando un tempo di accesso alla memoria pari a 100ns (tempo specifico della memoria senza considerare l’overhead dovuto alla paginazione), un tempo di accesso al TLB pari a 10ns con parametro α pari a 95%, quale deve essere il tempo di page fault affinch`e il decremento di prestazioni dovuto alla gestione dei page fault sia inferiore al 10% con uno hit rate pari al 98% ?
[5+1+1+2 punti]
Per il primo ho trovato una soluzione del genere:
- Codice: Seleziona tutto
SemBin mutex = 1, mutex1 = 1, mutex2 = 1, mutex3 = 1, occupatoDaStudenti = 1;
integer N-attesa = 0; bool prof = false; integer N_studenti = 0;
SemInt occupatoDalProfessore = 0;
Studente{
while(1){
dormo();
P(mutex1); //sezione di ingresso
N-attesa++;
V(mutex1);
P(mutex2);
if(prof) P(occupatoDalProfessore);
V(mutex2);
P(mutex1);
N-attesa--;
V(mutex1);
P(mutex3);
N_studenti++;
V(mutex3);
leggo_esami(); //sezione critica
P(mutex3); //sezione uscita
N_studenti--;
if(N_studenti==0) V(occupatoDaStudenti);
V(mutex3);
}
}
Professore{
while(1){
dormo();
P(mutex3); //sezione di ingresso
if(N_studenti>0) P(occupatoDaStudenti);
V(mutex3);
P(mutex);
P(mutex2);
prof = true;
V(mutex2);
preparo_esame(); //sezione critica
P(mutex2); //sezione di uscita
prof = true;
V(mutex2);
foreach(i in N-attesa) V(occupatoDalProfessore);
V(mutex);
}
}
Per il secondo invece non riesco ad andare avanti, per me mancano dei dati....
- 256MB sono di memoria fisica o virtuale?
- Io avrei risposto in questo modo:
a) 256MB, 28bit, 256kB
b) 4GB, 32bit, 256kB
c) boooooh, alfa e hit ratio non intendono la stessa cosa?
Grazie a tutti in anticipo per la pazienza....

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
