Sei sulla pagina 1di 6
ESERCIZIO 1 Si scriva in linguaggio C e in assembler del processore MIPS la funzione di conversione oi un numero in sinnga di caratter void itoa (Int n, char str[]); ESERCIZIO2 Un processore a 32 bit é dotato di una cache sat associaliva a due vie che utilizza | 32 bit d seguente. 31-14 tag, 13-5 indice, 4-0 offset. Calcolare: 4) La dimensione della linea di cache in numero di parole 2) La dimensione della cache complessiva in bit i Indirizzo nel modo In presenza cella seguente sequenza di accessi in memoria (indirizzi rferiti al byte ed espressi in decimale): 47920 17948 140024 83486 17952 148998 149012 17964 148648 17848 Considerando la cache inizialmente vuota indicare per ciascun accesso se si tratta di hit, miss 0 replace e caicolare la frequenza di hit. ESERCIZIO 3 ‘Sia dato il seguente ciclo di un programma in linguaggio machina MIPS. Si supponga che: ‘« iregistri $t1, e $12 siano stati inizializzati rispettivamente ai valor O € 100 ‘© 1024e 2048 siano valori interi rappresentati a 16 bit ‘* Icio di clock del processore vele Sins. Si consideri una genefica iterazione del ciclo eseguita dal processore MIPS in modalita pipeline @ 5 stadi senza ottimizzazioni. Individuare i confitti sui dati ei confitti sul controllo presenti nel programma e indicarli nelf'ultima colonna. inserire nella prima colonna i numero di stelli da inserire in modo da risolvere | conflitti presenti nel programma. Nem. stalit ISTRUZIONE c1\ 2] c3| C405 [es [cr cB fe foro ike aerator 15} Tipo conflito Le wSB10248t)__[F[ DL EX|ME}na| add $13,S13.S13 1F| 1D |EXMeE|we| mul $13,$13,5t3 IF | 1D |EX [ME WB} “| bw $t42048(6H1) 1) ex MEWe) | acl SUSE iF JO [ex |MeMe 20d S4,S14.St4 iF [0 lex |me\we add $4,514 54 | ex faa ‘su $3,1024(St1) IF lo Ex Mele | ‘Sw St4,2048(St1) IF 1D [ex Mee} p bresisatt 4 iF | [ex ME}wel { : lF fo [ex|Me| ‘Scrivere il numero totale di stalli inserti nel programma: Calcdlare ii CPI (numero di cicli di clock per istruzioné) asintotico ottenuto: ESERCIZIO 4 Si vuole migliorare la prestazione di un calcolatore riducendo a un quinto il tempo di esecuzione di tutte le operazioni in virgola mobile. (@) Sel tempo ai esecuzione di un programma prima ¢ellintervento di miglioramento era di 180 sec. ¢ se meta di esso era speso eseguendo operazioni in virgola mobile, quale accelerazione si otterra? (b) Quale percentuale del tempo di esecuzione prima del miglioramento deve essere assordita da operazioni in virgola mobile per ottenere una accelerazione di valore 2,5? (©) Tracciare il diagramma del fattore di accelerazione del tempo di esecuzione del programma in funzione della frazione di tale tempo di esecuzione assorbita da operazioni in virgola mobile prima del miglioramento. ESERCIZIO 5 ‘2 Nell'ambito degli algoritmi per la sostituzione della pagina per Iimplementazione della memoria virtuale, si consideri la seguente stringa di riferimento ci numeri di pagina: 2,0, 3, 0,4, 2,3, 0,3, 2, 1,2 Rispondere ai seguenti quesit ‘a. Calcolare ll numero ai page fault che vengono generati con gli algoritmi LRU, FIFO, e Ottimo, considerando una memoria fisica composta dat 1. due frame 2. tre frame 3. quattro frame Si assuma che j frame siano inizialmente vuoti (conteggiare, quindi, anche i page fault per il caricamento iniziale celle pagine). b. In cosa consiste I'algoritmo FIFO second chance (seconda opportunita)? ESERCIZIO 6 Un disco ha un tempo di seek di 0,5 ms per ogni cilindro attraversato, un tempo di rotazione di 6ms e un tempo di trasferimento dei dati di un settore di 12 microsecondi. Inoltre si fanno le sequenti ipotesi : = latestina é attualmente posionata sul cilindro 13 = ‘attesa media prima che il settore desiderato passi sotto a testina dopo il seek & di mezza rotazione Sugponendo che al tempo attuale arrivino contemporaneamente le sequent richieste dilettura di settori: * Ssettcri nel cilindro 14 * 3settori nei cilindro 11 + settori nel cilindro 19 * 4 settore nel cilindro 2 * 6settori nel cilindro 31 Calcolare il tempo di completamento delle richieste nel caso in cui venga utilizzato talgortmo SSF e Yalgoritmo dell'ascensore (con direzione iniziale verso l'alto) ESERCIZIO 7 Si consider l'algoritmo di schedulazione Round Robin (RR) della CPU ed il seguente insieme di processi, con la durata del ‘picco’ della CPU espressa in millisecond Tempo di | Durata del |_Processi | “arrivo _| picco inms PA 0 24, mi 0 3 P3 me 3 P4 18 45 PS 0 4 Si assuma che i processi arrivino nell'ordine P1, P2, alfistante 15, e per P4, che arriva all'istante 18, Si assuma inoltie che i processi vengano eseguiti con una schedulazione RR con quanto di tempo q = 1, Disegnare il diagramma che illustri la sequenza di esecuzione dl questi processi. 2, Calcolare il tempo ci attesa medio. 5, tutti all'istante 0 fatta eccezione per P3, che arriva 0. 3. Calcolare il tempo di completamento (turnaround time) di ogni processo. ESERCIZIO8 Si consideri la seguente soluzione SBAGLIATA al problema dei filosofi a cena riportata dal testo: #define N5 \oid pilosopher (inti) { while (TRUE) { think0; takeForks(ii; takeForks((it1)%N); eai(); pulForks(); puiForks((i+1)%N); } } 4. Spiegare perché la solwzione proposta é sbagliata, e mostrare un esempio di esecuzione in cui la soluzione non funziona. 2. Scrivere una soluzione corretta del codice CG Ye CO ESERCIZIO1 Si scriva in linguaggio assembier del processore MIPS la seguente funzione in grado di fare la ricerca binarie ailinfemo di un vettore di numen interi V di unghezza N di una valore D e restituire la posizione in caso di Sucoesso oppure ~1 in caso di valore non trovato int RicercaBinaria (int Vf), int D, int sin, intdes) { if (sin == des) { if (0==V{sin}) then Tetum sin; else retum -1; } centro = (sin+des)/2; if (D <= V[centro}) then return RicercaBinaria(V, D, sin, centro); else return RicercaBinaria(V, D, centro+1, des); } ESERCIZIO 2 Un processore a 16 bit & dotato di una cache set associativa a due vie che utilizza i 16 bit di indirizzo nel modo ‘seguente: 15-8 tag, 7-4 indice, 3-0 offset Calcolare: 1) La dimensione della linea di cache in numero di parole 2) Ladimensione della cache complessiva in bit In presenza della seguente sequenza di accessi in memoria (indirizzi riferiti al byte ed espressi in decimale): Oo 132 12 18 142,900 780 138 15-910 Considerando la cache inizialmente vuota indicare per ciascun accesso se si tratta di hit, miss o replace e calcolare la frequenza di hit. ESERCIZIO 3 Sia dato il seguente ciclo di un programma in linguaggio machina MIPS. Si supponga che i registri $6, e $7 siano stati inizializzati rispettivamente ai valori 0 e 4N. I simboli BASEA, BASEB e BASEC sono costanti a 16 bit, prefissate. II ciclo di clock del processore vale 1 ns. ‘Si consideri una generica iterazione del ciclo eseguita dal processore MIPS in modaliti pipeline a 5 stadi senza ottimizzazioni, Individuare i conflitti sui dati ¢ i conflitti sul controllo presenti nel programma e indicarli nell’ultima colonna. Inserire nella prima colonna il numero di stalli da inserire in modo da risolvere i conflitti presenti nel programms. Num. stalli ISTRUZIONE C1} C2| C3) C4 ke kr fs he brden s2brae sa Tipo confittto [Etiw $t2,BASEA(St6) [iF [1b |ex/me| “WStS, BASEB(St6) IF | 1 |EX|ME 8) add st2,S02,$12 IF IO EX Mele] || dd St3,S13,st3 ae [EX [Me ve} add St4,si2,$t3 F [Dex MEWS) Ww St2, BASEA (S16) ie Jp [Exivews) Bw SB,BASEBGSI6) | I IF fio [ex Mena] L sw St4, BASEC(Si6) I 1F | |x ME Wel { addi S16.St6,4 hr fo [ex Me|we| bne $t6,St7, L7 IF }D Ex |MEwa| je: FID jex |Me}we| Scrivere il numero totale di stalli inseriti nel programma: Calcolare i! CPi asintotico nel caso di ottimizzazioni: ESERCIZIO 4 Due diversi calcolatori, C1 e C2, devono smaltire un carico di lavoro costituito da quattro programmi: P1, P2, P3 e P4. Sui due calcolatori sono state eseguite le misure riportate nella sottostante tabella. Programma | Tessu C1 Tes Su 02 PA 18s 15s [P2 3s | 20s P3 21s 198 L P4. 6s Ss Per il carico in esame si chiede: {@) quale dei due calcolatori é piti veloce in base al tempo totale di esecuzione e di quanto? (b) quale dei due calcolatori é piu veloce in base al valor medio dei tempi di esecuzione? (c) quale dei due calcolatori é piti veloce in base alla media geometrica dei tempi di esecuzione? Motivare le risposte. ESERCIZIO 5 Si consideri la seguente soluzione SBAGLIATA al problema dei filosofi a cena riportata dal testo: #define NS veid pilosopher (int i) { while (TRUE) { thinkQ; takeForks(i); takeForks((i+4)%N); } + Spiegare perché la soluzione proposta é sbagliata, e mostrare un esempio di esecuzione in cul la soluzione non funziona, ESERCIZIO 6 |n un sistema di gestione della memoria con swapping a partizioni dinamiche, che utiliza un registro base B ed un registro limite L per assicurare la protezione degli spazi di indirizzamento, abbiamo 32MB ci RAM, di cui ali 8MB diindirizzi bassi occupati dal Sistema Operativo. Consideriamo i seguenti programmi : A, di 4MB, B i 16MB, C di 12MB eD di6MB. Supponiamo inoltre che i pregrammi passino in esecuzione nel ordine seguente: 1) A, 2) B, 3) C, 4) D, 5) A Ogni volta che un nuevo processo passa in esecuzione indicare : * lamappa della memoria centrale * che cosa contengono i registri base e limite. ESERCIZIO 7 Un disco ha un tempo di seek di 0,5ms per ogni cilindro attraversato, un tempo di rotazione di 6rms e un tempo di trasferimento dei dati di un settore ai 12 microsecondi. Inoltre si fanno le seguenti ipotesi ; - Ja testina é attualmente posizionata sul cilindro 13, - _ fattesa media prima che il settore desiderato passi sotto la testina dopo il seek é di mezza rotazione Supponendo che al tempo attuale arrivino contemporaneamente le seguenti richieste di lettura di settori a- § settori nel cilindro 14 b- 3 settori nel cilindro 11 c- 4 settori nel cilindra 19 d- 4 settore nel cifindro 2 e- 6 settori nel cilindro 31 Calcolare il tempo di completamento defle richieste nel caso in cui venga utilizzato 'algoritmo SSF e lalgoritmo deltascensore (con direzione iniziale verso l'alto) ESERCIZIO 8 Supponiamo di ricevere 4 job (A,B,C,D) tali che’ job Tempo stimato (in ms) A 25 B 50 c 10 D 30 Calcolare il throughput e il tempo di tumaround medio con scheduling SJF e round robin. ‘Si assuma un tempo di commutazione di contesto pari a 1 ms, e, nel caso del round robin, un quanto di tempo di 10 ms, e che i processi vengano schedulati nell’ordine: A,B,C,D.

Potrebbero piacerti anche