ARCHITETTURA DEGLI ELABORATORI DELL'INFORMAZIONE

C. di Studio in Informatica, Univ. di Bologna, a.a. 2011-2012
Docente: Vittorio Ghini

Avviso alle Matricole
Avviso alle Matricole di Informatica


Annunci
NEW: Aggiunto Assemblatore/Tracer per Windows Vista e Windows 7.
Vedere nella sezione Progetto Assembly in fondo a questa pagina
oppure qui ASSEMBLATORE/TRACER/ESEMPI per progetto assembly

NEW: Annuncio Lancio Progetto Assembly sessione estiva.
Le specifiche del progetto sono disponibili gia' da adesso.
La scadenza per la consegna via mail e' 24 luglio 2012.
Per ulteriori informazioni http://iafelice.web.cs.unibo.it/archi/


NEW:
Lo scritto di Architettura degli Elaboratori, per le sessioni estiva ed autunnale
verra'effettuato nei seguenti giorni:
- martedi' 29-05-2012, dalle 13:30 alle 16:30, Aula Cremona, Dip. Matematica
- venerdi' 29-06-2012, dalle 10:30 alle 13:30, Aula Cremona, Dip. Matematica
- venerdi' 27-07-2012, dalle 10:30 alle 13:30, Aula Cremona, Dip. Matematica
- giovedi' 20-09-2012, dalle 10:30 alle 13:30, Aula Ercolani 1
Regole:
- Presentarsi muniti di documento di identita'.
- Non e' consentito l'uso di libri appunti e ausilii elettronici.
- Si puo' svolgere lo scritto e ritirarsi senza consegnare.
- La consegna annulla ogni eventuale scritto precedente.

09 febbraio 2012 - Annuncio "Risultati dell'esame del 09 febbraio 2012".
Risultati Esame del 09 febbraio 2012 e Registrazione Voti


Aggiunte Soluzioni del Test di Auto Valutazione seconda parte del corso.
TestAutoValutazione_secondaparte.html vedere in fondo


Aggiunte Soluzioni del Test di Auto Valutazione prima parte del corso.
TestAutoValutazione_primaparte.html vedere in fondo


Annuncio Test di Auto Valutazione seconda parte del corso.
TestAutoValutazione_secondaparte.html


Annuncio Test di Auto Valutazione prima parte del corso.
TestAutoValutazione_primaparte.html


Burocrazia
Modulo per gli studenti lavoratori che necessitano del giustificativo per il datore di lavoro.

Uso dei Laboratori Didattici del Dipartimento di Scienze dell'Informazione.
http://account.cs.unibo.it     Regole per l'uso dei Laboratori.


Scopo del Corso
comprendere l'organizzazione a livelli degli elaboratori dell'informazione,
dalla logica digitale al livello macchina e al sistema operativo,
dalla programmazione in assembly fino alla programmazione in linguaggio C.

Materiale didattico di supporto allo studio
Nota Bene:
Il livello di dettaglio degli argomenti del corso e' quello svolto a lezione.
In altre parole, il corso ufficiale e' quello presentato a lezione,
ed il materiale didattico suggerito ha solo funzione di supporto allo studio
ma non ricopre esattamente gli argomenti trattati a lezione.
Libro di testo:
Andrew S. Tanenbaum. Architettura dei Calcolatori. Un Approccio Strutturale. Pearson Prentice Hall, quinta edizione, 2006.
Selezione di Appunti delle lezioni del docente, disponibili online:
(vedere sotto)


Modalita' d'esame
Esame Classico negli appelli d'esame delle sessioni di giugno/luglio e di settembre:
L'esame consiste di una prova scritta e di un PROGETTO in assembly.
Lo scritto deve essere suparato almeno con voto 18.
Il voto del progetto (fino a 4 punti) sara' poi sommato al voto dello scritto.
NB- Solo per chi deve sostenere l'esame di Architettura a 9 CFU: valgono le stesse regole, ma la prova scritta si riferisce al programma del corso a 9 CFU. Occorre avvisare il docente entro tre giorni prima dalla prova scritta dell'intenzione di sostenere l'esame, per permettere al docente di preparare il testo della prova scritta.

Esame alla fine delle lezioni, nella sessione di gennaio/febbraio:
Poiche' tra la fine delle lezioni di architettura e la sessione d'esame c'e' poco tempo,
se si sostiene l'esame nella sessione di gennaio/febbraio, si deve superare solo lo scritto, ma non e' necessario presentare il progetto assembly.


Appunti delle Lezioni

