AXO Architettura dei Calcolatori e Sistemi Operativi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "AXO Architettura dei Calcolatori e Sistemi Operativi"

Transcript

1 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura dei Calcolatori e Sistemi Operativi esame di martedì 3 luglio 2012 CON SOLUZIONI Cognome Nome Matricola Firma Istruzioni Scrivere solo sui fogli distribuiti. Non separare questi fogli. È vietato portare all esame libri, eserciziari, appunti, calcolatrici e telefoni cellulari. Chiunque fosse trovato in possesso di documentazione relativa al corso anche se non strettamente attinente alle domande proposte vedrà annullata la propria prova. Non è possibile lasciare l aula conservando il tema della prova in corso. Tempo a disposizione: 1h:30m (una parte) 3h:00m (completo). punteggio approssimativo I parte II parte completo esercizio 1 5 esercizio 2 6 esercizio 3 5 esercizio 4 6 esercizio 5 5 esercizio 6 5 voto finale ATTENZIONE: alcuni esercizi sono suddivisi in parti.

2 esercizio n. 1 thread e parallelismo Si consideri il programma C seguente (gli #include sono omessi): / variabili globali / pthread_mutex_t key = PTHREAD_MUTEX_INITIALIZER; sem_t test; int glob; void start (void arg) { / funzione di thread / int loc = (int) arg; / variabile locale / pthread_mutex_lock (&key); / statement A / loc = 0; glob = 1; sem_post (&test); / statement B / glob = 0; pthread_mutex_unlock (&key); return NULL; } / start / void check (void arg) { / funzione di thread / sem_wait (&test); if (glob == 0) { pthread_mutex_lock (&key); sem_wait (&test); / statement C / glob = 2; pthread_mutex_unlock (&key); } else { } / if / return NULL; } / check / sem_wait (&test); / statement D / void main ( ) { / thread principale / pthread_t T1, T2; sem_init (&test, 0, 1); glob = 0; pthread_create (&T1, NULL, start, (void ) 1); pthread_create (&T2, NULL, check, NULL); pthread_join (T2); / statement E / pthread_join (T1); } / main / AXO esame di martedì 3 luglio CON SOLUZIONI pagina 2 di 25

3 Si completi la tabella qui sotto indicando lo stato di esistenza della variabile locale e del parametro nell istante di tempo specificato da ciascuna condizione, così: se la variabile o il parametro esiste, si scriva ESISTE; se non esiste, si scriva NON ESISTE; e se può essere esistente o inesistente, si scriva PUÒ ESISTERE. Ogni casella della tabella va riempita in uno dei tre modi (non va lasciata vuota). Si badi bene alla colonna condizione: con subito dopo statement X si chiede lo stato che la variabile o il parametro assume tra lo statement X e lo statement immediatamente successivo del thread indicato. condizione variabile locale o parametro loc in T1 arg in T2 subito dopo stat. A ESISTE PUÒ ESISTERE subito dopo stat. C PUÒ ESISTERE ESISTE subito dopo stat. E PUÒ ESISTERE NON ESISTE Si completi la tabella qui sotto, indicando i valori delle variabili globali (sempre esistenti) nell istante di tempo specificato da ciascuna condizione. Il valore della variabile va indicato così: intero, carattere, stringa, quando la variabile ha un valore definito; oppure X quando è indefinita se la variabile può avere due o più valori, li si riporti tutti quanti il semaforo può avere valore positivo o nullo (non valore negativo) Si badi bene alla colonna condizione: con subito dopo statement X si chiede il valore (o i valori) che la variabile ha tra lo statement X e lo statement immediatamente successivo del thread indicato. condizione test variabili globali glob subito dopo stat. A 0 / 1 0 subito dopo stat. B 0 / 1 / 2 1 subito dopo stat. C 0 0 subito dopo stat. D 0 0 / 1 subito dopo stat. E 0 0 / 1 / 2 Il sistema può andare in stallo (deadlock). Qui si indichino gli statement dove si bloccano i due thread, e il/i valore/i di glob e loc: T1 T2 glob loc pthread_mutex_lock statement A sem_wait statement C 0 1 AXO esame di martedì 3 luglio CON SOLUZIONI pagina 3 di 25

4 esercizio n. 2 processi e sistema operativo Si considerino i seguenti frammenti di programmi: / programma main.c / main ( ) { int pid1, pid2; char msg1 [20] =... ; pid1 = fork ( ); if (pid1 == 0) { / codice eseguito da Q figlio di P / execl ( /home/info2/muta, muta, NULL); write (stdout, msg1, 20); exit (0); } else { / codice eseguito da P / pid1 = wait (&status); pid2 = fork ( ); if (pid2 == 0) { / codice eseguito da R figlio di P / sleep (2); exit (2); } else { / codice eseguito da P / exit (0); } / if / } / if / } / main.c / / programma muta.c / main ( ) { int pid; char msg2 [50] =... ; pid = fork ( ); if (pid == 0) { / codice eseguito da S figlio di Q / write (stdout, msg2, 50); exit (2); } else { / codice eseguito da Q /... exit (1); } / if / } / muta.c / Il processo P esegue il programma main, creando un processo figlio Q che effettua una mutazione di codice assumendo il programma muta, e successivamente P crea un altro figlio R. Se la mutazione di codice va a buon fine, il processo Q crea un processo figlio S. Non ci sono altri processi utente nel sistema. AXO esame di martedì 3 luglio CON SOLUZIONI pagina 4 di 25

5 Ulteriori specifiche del sistema: 1. i processi utente hanno associata una priorità, il processo idle ha priorità minima e non esistono altri processi nel sistema 2. le priorità relative a tutti i processi attivi nel sistema sono indicate quando necessario nella tabella di commutazione dei processi da completare 3. il buffer del driver di standard output ha dimensione di 50 caratteri 4. per tutte le operazioni su file che implicano trasferimento di blocchi: a. la dimensione di un blocco di dati trasferito da o verso file tramite DMA, è di 512 byte b. l interruzione di fine DMA è associata al trasferimento di un singolo blocco del file (eventi DMA_in e DMA_out per lettura e scrittura di un blocco rispettivamente) 5. le operazioni di lettura e scrittura su file accedono sempre a disco, cioè è sempre necessario eseguire trasferimenti in DMA 6. per l apertura del file: a. è sempre necessario trasferire in DMA: - un blocco per l accesso allo I-node di ogni cartella o file presente nel nome-percorso (pathname), tranne che per la cartella radice, e - un blocco per il contenuto di ogni cartella presente nel nome-percorso (pathname) b. una volta terminata l operazione di apertura, l area di memoria centrale viene resa disponibile e pertanto una successiva apertura del file richiede trasferimento tramite DMA 7. l operazione close di chiusura di un file implica solo l aggiornamento delle tabelle gestite dal S.O. che sono presenti in memoria centrale 8. le chiamate di sistema wait e waitpid invocano la funzione Sleep_on su un evento opportuno 9. per completare la tabella delle commutazioni, si faccia riferimento alla notazione vista a lezione DOMANDA Si completino le parti mancanti della tabella di commutazione dei processi riportata alle due pagine seguenti. AVVERTENZE Nella tabella di commutazione proposta sono previste righe da completare in cui: a) è specificato l evento (con informazioni aggiuntive); in questo caso sono da completare le parti relative allo stato dei processi e se richiesto ai moduli del S.O. e al contesto b) è specificato lo stato dei processi raggiunto dopo il verificarsi dell evento; in questo caso sono da completare i campi relativi all evento (con eventuali informazioni aggiuntive) e se richiesto ai moduli del S.O. e al contesto NOTA BENE: l evento in questione è sempre determinabile univocamente dallo stato raggiunto, dall evoluzione precedente dei processi, dal codice dei programmi e dalle ulteriori specifiche di sistema se l evento è un interrupt è obbligatorio usare la notazione n interrupt indicando esattamente il numero di interruzioni che si sono verificate AXO esame di martedì 3 luglio CON SOLUZIONI pagina 5 di 25

