Esame di Sistemi di Elaborazione 15/01/2004

  1. Si scriva un programma in linguaggio assembler che riceva in input due numeri N1 e N2. Calcoli quindi la differenza N3=N1-N2. Se il risultato (N3) è negativo, si stampi in output 0. Altrimenti si stampi in output N3 volte il numero 1. Si illustri anche il contenuto dei registri IR, MAR, MDR, PC e A (accumulatore ALU) alla fine della esecuzione del programma quando siano dati in input i valori N1=10 e N2=11.
    Lo studente supponga di avere già in memoria eventuali costanti necessarie al programma e di avere a disposizione le seguenti istruzioni:
    Arithmetic1xxADD
    2xxSUB
    Data Movement3xxSTORE
    5xxLOAD
    BR6xxJUMP
    BRZ7xxBRANC ON 0
    BRP8xxBRANCH ON +
    Input/Output901INPUT
    902OUTPUT
    Machine Control000HALT

  2. Si descriva il funzionamento della memoria cache in dettagli, usando anche eventuali diagrammi.

  3. Si dia la definizione di Clusters (sistema distribuito), si descrivano le possibili configurazioni, e si evidenzino le differenze e similarità con le networks (reti).

  4. Si descrivano i metodi disponibili per l'accesso ed il trasferimento di file remoti tra calcolatori.

  5. Si descrivano i metodi disponibili per l'allocazione non contigua dei files, discutendone in dettaglio vantaggi e svantaggi.

  6. Si descrivano e confrontino gli algoritmi per il rimpiazzamento delle pagine in memoria in un sistema a memoria virtuale con paginazione.