Anno Accademico 2002/2003

Programma dell'insegnamento di

INFORMATICA II - 060013

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 per la macchina JVM
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 e la macchina JVM
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. Andrea Maurino (interno tel. 7373) e dall'ing. Luca Negri.
 

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 quattro squadre. 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, realzzi 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.
La sufficienza nelle prove dei laboratori sarà conseguita riportando almeno 3 punti sui 9 totali.
 

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 in itinere a luglio ed evenutalmente a settembre. L'assenza ingiustificata ad una prova in itinere equivale ad insufficienza grave.
Vale, in quanto applicabile, il Regolamento del Politecnico di Milano.
Ogni prova in itinere porta ad un punteggio massimo di 12 punti. Pertanto:
12 punti x 2 prove + 9 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
9 punti prove in itinere + 9 punti lab. = insufficiente
N.B. La visione degli elaborati delle prove in itinere, la prova orale e la registrazione dei voti avverranno il giorno 30 giugno alle ore 9:00 in aula V07. 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 del 30 giugno. 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 ha conseguito votazione sufficiente si vedra' assegnato d'ufficio lo stesso voto conseguito.
Vale, in quanto applicabile, il Regolamento del Politecnico di Milano.
 

Recuperi

I recuperi si terranno a luglio ed evenutalmente a settembre. Ogni studente potra' sostenere un solo recupero di ogni insegnamento durante il mese di settembre. Vale, in quanto applicabile, il Regolamento del Politecnico di Milano.
Chi non si presenta alla visione degli elaborati delle prove di recupero ed ha conseguito votazione sufficiente si vedra' assegnato d'ufficio lo stesso voto conseguito.
Chi si presenta ad una prova di recupero per migliorare il voto già sufficiente di una prova precedente, perde il voto precedentemente acquisito.
 
 

Registrazione dei voti

La registrazione dei voti avverra' successivamente alla seconda prova in itinere, successivamente alla prova di recupero di luglio, ed, esclusivamente per chi dovra' ancora recuperare a settembre, successivamente alla prova di recupero di settembre.
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 (24-02-03)
Programmazione di rete e di sistema: file1 (24-02-03), file2 (25-02-03), 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 (24-03-03)
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), file3 (12-05-03)
Microarchitettura: file1 (13-05-03), file2 (13-05-03), file3 (13-05-03), file4 (13-05-03), file5 (13-05-03), file6 (13-05-03)
La memoria cache: file (13-05-03)
Hardware per l'I/O: file (18-06-03)

Temi d'esame del corrente anno accademico

Prima prova in itinere del 5 maggio 2003: file .pdf
Seconda prova in itinere 23 giugno 2003: file .pdf
Recuperi del 14 luglio 2003: parte 1 (file .pdf), parte 2 (file .pdf)
Recuperi del settembre 2003: 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.
 
 

Testi

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

A. S. Tanenbaum: Architettura dei computer - un approccio strutturato, 4^ edizione, Utet Libreria, Torino 2000.

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

Altri riferimenti

Appunti del corso di Informatica 2, appunti da fotocopiare
 

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 sul 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.
È obbligatorio:
prima di fare, pensare: “cosa succederebbe se tutti gli studenti facessero/chiedessero quello che sto facendo/chiedendo?”


Il docente puo' essere contattato per posta elettronica (giuseppe.pozzi@polimi.it). Si ricorda di indicare in 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 sia noto.
Il docente puo' anche essere contattato telefonicamente all'interno 7332. Chiamando da rete pubblica, il numero telefonico e' 031-332.7332 oppure 02-2399.7332.



ritorna ritorna al livello precedente