6 evento (preceduto dal processo nel cui contesto l evento si verifica) informazioni aggiuntive processo/i nel moduli eseguiti cui contesto per gestire l evento è eseguito ogni modulo stato dei processi dopo la gestione dell evento P Q R S P: pd1 = fork P ha esaurito il suo quanto di tempo la fork è stata eseguita P < Q G_SVC_1 fork Preempt_1 Change G_SVC_2/3 P P P P Q Q pronto esec U non esiste non esiste Q: pid = fork Q ha esaurito il suo quanto di tempo la fork è stata eseguita P = Q < S G_SVC_1 fork Preempt_1 Change G_SVC_2/3 Q Q Q Q S S pronto pronto non esiste esec U S: write write ha trasferiti 40 caratteri nel buffer del driver S < P < Q G_SVC_1 write Sleep_on (E1) Change G_SVC_2/3 S S S S Q Q pronto esec U non esiste attesa (E1) Q: 30 interrupt da standard output R_int (Sout) Q pronto esec U non esiste attesa (E1) Q: interrupt da orologio Q ha esaurito il suo quanto di tempo R_Int (CK)_1 Preempt_1 Change G_SVC_2/3 Q Q Q P P esec U pronto non esiste attesa (E1) l ultimo è relativo all ultimo carattere presente nel buffer del driver P: 10 interrupt da standard output (n.b. in questo evento viene anche gestito il trasferimento degli ultimi 10 caratteri nel buffer del driver) pronto esec U non esiste attesa (E1) P ha esaurito il suo quanto di tempo AXO esame di martedì 3 luglio CON SOLUZIONI pagina 6 di 25

7 evento (preceduto dal processo nel cui contesto l evento si verifica) informazioni aggiuntive processo/i nel moduli eseguiti cui contesto per gestire l evento è eseguito ogni modulo stato dei processi dopo la gestione dell evento P Q R S Q: exit (1) esec U non esiste non esiste attesa (E1) P: wait esec U non esiste non esiste attesa (E1) P: pid2 = fork esec U non esiste pronto attesa (E1) P: 5 interrupt da standard output P ha esaurito il suo quanto di tempo pronto non esiste esec U attesa (E1) R: sleep esec U non esiste attesa (E2) attesa (E1) P: exit (0) non esiste non esiste attesa (E2) attesa (E1) AXO esame di martedì 3 luglio CON SOLUZIONI pagina 7 di 25

8 esercizio n. 3 memoria virtuale Un sistema dotato di memoria virtuale con paginazione e segmentazione di tipo UNIX, è caratterizzato dai parametri seguenti: l indirizzo logico è di 16 bit; l indirizzo fisico è di 16 bit; e la dimensione delle pagine è di 4 K byte. (a) Nel sistema vengono attivati i processi P, Q e S. Essi eseguono i programmi X e Y. La dimensione iniziale dei segmenti dei due programmi è la seguente: CX: 12 K DX: 8 K PX: 4 K CY: 16 K DY: 12 K PY: 4 K Inserire in tabella la struttura in pagine della memoria virtuale dei due programmi X e Y (notazione: CX0, CX1, DX0, PX0,, CY0,, PY0). indirizzo di pagina virtuale X Y 0 CX0 CY0 1 CX1 CY1 2 CX2 CY2 3 DX0 CY3 4 DX1 DY0 5 DY1 6 DY A B C D E F PX0 PY0 (b) A un certo istante t 0 sono terminati, nell ordine, gli eventi seguenti: P viene creato (fork di P ed exec di X) alloca CP1, DP0 e PP0 Q viene creato come figlio di P CQ1 = CP1, DQ0 = DP0 e alloca PQ0 P accede in lettura all indirizzo virtuale assoluto 4200 Hex P alloca DP1 Q salta all istruzione di indirizzo virtuale assoluto 2A00 Hex Q alloca CQ2 Q esegue la exit dealloca CQ1, DQ0, PQ0 e CQ2 P esegue una fork e crea S condivide CP1 = CS1, DP0 = DS0, DP1 = DS1 e alloca PS0 Considerando le ipotesi seguenti, compilare le tabelle della situazione al tempo t 0 relative alla memoria fisica e al contenuto della MMU: il lancio in esecuzione di un programma avviene caricando solo la pagina di codice con l istruzione di partenza, la prima pagina dati e una pagina di pila, in quest ordine il caricamento di ulteriori pagine in memoria avviene su richiesta (on demand) il numero di pagine residenti R è pari a quattro l indirizzo esadecimale di partenza di X è 1400 Hex l indirizzo esadecimale di partenza di Y è 0A11 Hex si utilizza l algoritmo LRU per la sostituzione di pagine di memoria, considerando che almeno una pagina di pila debba sempre rimanere in memoria l allocazione delle pagine virtuali nelle pagine fisiche avviene sempre in sequenza all inizio della sequenza di eventi la MMU è vuota AXO esame di martedì 3 luglio CON SOLUZIONI pagina 8 di 25

