Esame di Sistemi di Elaborazione 26/05/2005

Le risposte alle domande devono essere esaustive!

  1. Si scriva un programma in linguaggio assembler che riceva in input 10 numeri N1, N2, ..., N10. Si memorizzi il primo numero ricevuto in input (N1). I successivi numeri ricevuti in input (N2, ..., N10) devono essere memorizzati solo se maggiori di N1. Si stampi alla fine i numeri memorizzati.
    SI consideri presente nella cella di indirizzo 99 il valore 10 e nella cella di indirizzo 98 il valore 1.
    N.B. Naturalmente l'input dei 10 numeri va fatto con un ciclo non con 10 istruzioni di input :-).
    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=4, N2=8, N3=3, N4=5, N5=2, N6=7, N7=8, N8=1, N9=8, e N10=2.
    Lo studente supponga di avere già in memoria eventuali costanti necessarie al programma e di avere a disposizione le seguenti istruzioni:

    Arithmetic 1xx ADD
    2xx SUB
    Data Movement 3xx STORE
    5xx LOAD
    BR 6xx JUMP
    BRZ 7xx BRANC ON 0
    BRP 8xx BRANCH ON +
    Input/Output 901 INPUT
    902 OUTPUT
    Machine Control 000 HALT

  2. Si descriva dettagliatamente il funzionamento delle interruzioni e del DMA.

  3. Si descriva dettagliatamente il funzionamento della cache.

  4. Si descrivano dettagliatamente gli algoritmi per il rimpiazzamento delle pagine nella gestione della memoria con memoria virtuale.

  5. Si descrivano dettagliatamente i metodi per l’implementazione dei collegamenti ai files in directories organizzate in grafi aciclici. In particolare si discutano i collegamenti in sistemi Macintosh e UNIX indicando quali sono le possibili operazioni sui files che distruggono i collegamenti.

  6. Si descriva dettagliatamente gli stati (operativi) di un processo e si dicano in che modo avvengono i cambiamenti di stato.