CODICE 65938 ANNO ACCADEMICO 2018/2019 CFU 12 cfu anno 2 INGEGNERIA INFORMATICA 8719 (L-8) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Italiano SEDE GENOVA PERIODO Annuale MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso vuole mettere in grado lo studente di comprendere e descrivere caratteristiche, funzioni e interazioni delle principali componenti di un moderno calcolatore elettronico sia dal punto di vista architetturale che del sistema operativo. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Il corso nella prima parte presenta l'architettura di un calcolatore elettronico, le funzioni delle unit? hardware che lo compongono e le interazioni fra di loro; nella seconda parte descrive la struttura dei sistemi operativi, le funzioni dei moduli in cui sono organizzati, gli algoritmi e le strutture software che utilizzano. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Parte I – Architettura dei calcolatori Instruction Set Architecture: il caso del processore MIPS. Aritmetic Logic Unit. Architettura interna. Architettura del processore. Pipelining delle istruzioni. Conflitti sui dati e sui controlli. Data forwarding e hazard detection. Unità di controllo. Implementazione cablata. Implementazione microprogrammata Gerarchia di memoria. Memoria cache: principi di funzionamento, elementi di progettazione. Memorie a dischi magnetici. Sistemi RAID. Memorie a dischi ottici. Metodi e strumenti per la valutazione delle prestazioni. Parte II – Sistemi Operativi Concetti base, struttura monolitica e a microkernel. Macchine virtuali. Le chiamate a sistema e loro gestione. La gestione dei processi e dei thread. Lo scheduling della CPU. La comunicazione e sincronizzazione fra processi. Corse e regioni critiche. Mutua esclusione e polling attesa. Semafori e loro utilizzo per mutua esclusione e sincronizzazione. La gestione della memoria. Gestione paginata. Gestione segmentata. Il file system. Metodi di implementazione. Problematiche di protezione e condivisione. La gestione dell’input-output. Architettura DMA. Gestione dei dischi. Gestione clock. MODALITA' DIDATTICHE Lezioni ed esercitazioni PROGRAMMA/CONTENUTO Parte I – Architettura dei calcolatori Introduzione al corso. Definizione di architettura dei calcolatori e sua virtualizzazione e astrazione. Evoluzione e prestazioni dei calcolatori. Progettazione in funzione delle prestazioni. Instruction Set Architecture: il caso del processore MIPS. Caratteristiche delle istruzioni: elementi, rappresentazione, tipi, numero di indirizzi, progettazione del repertorio di istruzioni. Tipi di operandi. Tipi di operazioni. Modi di indirizzamento. Formati delle istruzioni. Supporto alle procedure. Interazioni con il Compilatore e ottimizzazioni del codice. Aritmetic Logic Unit. Architettura interna. Rappresentazioni dei numeri reali (IEEE 754). Somma moltiplicazione e divisione di numeri in virgola mobile. Il processore centrale. Architettura del processore. Organizzazione dei registri. Ciclo di esecuzione delle istruzioni. Pipelining delle istruzioni. Conflitti sui dati e sui controlli. Data forwarding e hazard detection. Unità di controllo. Fasi di una istruzione e microoperazioni. Controllo del processore: requisiti funzionali, segnali di controllo, organizzazione interna. Implementazione cablata. Implementazione microprogrammata: microistruzioni, unità di controllo microprogrammata. La memoria primaria. Gerarchia di memoria. Memoria cache: principi di funzionamento, elementi di progettazione (dimensione, funzioni di traduzione, algoritmi di sostituzione, politica di scrittura, dimensionamento delle linee, cache multiple). Tipi memoria (ROM, DRAM e SRAM) e loro organizzazione. Memorie a dischi magnetici: meccanismi di lettura e scrittura, organizzazione e formattazione dei dati, sistemi RAID. Memorie a dischi ottici. La valutazione delle prestazioni dei calcolatori. Metodi e strumenti per la valutazione delle prestazioni. Parametri misurabili e loro attendibilità. Interpretazione delle misure di prestazione. TESTI/BIBLIOGRAFIA Materiale didattica disponibile su Aulaweb. Bibliografia: Struttura e progetto dei calcolatori di D. Patterson, J. Hennessy, Zanichelli. DOCENTI E COMMISSIONI PIERPAOLO BAGLIETTO Ricevimento: su appuntamento da richiedere via email: p.baglietto@cipi.unige.it ALESSANDRO ARMANDO Commissione d'esame ALESSANDRO ARMANDO (Presidente) PIERPAOLO BAGLIETTO (Presidente) MASSIMO MARESCA ALESSIO MERLO LEZIONI Orari delle lezioni CALCOLATORI ELETTRONICI ESAMI MODALITA' D'ESAME Scritto, Orale MODALITA' DI ACCERTAMENTO capacità di risolvere semplici problemi di progettazione e di programmazione sugli argomenti del corso conoscenza degli argomenti trattati a lezione e capacità di analisi e discussione delle tematiche trattate Calendario appelli Data appello Orario Luogo Tipologia Note 14/01/2019 14:30 GENOVA Scritto 08/02/2019 14:30 GENOVA Scritto 14/06/2019 15:00 GENOVA Scritto 12/07/2019 15:00 GENOVA Scritto 13/09/2019 15:00 GENOVA Scritto 14/02/2020 14:30 GENOVA Scritto