9 indirizzo fisico memoria fisica situazione al tempo t 0 MMU pagine allocate proc. NPV NPF 0 CP1 = (CQ1) = CS1 P CP1 / valid bit 1 DP0 = (DQ0) = DS0 P DP0 / PP0 P PP0 / F (PQ0) PS0 (Q) S (CQ1 / 1) CS1 / DP1 = DS1 (Q) S (DQ0 / 3) DS0 / (CQ2) (Q) S (PQ0 / F) DS1 / P DP1 / (Q) S (CQ2 / 2) PS0 / F A B C D E F (c) A un certo istante t 1 > t 0 è terminata la sequenza di eventi seguente: S esegue sbrk e l indirizzo virtuale assoluto max allocato alla nuova area dati è 5002 Hex S deve allocare DS2, ma poiché R = 4 dealloca DS0 P esegue sbrk e l indirizzo virtuale assoluto max allocato alla nuova area dati è 55A2 Hex P deve allocare DP2, ma poiché R = 4 dealloca DP0 S esegue una exec e lancia il programma Y dealloca CS1, DS1, DS2 e PS0, e alloca CS0, DS0 e PS0 S salta all istruzione di indirizzo virtuale assoluto 30A0 Hex usa CS0e alloca CS3 S esegue un assegnamento di una variabile all indirizzo virtuale 6002 Hex S deve allocare DS2, ma poiché R = 4 dealloca DS0 Completare le tabelle con la situazione al tempo t 1. indirizzo fisico memoria fisica situazione al tempo t 1 MMU pagine allocate proc NPV NPF 0 CP1 (= CS1) P CP1 / valid bit 1 (DP0) (= DS0) DP2 P (DP0 / 3) DP2 / PP0 P PP0 / F (PS0) CS0 S (CS1 / 1) CS0 / DP1 (= DS1) S (DS0 / 3) (DS2 / 5) (DS0 / 4) DS2 / (DS2) (DS0) DS2 S (DS1 / 4) PS0 / F PS0 P DP1 / CS3 S (PS0 / F) CS3 / A AXO esame di martedì 3 luglio CON SOLUZIONI pagina 9 di 25

10 B C D E F AXO esame di martedì 3 luglio CON SOLUZIONI pagina 10 di 25

11 esercizio n. 4 logica digitale prima parte logica sequenziale Sia dato il circuito sequenziale composto da due bistabili master / slave di tipo D (D1, Q1) e (D2, Q2), con Di ingresso del bistabile e Qi stato / uscita del bistabile, e dotato di un ingresso IN e un uscita U. Le e- quazioni che descrivono il funzionamento del circuito sono le seguenti: D1 = IN xor Q1 D2 = ((not IN) and Q2) or ((not Q1) and Q2) U = not Q2 Si chiede di disegnare lo schema del circuito e di completare il diagramma temporale riportato qui sotto. Si noti che: si devono trascurare completamente i ritardi di propagazione delle porte logiche AND, OR e XOR, e i ritardi di commutazione dei bistabili i bistabili sono di tipo master-slave, con uscita che commuta sul fronte di discesa del clock l ingresso IN può variare in qualunque momento diagramma temporale da completare IN 1 D2 1 D1 1 Q2 1 Q1 0 U 0 CLK AXO esame di martedì 3 luglio CON SOLUZIONI pagina 11 di 25

12 soluzione IN 1 D2 1 D1 1 Q2 1 Q1 0 U 0 CLK AXO esame di martedì 3 luglio CON SOLUZIONI pagina 12 di 25

13 seconda parte simulazione cache Si consideri un sistema di memoria (centrale + cache) caratterizzato dalle dimensioni seguenti: memoria di lavoro da 2 K Byte (indirizzata a livello di byte) memoria cache da 512 Byte ogni blocco di cache contiene 128 Byte Considerando la sequenza di richieste alla memoria riportata qui sotto, si chiede di completare la tabella che illustra il comportamento di una cache a indirizzamento diretto (direct mapped) nel rispetto delle indicazioni seguenti: Nella colonna esito, riportare H (hit - successo) se il blocco richiesto si trova in cache, oppure riportare M (miss - fallimento) se il blocco va caricato da memoria. Nelle colonne dati va riportato il numero del blocco di memoria che si trova nel corrispondente blocco di cache. Questi valori sono denotati come numeri decimali (base dieci), mentre le etichette sono in binario. Pertanto l indirizzo individua un byte nel blocco 0000 due = 0 dieci. Nella colonna azione va indicato il blocco cui si accede (in caso di successo H) o il blocco in cui vengono caricati i dati della memoria (in caso di fallimento M). Nella cache ci sono quattro blocchi, indicati nelle colonne della tabella con A, B, C e D, che corrispondono rispettivamente ai blocchi di indice 0, 1, 2 e 3 della cache stessa. Nota: la memoria ha 11 bit di indirizzo; di questi, 7 bit servono per individuare il byte nel blocco; nella cache ci sono quattro blocchi quindi l 8 e il 9 bit (da destra) indicano l indice del blocco in cache e i 2 bit più significativi restanti costituiscono l etichetta. blocco A blocco B blocco C blocco D passo indirizzo richiesto esito valido etichetta dati valido etichetta dati valido etichetta dati valido etichetta dati azione situazione iniziale M carica blocco 13 in B H accedi a blocco C M carica blocco 14 in C M carica blocco 8 in A M carica blocco 7 in D AXO esame di martedì 3 luglio CON SOLUZIONI pagina 13 di 25

