Anno Accademico 2005/2006

Programma dell'insegnamento di

INFORMATICA II (architetture hardware e software) - 073132

Prof. Giuseppe POZZI

Il corso si articola in lezioni, esercitazioni e laboratori. Le esercitazioni, oltre ad illustrare aspetti applicativi di quanto esposto durante le lezioni, introducono anche argomenti non tratttati durante le lezioni stesse.
 

Obiettivi

Lo scopo della prima parte del corso, supportata dal laboratorio, e' quello di ampliare la conoscenza della programmazione che lo studente dovrebbe avere acquisito nel corso di Informatica 1 portandolo a scrivere programmi che operano in rete in ambiente client-server e che utilizzano i servizi messi a disposizione dal sistema operativo per la gestione dei processi, con particolare riferimento al parallelismo.
Il resto del corso e' dedicato a comprendere come e' realizzato un calcolatore seguendo un percorso di approfondimento “per livelli”, scendendo dal livello della programmazione, studiato in Informatica 1 e nella prima parte di questo corso, fino al livello delle porte logiche, che costituiscono l’astrazione del funzionamento dell’Hardware.
La distribuzione indicativa dell’attivita' didattica e' la seguente: ore di lezione = 56, ore di esercitazione = 40, ore di laboratorio = 12
 

Programma delle lezioni e delle esercitazioni

1. Programmazione di rete e di sistema
1.1 Programmazione di rete
1.2 Programmazione del file system

1.3 Programmazione dei processi

2. Struttura del Sistema Operativo
2.1 Caratteristiche dell'hardware
2.2 Il nucleo del sistema operativo
2.3 La memoria virtuale
2.4 Il file system
2.5 Ingresso/uscita e gestori delle periferiche
3. Il livello dei circuiti logici
3.1 Porte logiche fondamentali e algebra di Boole
3.2 Mintermini e realizzazione di funzioni combinatorie
3.3 Sintesi di funzioni logiche e mappe di Karnaugh
3.3 Principali circuiti combinatori e ALU
3.4 Funzionamento della memoria
4. Microarchitettura
4.1 Esempio di microarchitettura (con riferimenti alla architettura dei processori Motorola)
4.2 Tecniche di pipelining
4.3 Funzionamento delle memoria cache
5. Istruzioni macchina, assemblaggio e collegamento
5.1 Tipi di dato, formato delle istruzioni, modalita' di indirizzamento, ISA
5.2 La pila di sistema ed il processore Motorola 68000
5.3 La realizzazione di procedure ricorsive
5.4 Assemblaggio e collegamento
6. Sottosistemi funzionali, Bus, Ingresso/Uscita e Interrupt
6.1 Processore, memoria, periferiche
6.2 Funzionamento del bus
6.3 Ingresso/Uscita a livello assemblatore
6.4 Meccanismo di interrupt
 

Lezioni

Le lezioni sono raggruppate in unita' didattiche. Ogni unita' didattica tratta uno specifico argomento.
 

Esercitazioni

Le esercitazioni sono raggruppate in unita' didattiche. Ogni unita' didattica tratta uno specifico argomento.
Le esercitazioni sono tenute dall'ing. Antonio Taddeo (indmaAntonio).
 

Laboratori

L’attivita' di laboratorio e' organizzata in livelli.
Durante ogni sessione verra' richiesta la realizzazione di programmi progressivamente piu' difficili, il cui funzionamento verra' verificato automaticamente dal sistema (o, se necessario, dal responsabile di laboratorio).  I dettagli del meccanismo di funzionamento e valutazione del laboratorio verranno presentati a esercitazione. Qualora uno studente non superi il livello relativo alla sessione di laboratorio in corso, il livello non superato dovra' essere affrontato nelle sessioni sucessive.
Gli studenti saranno divisi in 3 squadre. Ogni studente e' assegnato ad una squadra e deve seguire i turni di laboratorio della propria squadra: in caso di motivata e documentata impossibilita' a partecipare ad una sessione, si tentera' di permetterne il recupero. La suddivisione in squadre e il calendario del laboratorio verranno comunicati all’inizio del corso.
I responsabili dei laboratori sono l'ing. Giovanni Bucci (interno tel. 7421) e l'ing. Mauro Bartesaghi (interno tel. 7407).
 

Modalita' d'esame

Laboratori