1. Introduzione all'Architettura dei Computer

      (TRACCIA delle lezioni 1 e 2)
      L'Informazione e l'Organizzazione degli Elaboratori dell'Informazione
......... introArch.pdf

2. Livello di Linguaggio - ANSI C

      Dispense
......... c001a.pdf .......... Introduzione: il linguaggio C e i Compilatori
......... c002.pdf ............ Le Variabili e i moduli C
......... calling_convention.pdf ............ Uso dello Stack nelle Chiamate a Funzione
......... mistery.c ............ Un esempio da NON seguire
......... c003.pdf ............ Costanti, Operatori, Valutaz. Espress., Controllo del flusso di Istruzioni
......... c004.pdf ............ Struct, Puntatori, Arrays, Puntatori di Puntatori, Funzioni
......... c005.pdf ............ Puntatori a funzione, funzioni ad argomenti variabili, I/O in C.
......... c006.pdf ............ Errno, eof, I/O a blocchi, Riga di Comando e I/O a basso livello
......... c008.pdf ............ Funzioni di libreria
......... vet.c ................... esempio con vettori
......... tree.c .................. esempio con alberi binari
......... debug_liste_inserisci_N_in_coda.c ... NUOVO 25/11/2011 esempio di creazione lista con aggiunta in coda, ricorsiva
......... loadmat1.c .......... esempio con matrici (a puntatori) e lettura da file
......... in1.txt ................. file di input per esempio lettura da file

          Il problema dell'allineamento dei dati nelle strutture
......... Makefile
......... sizeof.c
......... packed.c

          Esercizi Linguaggio ANSI C
......... esercizi_improvvisati_17_nov_2011.txt - struct, puntatori, variabili locali e globali
......... esame1c.pdf - ricerca su albero binario
......... esame2c.pdf - ricerca su lista
......... esame3c.pdf - inserimento in testa in una lista
......... esame4c.pdf - inserimento in coda in una lista
......... esame5c.pdf - inserimento ordinato in una lista
......... esame6c.pdf - eliminazione di un elemento da una lista
......... esame7c.pdf - inserimento ordinato in un albero binario
......... esame8c.pdf - deallocazione nodi in un albero binario
......... esame9c.pdf - modifica foglie in un albero binario

          Esempi di Esercizi su Introd. Arch. Elab. Info e Ling. ANSI C
......... domande_varie_su Intro Arch Elab e Linguaggio ANSI C.pdf

          Esercizi per familiarizzarsi con il linguaggio ANSI C
......... esercitazioni_C.pdf

Approfondimenti facoltativi su operazioni con linguaggio C

          Thread Posix
......... pthread_03.pdf ................................ Introduzione ai Thread Posix
......... banale_moltoerrato.c .................... esempio sbagliato di passaggio di parametri a pthread
......... banale_errato.c ....................... altro esempio sbagliato di passaggio di parametri a pthread
......... banale_quasigiusto.c ................... esempio corretto di passaggio di parametri a pthread
......... joinable.c ....................................... esempio di restituzione di risultato da un pthread
......... detached.c ....................................... esempio di non restituzione di risultato da pthread
......... Makefile .............................. il Makefile per compilare i tre esempi
......... mutex.c ....................................... esempio di protezione in mutua esclusione tra pthread
......... CondVarBroadcast.c ....................... esempio di Sincronizzazione e Mutua Esclusione tra pthread
......... CondVarSignal.c ..................... altro esempio di Sincronizzazione e Mutua Esclusione tra pthread

          Un accenno alle API per la gestione di shared memory
......... shared_memory.pdf ............. API per shared memory

          Link per ulteriori approfondimenti su system call C e Posix Thread
......... CE.html ............................... system call in C: corso sist. op. Prof. Davoli e Montresor
......... pthread: basi ........................ pthread: basi
......... pthread: attributi ................... pthread: attributi
......... pthread: sincronizzazione ...... pthread: sincronizzazione
......... pthread: esempi ................... pthread: esempi
......... pthread.html ........................ Posix thread programming


Approfondimenti facoltativi su I/O via rete con linguaggio C

......... TCPIPS1.pdf ..... I/O tramite Rete mediante socket TCP/IP
......... TCP1.html ......... Codice C dell'esempio di comunicazione con stream TCP (per Unix)
......... TCP1win.html ..... Esempio di comunicazione con stream TCP con i socket per Windows (95)
......... UDP1win.html .... Esempio di comunicazione con Datagram UDP con i socket per Windows (95)
......... winserial.zip ........ Esempio di comunicazione via seriale in Windows