14 esercizio n. 5 linguaggio macchina prima parte traduzione da C a codice macchina Si vuole tradurre in linguaggio macchina simbolico (linguaggio assemblatore) il frammento di programma (funzioni call e f_ric) riportato qui sotto. Nel tradurre non si tenti di accorpare od ottimizzare insieme istruzioni C indipendenti. La memoria ha indirizzo da 32 bit ed è indirizzabile per byte. Le variabili intere sono da 32 bit. Si noti che: la funzione call non restituisce nulla (di fatto è una procedura), non ha parametri e ha due variabili locali intere; essa chiama la funzione f_ric (che è una funzione a tutti gli effetti), trattandola come una procedura ossia disinteressandosi del valore in uscita di f_ric la funzione ricorsiva f_ric restituisce un valore intero, ha due parametri e non ha variabili locali Le funzioni salvano sempre i registri utilizzati e le convenzioni per il passaggio dei parametri e del valore di ritorno sono le seguenti: i parametri vengono passati sulla pila e caricati in ordine inverso di elencazione (cioè il primo parametro elencato nella testata della funzione è l ultimo da caricare sulla pila) il valore di uscita, se esiste, viene sovrascritto al primo parametro caricato sulla pila Si chiede di scrivere: in tabella 1.a e in tabella 2.a il codice in linguaggio macchina delle funzioni call e f_ric, rispettivamente, tradotte secondo le convenzioni del corso in tabella 1.b e in tabella 2.b il contenuto simbolico (espresso usando i nomi delle variabili, parametri, registri, ecc) e i valori dell indirizzo dell area di attivazione di call e di quella relativa alla prima invocazione di f_ric, così come risultano subito dopo l esecuzione dell istruzione LINK e il salvataggio di eventuali registri frammento di programma in linguaggio C / funzione call / void call ( ) { int i; int j = 3; i = 0; f_ric (&i, j); return; } / call / / funzione f_ric / int f_ric (int p, int q) { if (q == 0) { return 0; } else { p = p + 1; return f_ric (p, q 1); } / if / } / f_ric / AXO esame di martedì 3 luglio CON SOLUZIONI pagina 14 di 25

15 tabella 1.a codice della funzione call CALL: LINK FP, #-8 // collega I: EQU -4 // spiazzamento varloc i J: EQU -8 // spiazzamento varloc j MOVEM.L A0, -(SP) // salva registro A0 MOVE.L #3, J(FP) // inizializza varloc j a 3 MOVE.L #0, I(FP) // inizializza varloc i a 0 MOVE.L MOVEA.L FP, A0 J(FP), -(SP) // impila param j di f_ric // calcola ind di varloc i (a) ADDA.L #I, A0 // calcola ind di varloc i (b) MOVEA.L A0, -(SP) // impila param &i di f_ric BSR F_RIC // chiama funzione f_ric ADDA.L #8, SP // abbandona param p e q di f_ric MOVEM.L (SP)+, A0 UNLK FP // scollega RTS // ripristina registro A0 // ritorna Nota: qui i e j sono inizializzate senza caricarle in un reg. D Nota: la coppia di istruzioni macchina (a) e (b) si ottimizza così: LEA I(FP), A0 // calcola ind &i e salva in A0 Nota: qui MOVEM salva un solo registro ed equivale a MOVE Nota: call abbandona il valore in uscita di f_ric, senza usarlo tabella 1.b area di attivazione di call indirizzo contenuto simbolico (eventuali reg. salvati qui A0) varloc j varloc i FP precedente indirizzo di ritorno cella già occupata Nota: poiché la funzione call non restituisce nulla (è di tipo void e in C corrisponde a una procedura), nell area di attivazione di call non occorre lasciare alcuno spazio dove sovrascrivere il valore in uscita; non sarebbe peraltro errato lasciare spazio, che però non verrebbe usato e dunque sarebbe sprecato. AXO esame di martedì 3 luglio CON SOLUZIONI pagina 15 di 25

16 tabella 2.a codice della funzione f_ric F_RIC: LINK FP, #0 // collega P: EQU +8 // spiazzamento param p Q: EQU +12 // spiazzamento param q MOVEM.L A0/D0, -(SP) // salva registri D0 e A0 CMPI.L #0, Q(FP) // valuta condizione IF BNE ELSE // se!= 0 va a ramo ELSE THEN: MOVE.L #0, D0 // carica costante 0 MOVE.L D0, Q(FP) // sovrascrivi param q di f_ric BRA END_IF // va a fine IF ELSE: MOVEA.L P(FP), A0 // dereferenziazione di param p MOVE.L (A0), D0 // dereferenziazione di param p ADDI.L #1, D0 // incrementa oggetto puntato *p MOVE.L D0, (A0) // aggiorna oggetto puntato *p MOVE.L Q(FP), D0 // carica param q SUBI.L #1, D0 // calcola espessione q 1 MOVE.L D0, -(SP) // impila param q 1 di f_ric MOVE.L P(FP), D0 // carica param p MOVE.L D0, -(SP) // impila param p di f_ric BSR F_RIC // chiama funz ricorsiva f_ric ADDA.L #4, SP // abbandona param p di f_ric MOVE.L (SP)+, D0 // spila valusc di f_ric MOVE.L D0, Q(FP) // sovrascrivi param q di f_ric END_IF: MOVEM.L (SP)+, A0/D0 // ripristina registri A0 e D0 UNLK FP // scollega RTS // rientra Nota: qui si usa un solo reg dati D0, e si può ancora ottimizzare Nota: qui q viene confrontato senza caricarlo in un reg. D tabella 2.b area di attivazione di f_ric indirizzo contenuto simbolico (eventuali reg. salvati qui D0 e A0) FP precedente indirizzo di ritorno param p param q e valusc cella già occupata AXO esame di martedì 3 luglio CON SOLUZIONI pagina 16 di 25

17 tabella 2.a codice della funzione f_ric ottimizzata F_RIC: LINK FP, #0 // collega P: EQU +8 // spiazzamento param p Q: EQU +12 // spiazzamento param q MOVEM.L A0/D0, -(SP) // salva registri D0 e A0 CMPI.L #0, Q(FP) // valuta condizione IF BNE ELSE // se!= 0 va a ramo ELSE THEN: MOVE.L #0, Q(FP) // sovrascrivi param q di f_ric BRA END_IF // va a fine IF ELSE: MOVEA.L P(FP), A0 // dereferenziazione di param p ADDI.L #1, (A0) // incrementa oggetto puntato *p MOVE.L Q(FP), D0 // carica param q SUBI.L #1, D0 // calcola espessione q 1 MOVE.L D0, -(SP) // impila param q 1 di f_ric MOVE.L P(FP), -(SP) // impila param p di f_ric BSR F_RIC // chiama funz ricorsiva f_ric ADDA.L #4, SP // abbandona param p di f_ric MOVE.L (SP)+, Q(FP) // sovrascrivi param q di f_ric END_IF: MOVEM.L (SP)+, A0/D0 // ripristina registri A0 e D0 UNLK FP // scollega RTS // rientra Nota: qui si ottimizza sfruttando l ortogonalità AXO esame di martedì 3 luglio CON SOLUZIONI pagina 17 di 25