Ogni laboratorio prevede che ogni studente, identificato tramite propria login e password, realizzi autonomamente un  programma che dovra' funzionare su PC: ad ogni laboratorio e' associata una fase di verifica del corretto funzionamento del programma realizzato durante quel laboratorio. La frequenza dei laboratori sara' conseguibile solo contemporaneamente al periodo delle lezioni (marzo-giugno): non sono previste altre verifiche di laboratorio.
Chi non avra' superato con esito favorevole il livello minimo delle prove dei laboratori, non potra' sostenere l’esame e dovra' frequentare nuovamente il corso l’anno successivo.
Ogni studente ha diritto a partecipare a  6 sessioni di laboratorio, ognuno dalla durata di 2 ore. Le 6 sessioni globali sono divise in due cicli: le prime 4 sessioni sono di tipo "esercitazione", le ultime 2 di tipo "verifica". Nelle prime 4 sessioni e' possibile utilizzare appunti, manuali, libri. Nelle ultime 2 sessioni non e' consentito l'uso di appunti, manuali, libri: possono essere utilizzati manuali e documentazione in linea e verra' esercitato un controllo tipo esame.
Il punteggio ottenuto dallo studente nel laboratorio e' determinato dal massimo livello superato: il punteggio minimo di sufficienza (0 punti) e' conseguito superando i primi 4 problemi proposti nelle prime 4 sessioni di tipo "esercitazione".
Nelle ultime 2 sessioni di verifica vengono proposti 3 problemi per un valore totale di 8 punti: il superamento del primo problema porta ad acquisire 4 punti, mentre i successivi problemi portano ad acquisire 2 punti ciascuno.
Qualora uno studente non completi la soluzione di un problema, nella sessione successiva verra' riproposto lo stesso problema e la soluzione parziale potra' essere salvata.
 

Prove in itinere

Verranno svolte due prove in itinere con il seguente calendario:
Chi avra' conseguito votazione insufficiente in una o entrambe le prove, potra' recuperarla/e sostenendo il/i recuperi di quella/e prova/e. L'assenza ad una prova in itinere equivale ad insufficienza.
Vale, in quanto applicabile, il Regolamento del Politecnico di Milano.
La prima prova in itinere prevede una votazione massima di 12 punti: la seconda prova in itinere comporta una votazione massima di 13 punti punti. Pertanto:
12 punti (prima prova) + 13 punti (seconda prova) + 8 punti lab. = 33
Ogni prova in itinere e’ ritenuta sufficiente se sono stati conseguiti almeno 6.5 punti.
Tramite le due prove in itinere devono essere conseguiti almeno 15 punti. Pertanto:
15 punti prove in itinere + 3 punti lab. = 18
10 punti prove in itinere + 8 punti lab. = insufficiente
N.B. La visione degli elaborati delle prove in itinere, la prova orale e la registrazione dei voti avverranno a giugno. Chi intenda rifiutare l'eventuale voto conseguito tramite le prove in itinere e sostenere i recuperi, e' tenuto ad informarne il docente presenziando alla visione degli elaborati nello stesso giorno. Vale, in quanto applicabile, il regolamento del Politecnico di Milano.
 

Esame finale

L’esame finale vertera' sulla discussione delle prove in itinere, delle prove di laboratorio e su una prova orale.
In occasione della visione degli elaborati delle prove in itinere, che si terra' dopo la seconda prova in itinere, verranno tenuti gli orali degli studenti la cui votazione, dopo le prove in itinere e di laboratorio, risulti sufficiente. Chi non si presenta alla visione degli elaborati delle prove in itinere ed al successivo orale, perde il voto acquisito durante le prove stesse.
Vale, in quanto applicabile, il Regolamento del Politecnico di Milano.
 

Recuperi

I recuperi si terranno a luglio, a settembre e a febbraio. Chi non si presenta alla visione dell'elaborato della prova di recupero ed al successivo orale, perde il voto acquisito durante la prova stessa.
Chi si presenta ad una prova di recupero per migliorare il voto già sufficiente di una prova precedente, perde il voto precedentemente acquisito.
Vale, in quanto applicabile, il Regolamento del Politecnico di Milano.
 
 

Registrazione dei voti

La registrazione dei voti avverra' in occasione delle prove orali, le quali si terranno successivamente alla seconda prova in itinere o successivamente alle prove di recupero.
I voti sufficienti acquisiti tramite le prove in itinere potranno essere registrati esclusivamente in occasione della prima registrazione e non verranno mantenuti validi successivamente.
Chi si presenta ad una prova di recupero per migliorare il voto già sufficiente di una prova precedente, perde quel voto precedentemente acquisito.
 
 

