Anno Accademico 2002/2003
Programma dell'insegnamento di
INFORMATICA II - 060013
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:
-
lunedi' 05 maggio, con inizio alle ore 8:15.
-
cognomi A - K in aula VS7;
-
cognomi L - Z in aula magna.
-
lunedi' 23 giugno, con inizio alle ore 8:15.
-
cognomi A - K in aula magna;
-
cognomi L - Z in aula VS7.
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 al livello precedente