18 seconda parte simulazione delle chiamate ai sottoprogrammi In modo coerente con quanto risposto nella domanda precedente, si chiede ora di riportare nella tabella 3 i valori effettivi di parametri e variabili (ove disponibili) presenti nelle aree di attivazione di call e di f_ric subito dopo il salvataggio dei registri relativo alla terza invocazione di f_ric. tabella 3 contenuto effettivo delle aree di attivazione indirizzo contenuto simbolico D0 e A FP precedente indirizzo di ritorno P = area f_ric Q = D0 e A FP precedente indirizzo di ritorno P = area f_ric Q = D0 e A FP precedente indirizzo di ritorno P = area f_ric Q = A J = I = 0, 1, FP precedente area call indirizzo di ritorno cella già occupata AXO esame di martedì 3 luglio CON SOLUZIONI pagina 18 di 25

19 esercizio 6 microarchitettura Lo schema logico a destra illustra la micro-architettura di processore con un solo bus interno. Si consideri la seguente istruzione macchina del processore 68000: SCAMBIA #indx Essa esegue lo scambio dei contenuti tra la cella di memoria X (il cui indirizzo è specificato dalla costante indx contenuta nella parola aggiuntiva dell istruzione) e la cella di memoria Y che si trova in cima alla pila (il cui indirizzo sta nel registro SP); tale scambio avviene solamente se il contenuto di X è maggiore o uguale al contenuto di Y. Il registro SP non viene modificato. Attenzione a quanto segue: il contenuto dei registri di uso generale (R 0,, R n-1 ) non può essere modificato, pertanto è necessario utilizzare con accortezza i registri disponibili (V, Z e TEMP) l operazione sub della ALU calcola la differenza A B, la emette sull uscita R, e aggiorna immediatamente i codici di condizione aritmetici Z, N, C e V, scrivendoli nei corrispondenti bit del registro PSR (accessibili anche singolarmente) l operazione passa della ALU emette l ingresso A sull uscita R; il bus interno del processore non viene impegnato da questa operazione linee di comando della ALU linee di indirizzo bus di memoria select linee di dato add sub and costante 4 MUX A 32 bit PC MAR MDR V ALU R Z bus interno del processore B riporto in ingresso 32 bit ordini decodificatore di istruzioni e circuito di controllo IR R 0 R n 1 SP TEMP 32 bit si cerchi di minimizzare il numero di passi l unità di controllo è cablata Si scriva la sequenza di passi di controllo per l istruzione, compilando la tabella a pagina seguente. AXO esame di martedì 3 luglio CON SOLUZIONI pagina 19 di 25

20 sequenza di controllo (il numero di righe non è significativo) ottimale passo ordini descrizione 1 PC out MAR in read select 4 add Z in preleva la parola di codice operativo 2 Z out PC in V in WMFC preleva la parola di codice operativo 3 MDR out IR in preleva la parola di codice operativo 4 PC out MAR in read select 4 add Z in preleva la parola aggiuntiva dell istr. (indx) 5 Z out PC in WMFC completa il secondo prelievo 6 MDR out MAR in TEMP in read WMFC leggi X da memoria e in parallelo salva il suo indirizzo indx in TEMP 7 MDR out V in e copia X in V 8 SP out MAR in read WMFC leggi Y da pila 9 10 select V MDR out sub if (N = 1) then end TEMP out MAR in write WFMC select V pass A Z in calcola la differenza X Y e se differenza negativa, finisci scrivi Y all indirizzo di X (indx è in TEMP) e in parallelo prepara la scrittura di X (Z contiene X) 11 Z out MDR in prepara la scrittura di X (MDR contiene X) 12 SP out MAR in write WMFC end e scrivi X all indirizzo di Y (contenuto in SP) AXO esame di martedì 3 luglio CON SOLUZIONI pagina 20 di 25

21 sequenza di controllo (il numero di righe non è significativo) subottimale passo ordini descrizione 1 PC out MAR in read select 4 add Z in preleva la parola di codice operativo 2 Z out PC in V in WMFC preleva la parola di codice operativo 3 MDR out IR in preleva la parola di codice operativo 4 PC out MAR in read select 4 add Z in preleva la parola aggiuntiva dell istr. (indx) 5 Z out PC in WMFC completa il secondo prelievo 6 MDR out MAR in TEMP in read WMFC leggi X da memoria e in parallelo salva il suo indirizzo indx in TEMP 7 MDR out V in e copia X in V (V contiene X) 8 SP out MAR in read WMFC leggi Y da pila 9 select V MDR out sub calcola la differenza X Y 10 if (N = 1) then end e se differenza negativa, finisci 11 TEMP out MAR in write WFMC select V pass A Z in scrivi Y all indirizzo di X (indx è in TEMP) e in parallelo prepara la scrittura di X (Z contiene X) 12 Z out MDR in prepara la scrittura di X (MDR contiene X) 13 SP out MAR in write WMFC end e scrivi X all indirizzo di Y (contenuto in SP) AXO esame di martedì 3 luglio CON SOLUZIONI pagina 21 di 25

22 sequenza di controllo (il numero di righe non è significativo) variante passo ordini descrizione 1 PC out MAR in read select 4 add Z in preleva la parola di codice operativo 2 Z out PC in V in WMFC preleva la parola di codice operativo 3 MDR out IR in preleva la parola di codice operativo 4 SP out MAR in read WMFC leggi Y da pila 5 MDR out TEMP in e copia Y in TEMP (TEMP contiene Y) 6 PC out MAR in read select 4 add Z in preleva la parola aggiuntiva dell istr. (indx) 7 Z out PC in WMFC completa il secondo prelievo 8 MDR out MAR in read WMFC leggi X da memoria 9 MDR out V in e trasferisci X in V (V contiene X) 10 select V TEMP out sub calcola la differenza X Y 11 if (N = 1) then end // unificabile con 10 e se differenza negativa, finisci 12 TEMP out MDR in write WFMC select V pass A Z in scrivi Y all indirizzo di X (indx è in MAR) e in parallelo copia V in Z (Z contiene X) 13 Z out MDR in prepara la scrittura di X 14 SP out MAR in write WMFC end e scrivi all indirizzo di Y (contenuto in SP) AXO esame di martedì 3 luglio CON SOLUZIONI pagina 22 di 25