Materiale in linea

Trasparenze dalle lezioni (in formato .pdf)

Introduzione al corso: file (08-03-06)
Programmazione di rete e di sistema: file1 (08-03-06), file2 (08-03-06), file3 (16-03-03)
Caratteristiche dell'hardware: file (16-03-03)
Il nucleo del s.o.: file (16-03-03)
La memoria virtuale: file (16-03-03)
Il file system: file (24-03-03)
I device driver: file (01-04-04)
Introduzione all'architettura strutturata dei calcolatori: file (24-03-03)
Struttura dei calcolatori: file (31-03-03)
Livello logico: file1 (16-04-03), file2 (16-04-03), addendum al file2 (20-04-04), file3 (12-05-03)
La memoria cache: file (13-05-03)
Hardware per l'I/O: file (18-06-03)
Il linguaggio assemblatore ed il processore Motorola 68000: l'argomento e' trattato dal testo di Hamacher (vedasi riferimento piu' sotto) nei capitoli 4, 5. Un emulatore in ambiente Windows del processore Motorola 68000 e' presente al sito EASy68K.
La struttura del processore: l'argomento e' trattato dal testo di Hamacher (vedasi riferimento piu' sotto) nei capitoli 8, 9.

Temi d'esame del corrente anno accademico

Prima prova in itinere del 3 maggio 2006: file .pdf
Seconda prova in itinere del 26 giugno 2006: file .pdf
Recuperi del 17 luglio 2006: parte 1 (file .pdf), parte 2 (file .pdf)
Recuperi del 12 settembre 2006: parte 1 (file .pdf), parte 2 (file .pdf)
Recuperi del 12 febbraio 2007: parte 1 (file .pdf), parte 2 (file .pdf)

Trasparenze dalle esercitazioni

Il materiale in linea dalle esercitazioni e delle prove d'esame del corrente anno accademico e' presente alla seguente pagina.
 

Temi d'esame dei precedenti anni accademici

Il materiale in linea dei temi delle prove d'esame dei precedenti anni accademici e' presente alla seguente pagina.
Attenzione: a partire dall'A.A. 2004-2005 alcuni argomenti dell'insegnamento sono stati modificati. Per esempio, il processore di riferimento non e' piu' il Mic-1 (e le sue estensioni Mic-2, Mic-3) e il linguaggio assembler di riferimento non e' piu' l' I-JVM.
 

Testi

G. Pelagatti: Informatica II - Sistema operativo Linux e TCP/IP, Esculapio, Bologna, 2002 (nuova edizione)

C. Bolchini, D. Sciuto: Informatica II - Sistemi Digitali, Esculapio, Bologna, 2002 (nuova edizione)

C. Hamacher, Z. Vranesic, S. Zaky: Computer Organization, McGraw-Hill, 2004 (fifth edition).
Edizione in lingua italiana: Introduzione all'architettura dei calcolatori. McGraw-Hill, 2005, traduzione a cura di Luca Breveglieri.

Altri riferimenti

Appunti del corso di Informatica 2, appunti da fotocopiare
Per approfondimenti (ed ulteriori informazioni sul linguaggio assembler Intel 8086):
Architettura e organizzazione dei calcolatori elettronici  - fondamenti, Giacomo Bucci, Mc-Graw-Hill, ISBN: 88 386 6217-7

 

Contatti

Prima di contattare il docente, e' obbligatorio verificare che l'informazione richiesta non sia presente sul sito WEB dell'insegnamento (la pagina corrente) o nella bacheca elettronica del sito WEB del Polo di Como.
Pertanto e' vietato:
subissare di richieste, telefonate, messagi di e-mail il docente – ove non strettamente necessario;
mandare messaggi che non rispettino i criteri di netiquette;
invocare richieste di gestione eccezionale del proprio caso.


Il docente puo' essere contattato per posta elettronica (indma). Si ricorda di indicare nell'oggetto di ogni messaggio il proprio cognome, nome, numero di matricola ed insegnamento cui ci si riferisce: non verra' data risposta a messaggi il cui mittente non abbia rispettato i sopra citati criteri.
Il docente puo' essere contattato telefonicamente all'interno 7332. Chiamando da rete pubblica, il numero telefonico e' 031-332.7332 oppure 02-2399.7332. Il docente puo' anche essere contattato telefonicamente al numero 333-5477997.



ritornaritorna al livello precedente