3. Livello di Sistema Operativo

      Traccia delle Lezioni
......... SistemaOperativo_intro.pdf
......... SistemaOperativo_SystemCalls.pdf
......... SistemaOperativo_Scheduler.pdf
......... SistemaOperativo_GestioneMemoria.pdf
......... SistemaOperativo_Interrupt_Eccezioni.pdf
......... BUS.pdf BUS: Anticipazione del livello di Logica Digitale.

4. Livello ISA (Instruction Set Architecture)

......... ISA_I/O.pdf
      Argomenti gia' trattati parlando di Sistema Operativo
......... Istruzioni, Stack, Interrupt, Eccezioni

5. Livello ISA (Instruction Set Architecture)
Caso di Studio: Architettura Intel IA-32

      Traccia delle Lezioni
......... ISA di IA-32 - Supporto al Sistema Operativo (ISA_IA-32.pdf)
      Materiale Didattico
......... SELEZIONE IA-32 volume1_Basic_architecture.pdf Architettura di base dell' IA-32 (Selezione da manuale Intel)
......... SELEZIONE_IA-32 Volume 3A System Programming Guide.pdf Supporto al sistema operativo fornito dall' IA-32 (Selezione da manuale Intel)
............................N.B: alcuni paragrafi non sono necessari Elenco paragrafi da leggere.pdf


Elenco Argomenti da studiare riguardanti le parti "Sistema Operativo" ed "ISA" Argomenti_su_SistOperativo_ed_ISA.txt
           NB: gli argomenti sono stati trattati a lezione con diversi gradi di approfondimento,
           non sempre il libro di testo approfondisce nello stesso modo.
           Gli appunti delle lezioni sono sempre il supporto didattico migliore.


6. Livelli di Logica Digitale, ISA e Assembly - Caso di Studio processore Intel 8088

           Lezioni del Dott. Bruno Iafelice
......... Nota generale sul sotto-corso di assembly
......... Concetti di base
......... Architettura 8088
......... Assembly 8088
......... Chiamate a sottoprocedure
......... Assemblatore

           Libro di testo
......... Fare riferimento al libro di testo, Appendice C - Programmazione in Linguaggio Assemblativo

7. Livello di Micro-Architettura

......... non ancora disponinile
......... Fare riferimento al libro di testo, cap. 4, paragrafi 4.1, 4.1.1, 4.1.2, 4.1.3, 4.3.1


......... Esempi di Esercizi su Logica Digitale, ISA e Assembly 8088, MicroArchitettura Mic-1.
......... Esercizi Assembly preparati dal Dott. Di Felice
......... Domande varie su Logica Digitale, Assembly e Microarchitettura


8. Progetto in Assembly 8088

           PROGETTO in assembly:
           ASSEMBLATORE/TRACER/ESEMPI per progetto assembly


===========================================================================
Materiale didattico per Integrazione di 3CFU (per vecchio ordinamento a 9CFU)

Selezione del Materiale didattico dei precedenti corsi di architettura
tenuti dai Dottori Dal Lago e Kiziltan
:

Reti Combinatorie e Algebra di Boole
Pagine 131-141 da [1].
Pagine 29-42 da [2].
Lucidi [ 04_PORTEALGEBRE_Ott18.pdf ] [ 04_Esercizi.pdf ]

Sintesi di Reti Combinatorie
Pagine 42-67 da [2].
Lucidi [ 05_SINTESICOMBINATORIE-Ott24-25.pdf ] [ 05_Esercizi.pdf ]

Complementi sulle Reti Combinatorie
Pagine 141-152 da [1].
Pagine 68-100, 109-144, 340-344 da [2].
Lucidi [ 06_COMPLEMENTICOMBINATORIE_Ott30-31.pdf ] [ 06_Esercizi.pdf ]

Reti Sequenziali
Pagine 154-159 da [1].
Pagine 197-215 da [2].
Lucidi [ 07_SEQUENZIALI-Nov7-8.pdf ]

Analisi e Sintesi di Reti Sequenziali
Pagine 215-241 da [2].
Lucidi [ 08_SINTESISEQUENZIALI-Nov8.pdf ] [ 08_Esercizi.pdf ]

Bibliografia
[1] Andrew S. Tanenbaum. Architettura dei Calcolatori. Un Approccio Strutturato. Pearson Prentice Hall, quinta edizione, 2006.
[2] M. Morris Mano and Charles R. Kime. Reti Logiche. Pearson Addison Wesley, 2002.


~