23 spazio libero per brutta o continuazione AXO esame di martedì 3 luglio CON SOLUZIONI pagina 23 di 25

24 spazio libero per brutta o continuazione AXO esame di martedì 3 luglio CON SOLUZIONI pagina 24 di 25

25 spazio libero per brutta o continuazione AXO esame di martedì 3 luglio CON SOLUZIONI pagina 25 di 25

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe elagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura

Dettagli

ACSO Architettura dei Calcolatori e Sistemi Operativi

ACSO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano ACSO Architettura

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura

Dettagli

CX: 4 K DX:12 K PX:4 K CY:16 K DY: 4 K PY:4 K

CX: 4 K DX:12 K PX:4 K CY:16 K DY: 4 K PY:4 K esercizio n. 2 memoria virtuale Un sistema dotato di memoria virtuale con paginazione e segmentazione di tipo UNIX è caratterizzato dai parametri seguenti: la memoria centrale fisica ha capacità di 32

Dettagli

programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina

programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma (main e funzione funz) riportato

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa prof.ssa prof. Donatella Sciuto Cristina Silvano Roberto Negrini

Dettagli

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014 Memoria Virtuale Alessandro A. Nacci alessandro.nacci@polimi.it ASO 2014/2014 1 2 Algoritmo LRU! Buone prestazioni in media! Utilizza bit di controllo che riportano le informazioni sugli accessi alle pagine!

Dettagli

esercizio n. 2 linguaggio macchina #define MAX = 3 / variabili globali / int a = 5; int b = 10; int h;

esercizio n. 2 linguaggio macchina #define MAX = 3 / variabili globali / int a = 5; int b = 10; int h; esercizio n. 2 linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma C riportato sotto, costituito da programma principale main e dalle funzioni

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Roberto Negrini prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano

Dettagli

CX: 4 K DX:12 K PX:4 K CY:16 K DY: 4 K PY:4 K

CX: 4 K DX:12 K PX:4 K CY:16 K DY: 4 K PY:4 K esercizio n. 2 memoria virtuale Un sistema dotato di memoria virtuale con paginazione e segmentazione di tipo UNIX è caratterizzato dai parametri seguenti: la memoria centrale fisica ha capacità di 32

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica, Informazione e Bioingegneria prof.ssa Anna Antola prof. Luca Breveglieri prof. Roberto Negrini prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa

Dettagli

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI 1. Si consideri il programma C seguente (gli #include necessari sono omessi): / programma principale / 1.

Dettagli

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014 Memoria Virtuale Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 1 2 Algoritmo LRU! Buone prestazioni in media! Utilizza bit di controllo che riportano le informazioni sugli accessi alle

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano AXO Architettura

Dettagli

Esercizio 1 - nucleo e commutazione tra processi

Esercizio 1 - nucleo e commutazione tra processi Esercizio 1 - nucleo e commutazione tra processi / programma CODICE.c / int main ( ) {... fd = open( /acso/file_prova, ORDWR) pid = fork ( ); if (pid == 0) {/ codice eseguito da F1 / execl ( /acso/prog_x,

Dettagli

Esercizi. Assembly. Alessandro A. Nacci ACSO 2014/2014

Esercizi. Assembly. Alessandro A. Nacci ACSO 2014/2014 Esercizi Assembly Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 1 Esercizio 1 Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma C (programma

Dettagli

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET: Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica, Informazione e Bioingegneria prof.ssa Anna Antola prof. Luca Breveglieri prof. Roberto Negrini prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di ilano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Roberto Negrini prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa Cristina Silvano

Dettagli

#define N = 5. / funzione funz / int funz (int a, int b) { return (a + r) b; } / fine funzione / programma in linguaggio C

#define N = 5. / funzione funz / int funz (int a, int b) { return (a + r) b; } / fine funzione / programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma (main e funzione funz) riportato

Dettagli

Architettura degli elaboratori Tema d esame del 20/01/2016

Architettura degli elaboratori Tema d esame del 20/01/2016 Architettura degli elaboratori - Luigi Lavazza A.A. 5/6 Università degli Studi dell Insubria Dipartimento di Informatica e Comunicazione Architettura degli elaboratori Tema d esame del //6 Luigi Lavazza

Dettagli

Architettura degli elaboratori Tema d esame del 20/01/2016

Architettura degli elaboratori Tema d esame del 20/01/2016 Architettura degli elaboratori - Luigi Lavazza A.A. 25/6 Università degli Studi dell Insubria Dipartimento di Informatica e Comunicazione Architettura degli elaboratori Tema d esame del 2//26 Luigi Lavazza

Dettagli

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene

Dettagli

Informatica 2 Esame di lunedì 11 Luglio 2005

Informatica 2 Esame di lunedì 11 Luglio 2005 Politecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri prof. Luigi Lavazza prof. Giuseppe Pelagatti prof.ssa

Dettagli

Informatica 2 Prova di lunedì 27 Giugno Con soluzioni. Politecnico di Milano Dipartimento di Elettronica e Informazione

Informatica 2 Prova di lunedì 27 Giugno Con soluzioni. Politecnico di Milano Dipartimento di Elettronica e Informazione Politecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri Informatica 2 Prova di lunedì 27 Giugno 25 prof. Luigi

Dettagli

Informatica 2 Esame di giovedì 13 settembre 2007

Informatica 2 Esame di giovedì 13 settembre 2007 olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe elagatti prof.ssa Donatella Sciuto Informatica 2 Esame di giovedì 13 settembre

Dettagli

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

ACSO Architettura dei Calcolatori e Sistemi Operativi

ACSO Architettura dei Calcolatori e Sistemi Operativi olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Cristina Silvano ACSO Architettura dei Calcolatori e Sistemi Operativi rova di venerdì 26 Febbraio 200 Cognome Nome Matricola Firma

Dettagli

Informatica 2 Esame di venerdì 2 marzo 2007

Informatica 2 Esame di venerdì 2 marzo 2007 olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe elagatti prof.ssa Donatella Sciuto Informatica 2 Esame di venerdì 2 marzo 2007

Dettagli

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con

Dettagli

Esercizio n. 7 - Microcodice

Esercizio n. 7 - Microcodice Esercizio n. 7 - Microcodice Lo schema riportato qui di fianco illustra l architettura di processore a bus singolo di riferimento. Si scriva il microcodice capace di eseguire la coppia di istruzioni seguenti:

Dettagli

(9) pid1 = waitpid (pid1, &status, 0); (10) exit (0); } / end if / } / main.c / File system_

(9) pid1 = waitpid (pid1, &status, 0); (10) exit (0); } / end if / } / main.c / File system_ File system_ 2.3.22 Si considerino i seguenti frammenti di programma: / programma main.c / main ( ) { int pid, pid2; int fd, fd2; char v = abcdefghil ; char c []; () pid = fork ( ); (2) fd = open ( /user/acso/prova,

Dettagli

Struttura interna del sistema operativo Linux

Struttura interna del sistema operativo Linux Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04

Dettagli

Esercizi. Logica Digitale. Alessandro A. Nacci ACSO 2014/2014

Esercizi. Logica Digitale. Alessandro A. Nacci ACSO 2014/2014 Esercizi Logica Digitale Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 204/204 2 Esercizio - Prima Parte Si vuole realizzare un circuito combinatorio a quattro ingressi ( a, b, c, d ) e un uscita

Dettagli

Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi)

Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi) shell Programmi utente Modo utente Il Nucleo del sistema operativo (la gestione dei processi) Interfaccia delle chiamate di sistema File system Gestione processi Device driver Gestione memoria HARDWARE

Dettagli

Informatica 2 Prova di giovedì 10 maggio 2007

Informatica 2 Prova di giovedì 10 maggio 2007 olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri Informatica 2 rova di giovedì 10 maggio 2007 prof. Giuseppe elagatti prof.ssa Donatella ciuto

Dettagli

Informatica 2 Prova di mercoledì 27 aprile 2005

Informatica 2 Prova di mercoledì 27 aprile 2005 olitecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri Informatica 2 rova di mercoledì 27 aprile 2005 Matricola

Dettagli

il tipo di parallelismo dipende dal grado di cooperazione

il tipo di parallelismo dipende dal grado di cooperazione Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale

Dettagli

Reti Logiche A Esame del 13 settembre 2007

Reti Logiche A Esame del 13 settembre 2007 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Esame del 13 settembre 2007 prof.ssa Cristiana Bolchini Esercizio n. 1 Effettuare

Dettagli

Esercizio n. 4 File system

Esercizio n. 4 File system Esercizio n. 4 File system Un processo P esegue il programma seguente, creando un processo figlio Q, che crea a sua volta un figlio R: int main ( ) { /* processo P */ / dichiarazioni varie / fd = open

Dettagli

Invocazione di funzioni. Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione)

Invocazione di funzioni. Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione) Invocazione di funzioni Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione) Passaggio parametri F(a,b,c) { } Z = g(x, y, z) Record di attivazione o registri

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

