Video delle lezioni dell'A/A 2019/20
- Lun 02/03/2020 10:30-12:30 (2:0 h) lezione: Introduzione al corso. L'esempio del calcolatore SSEM. Architettura di base: il ruolo e le interazioni tra i vari componenti.
- Mar 03/03/2020 14:30-16:30 (2:0 h) lezione: Introduzione all’architettura Intel/AMD a 64 bit: registri, istruzioni, indirizzi canonici. Esempio di programma in assembler.
- Gio 05/03/2020 10:30-12:30 (2:0 h) non tenuta: Sospensione delle lezioni per contenimento COVID-19.
- Ven 06/03/2020 10:30-12:30 (2:0 h) non tenuta: Sospensione delle lezioni per contenimento COVID-19.
- Lun 09/03/2020 10:30-12:30 (2:0 h) esercitazione: Esempi di programmazione in assembler su uno o più file.
- Gio 12/03/2020 09:30-11:30 (2:0 h) lezione: Esempi di programmazione in Assembler. Rappresentazione e scomposizione degli indirizzi. Allineamenti.
- Gio 12/03/2020 14:30-16:30 (2:0 h) lezione: Organizzazione della memoria centrale: accesso al byte, alla parola, lunga o quadrupla, endianess. Schema di collegamento della memoria al bus: indirizzo di riga e byte enable.
- Ven 13/03/2020 10:30-12:30 (2:0 h) lezione: Introduzione alla programmazione mista C++/Assembler. Rappresentazione dei tipi base e derivati. Regole di allineamento. Funzioni extern "C". Registri preservati e non.
- Lun 16/03/2020 10:30-12:30 (2:0 h) lezione: Corrispondenza C++/Assembler: record di attivazione; parametri di tipo valore e riferimento. Esempio di traduzione.
- Mar 17/03/2020 10:30-12:30 (2:0 h) esercitazione: Esempi di traduzione da C++ ad Assembler: funzioni con parametri passati per valore o per riferimento.
- Gio 19/03/2020 14:30-16:30 (2:0 h) lezione: Corrispondenza C++/Assembler: parametri di tipo array e struttura; funzioni che restituiscono strutture per valore.
- Ven 20/03/2020 10:30-12:30 (2:0 h) esercitazione: Corrispondenza C++/Assembler: esempi di funzioni che restiutiscono strutture per valore.
- Lun 23/03/2020 10:30-12:30 (2:0 h) lezione: Corrispondenza C++/Assembler: classi e funzioni membro; traduzione dei nomi con overloading.
- Mar 24/03/2020 10:30-12:30 (2:0 h) lezione: Memoria Cache: principi di località, rimpiazzamento, indirizzamento diretto/n-vie, write through/back.
- Gio 26/03/2020 09:30-11:30 (2:0 h) esercitazione: Svolgimento di testi d'esame su corrispondenza C++/Assembler.
- Gio 26/03/2020 14:30-16:30 (2:0 h) lezione: Funzionamento interno degli strumenti di sviluppo: preprocessore, assemblatore e collegatore. Tabelle dei simboli e di rilocazione. Il formato ELF.
- Ven 27/03/2020 10:30-12:30 (2:0 h) lezione: I/O: tastiera; video in modalità testo.
- Dom 29/03/2020 10:30-12:30 (2:0 h) lezione: I/O: interfaccia video in modalità grafica; l'interfaccia di conteggio e temporizzazzione.
- Mar 31/03/2020 10:30-12:30 (2:0 h) lezione: I/O: interfacce a blocchi; gli hard disk ATA.
- Gio 02/04/2020 14:30-16:30 (2:0 h) lezione: Introduzione al meccanismo delle interruzioni: il controllore APIC; la tabella IDT; esempio di programma che gestisce interruzioni da una singola sorgente.
- Ven 03/04/2020 10:30-12:30 (2:0 h) lezione: Aspetti avanzati del controllore APIC: riconoscimento sul fronte e sul livello; classi e sottoclassi di priorità; gestione annidata delle interruzioni.
- Lun 06/04/2020 10:30-12:30 (2:0 h) lezione: Il bus PCI: principali segnali e transazioni; lo spazio di configurazione.
- Mar 07/04/2020 10:30-12:30 (2:0 h) lezione: Interruzioni nel bus PCI: configurazione, condivisione, wired-or. PCI Bus Mastering, interazione con la cache e con le interruzioni.
- Gio 16/04/2020 14:30-16:30 (2:0 h) esercitazione: PCI Bus Mastering: l'esempio dell'hard disk con ponte PCI-ATA.
- Ven 17/04/2020 10:30-12:30 (2:0 h) lezione: Il meccanismo delle eccezioni: fault, trap e abort. Esempi: divisione per zero, debug e breakpoint.
- Lun 20/04/2020 10:30-12:30 (2:0 h) lezione: Protezione: introduzione e motivazioni; la protezione nel processore Intel/AMD a 64bit: CPL, IDT e gate, cambio pila, IOPL.
- Mar 21/04/2020 10:30-12:30 (2:0 h) esercitazione: Esempi di programmi eseguiti con e senza protezione nel processore.
- Gio 23/04/2020 14:30-16:30 (2:0 h) lezione: Introduzione al sistema multiprogrammato. Strutture dati associate ai processi. Creazione di un processo.
- Ven 24/04/2020 10:30-12:30 (2:0 h) lezione: Schema generale delle primitive di sistema.
- Lun 27/04/2020 10:30-12:30 (2:0 h) lezione: Problemi di interferenza tra processi. Atomicità, mutua esclusione sincronizzazione. Semafori e loro realizzazione.
- Mar 28/04/2020 10:30-12:30 (2:0 h) esercitazione: Svolgimento di testi d'esame.
- Gio 30/04/2020 14:30-16:30 (2:0 h) esercitazione: Svolgimento di testi d'esame.
- Lun 04/05/2020 10:30-12:30 (2:0 h) esercitazione: Svolgimento di testi d'esame.
- Mar 05/05/2020 10:30-12:30 (2:0 h) esercitazione: Svolgimento di testi d'esame.
- Gio 07/05/2020 14:30-16:30 (2:0 h) esercitazione: Svolgimento di testi d'esame.
- Lun 11/05/2020 10:30-12:30 (2:0 h) lezione: Introduzione alla memoria virtuale: problemi di protezione, rilocazione, frammentazione. La paginazione.
- Mar 12/05/2020 10:30-12:30 (2:0 h) lezione: Paginazione: esempio; tabelle multilivello.
- Gio 14/05/2020 14:30-16:30 (2:0 h) lezione: Paginazione: pagine di grandi dimensioni, memoria fisica in memoria virtuale, esempi di traduzione.
- Ven 15/05/2020 10:30-12:30 (2:0 h) lezione: Paginazione: organizzazione della memoria fisica e virtuale, il TLB.
- Lun 18/05/2020 10:30-12:30 (2:0 h) lezione: Introduzione alla paginazione su domanda: routine di page fault, gestione dei frame.
- Mar 19/05/2020 10:30-12:30 (2:0 h) lezione: Paginazione su domanda: interazione con tabelle multilivello e TLB. Introduzione all'implementazione nel nucleo.
- Gio 21/05/2020 14:30-16:30 (2:0 h) lezione: Implementazione della paginazione su domanda nel nucleo didattico.
- Ven 22/05/2020 10:30-12:30 (2:0 h) lezione: I/O nel sistema multiprogrammato: soluzione con driver e con handler più processo esterno.
- Lun 25/05/2020 10:30-12:30 (2:0 h) esercitazione: Interazione tra Bus matering e paginazione. Svolgimento di testi d'esame.
- Mar 26/05/2020 10:30-12:30 (2:0 h) esercitazione: Svolgimento di testi d'esame.
- Gio 28/05/2020 14:30-16:30 (2:0 h) lezione: La pipeline del processore. Alee strutturali, sui dati e sul controllo. Dipendenze sui dati, sui nomi e sul controllo.
- Ven 29/05/2020 10:30-12:30 (2:0 h) lezione: Esecuzione fuori ordine e speculativa: stazioni di prenotazione, riordino dei registri, Reorder Buffer.