Dettagli

Architettura degli elaboratori Tema d esame del 8/2/2016

Architettura degli elaboratori Tema d esame del 8/2/2016 Architettura degli elaboratori - Esame del 8 febbraio 6 A.A. -6 Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del 8//6 Luigi

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Architettura del sistema operativo Struttura interna del sistema operativo Linux shell Programmi utente Modo utente 2. Nucleo del sistema operativo (la gestione dei processi) - 31 marzo 2008 - Interfaccia

Dettagli

Architettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Sottoprogrammi e MIPS Espressioni algebriche Capitolo 2 P&H Sottoprogrammi Modello di chiamata Area di attivazione Calcolare un espressione algebrica 2

Dettagli

Reti Logiche A II Prova - 2 marzo 2009

Reti Logiche A II Prova - 2 marzo 2009 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A II Prova - 2 marzo 2009 Matricola prof.ssa Cristiana Bolchini Cognome Nome Istruzioni

Dettagli

Reti Logiche A Appello del 9 luglio 2009

Reti Logiche A Appello del 9 luglio 2009 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi prof.ssa Cristiana Bolchini Reti Logiche A Appello del 9 luglio 2009 Matricola Cognome Nome

Dettagli

a b / c d

a b / c d esercizio n. 4 logica digitale prima parte funzioni e reti combinatorie Marzo 2 Si vuole realizzare un circuito combinatorio a quattro ingressi ( a, b, c, d ) e un uscita F, caratterizzato dai mintermini

Dettagli

Informatica 2 Esame di lunedì 17 luglio 2006

Informatica 2 Esame di lunedì 17 luglio 2006 olitecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luca Breveglieri prof. ierluca Lanzi prof. Giuseppe elagatti prof.ssa Donatella Sciuto Informatica

Dettagli

System call per la gestione di processi

System call per la gestione di processi System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:

Dettagli

[1.B] Si consideri un sistema con un solo processo attivo, il quale sta eseguendo la seguente porzione di codice:

[1.B] Si consideri un sistema con un solo processo attivo, il quale sta eseguendo la seguente porzione di codice: REGOLE. Si inseriscano le proprie risposte su questi fogli. Non è consentita la consultazione di libri o appunti in forma cartacea o elettronica, né l'uso di palmari e telefoni cellulari. Per superare

Dettagli

System call per la gestione di processi

System call per la gestione di processi System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:

Dettagli

Reti Logiche A Prova di giovedì 3 febbraio 2005

Reti Logiche A Prova di giovedì 3 febbraio 2005 olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof.ssa Cristiana Bolchini prof. Fabrizio Ferrandi Reti Logiche A rova di giovedì febbraio 005 Matricola Cognome Nome

Dettagli

Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri

Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Fondamenti di Informatica II prova 13 febbraio 2015 Matricola/codice persona Cognome Nome Durata prova:

Dettagli

Architetture dei Calcolatori

Architetture dei Calcolatori Architetture dei Calcolatori Lezione 8 -- 01/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Create da: F. Lo Presti Modificate da: E.Casalicchio Le procedure q In ogni linguaggio

Dettagli

Istruzioni di controllo del flusso

Istruzioni di controllo del flusso Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA Politecnico di Milano COGNOME E NOME Facoltà di Ingegneria Industriale FONDAMENTI DI INFORMATICA Seconda prova in itinere 13 Febbraio 2017 Primo Appello (Laureandi) 13 Febbraio 2017 RIGA COLONNA MATRICOLA

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica, Informazione e Bioingegneria prof.ssa Anna Antola prof. Luca Breveglieri prof. Roberto Negrini prof. Giuseppe Pelagatti prof.ssa Donatella Sciuto prof.ssa

Dettagli

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente Architettura dei calcolatori e sistemi operativi M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente 18.01.2015 Architettura Intel x64 Lo spazio di indirizzamento virtuale

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 12 Gennaio 2017 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina. Preparare

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello dell 11 Settembre Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello dell 11 Settembre Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello dell 11 Settembre 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle

Dettagli

Programmazione di concorrente - Deadlock

Programmazione di concorrente - Deadlock Programmazione di concorrente - Deadlock Prof. Gerardo Pelosi & Ing. Michele Scandale 30 Ottobre 2014 Il materiale illustrato a lezione e in queste note contiene anche esempi di Fabrizio Castro, Luca Fossati,

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi. microarchitettura del processore

AXO Architettura dei Calcolatori e Sistemi Operativi. microarchitettura del processore AXO Architettura dei Calcolatori e Sistemi Operativi microarchitettura del processore Data-path ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole da 32 bit I registri:

Dettagli

Università dell'insubria - Luigi Lavazza 1

Università dell'insubria - Luigi Lavazza 1 Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del 27/11/214 Luigi Lavazza Dipartimento di Scienze Teoriche ed Applicate luigi.lavazza@uninsubria.it

Dettagli

CAP9. Device drivers

CAP9. Device drivers Struttura interna del sistema operativo Linux CAP9. Device drivers Device drivers Gestori di periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

Architettura degli elaboratori - Esame del 13 luglio 2015 A.A

Architettura degli elaboratori - Esame del 13 luglio 2015 A.A Architettura degli elaboratori - Esame del 3 luglio 25 A.A. 24-5 Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del 3/7/25

Dettagli

Corso di Architettura (Prof. Scarano) 10/05/2002

Corso di Architettura (Prof. Scarano) 10/05/2002 Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di

Dettagli

/ sezione dichiarativa variabili globali / #define N 10 int vett [N];

/ sezione dichiarativa variabili globali / #define N 10 int vett [N]; esercizio linguaggio macchina esame 9 luglio 2015 prima parte traduzione in assembler Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) MIPS il frammento di programma C riportato

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi

AXO Architettura dei Calcolatori e Sistemi Operativi Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Luca Breveglieri prof. Giuseppe Pelagatti prof.ssa prof. prof.ssa Donatella Sciuto Roberto Negrini Cristina Silvano

Dettagli

Architettura degli elaboratori

Architettura degli elaboratori Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del /9/24 Dipartimento di Scienze Teoriche e Applicate luigi.lavazza@uninsubria.it

Dettagli

COGNOME: NOME: MATRICOLA:

COGNOME: NOME: MATRICOLA: Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/2002-18 febbraio 2004 - RECUPERO 1 PARTE COGNOME: NOME: MATRICOLA: Istruzioni: Scrivere

Dettagli

Processore Danilo Dessì. Architettura degli Elaboratori.

Processore Danilo Dessì. Architettura degli Elaboratori. Processore 8088 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine

Dettagli

Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri. Fondamenti di Informatica I prova in itinere

Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri. Fondamenti di Informatica I prova in itinere Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri Fondamenti di Informatica I prova in itinere 18 novembre 2011 Matricola Cognome Nome Istruzioni Durata prova: 2 ore

Dettagli

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata

Dettagli

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:

Dettagli

Informatica 2 Prova di giovedì 24 febbraio 2005

Informatica 2 Prova di giovedì 24 febbraio 2005 olitecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri prof. Luigi Lavazza prof. Giuseppe elagatti prof.ssa

Dettagli

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 8 Febbraio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 8 Febbraio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 8 Febbraio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Il presente plico contiene 4 esercizi, deve essere debitamente compilato

Dettagli

Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009

Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009 Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria 19 ottobre 2009 Sequenze di esecuzione - 2 Sequenze di esecuzione - 2 Esercizio 1 Sequenze di

Dettagli

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/ novembre 2003

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/ novembre 2003 Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/2004-19 novembre 2003 COGNOME: NOME: MATRICOLA: Istruzioni: Scrivere solo sui fogli

Dettagli

Linguaggio macchina e register file

Linguaggio macchina e register file Linguaggio macchina e register file Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Esercizi Logica Digitale,Circuiti e Bus

Esercizi Logica Digitale,Circuiti e Bus Esercizi Logica Digitale,Circuiti e Bus Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 214/214 1 2 Esercizio 1 Si consideri la funzione booleana di 3 variabili G(a,b, c) espressa dall equazione seguente:

Dettagli

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 23 Gennaio 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4

Dettagli

PROVA SCRITTA DEL CORSO DI CALCOLATORI ELETTRONICI 19 Febbraio 2013

PROVA SCRITTA DEL CORSO DI CALCOLATORI ELETTRONICI 19 Febbraio 2013 PROVA SCRITTA DEL CORSO DI CALCOLATORI ELETTRONICI 19 Febbraio 2013 NOME: COGNOME: MATRICOLA: ESERCIZIO 1 (10 punti) Si consideri un calcolatore che dispone di una memoria principale di 256 Mbyte e di

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file 2 1 Il sistema operativo E uno

Dettagli

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I) Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo

Dettagli

ESERCIZIO TIPO SULLE FUNZIONALITÀ DELLO HARDWARE

ESERCIZIO TIPO SULLE FUNZIONALITÀ DELLO HARDWARE ESERCIZIO TIPO SULLE FUNZIONALITÀ DELLO HARDWARE Si consideri un calcolatore dotato dei meccanismi descritti nel testo, in particolare: ogni istruzione è contenuta esattamente in una cella di memoria;

Dettagli

Esercizi. Assembly. Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014

Esercizi. Assembly. Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 Esercizi Assembly Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 1 RIPASSO Architettura dei registri del 68K Di (0 i 7): registri di dato a 8, 16, 32 bit Ai (0 i 7): resgistri di a 16, 32

Dettagli

Architettura dei calcolatori e sistemi operativi. Input Output. IO 3 Device driver

Architettura dei calcolatori e sistemi operativi. Input Output. IO 3 Device driver Architettura dei calcolatori e sistemi operativi Input Output IO 3 Device driver Device driver - gestori delle periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi

Dettagli

15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio

15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio 15 April 2011 05 LABORATORIO 04 PROCEDURE STACK CHIAMATA A PROCEDURE I. Frosio 1 SOMMARIO Procedure Stack Chiamata a procedure 2 PERCHÈ LE PROCEDURE? 15 April 2011 Main Proc3 Proc2 Proc1 Programmazione

Dettagli