Disciplina: Tecnologie di progettazione di sistemi informatici e di telecomunicazioni
Classe: 3° Informatica
Sezione: A
Docenti: Roberto Lulli – Alessandro Bastarelli
PROGRAMMA SVOLTO ANNO 2014/2015
Unità di apprendimento 1: l’informazione.
Contenuti :
Definizione di informazione. Tipologie degli alfabeti e dei sistemi di numerazione (additivi e
posizionali). Codici a lunghezza fissa e variabile. Quantità di informazione associata e/o trasportata
dai simboli. Codici ridondanti ed efficienza della codifica.
Trasmissione dati e le sue problematiche. Protocolli e disturbi.
Unità di apprendimento 2: la codifica delle informazioni nei sistemi informativi.
Contenuti :
Sistema di numerazione binario, conversione tra basi binario, ottale, esadecimale e decimale.
Ripasso dei sistemi di numerazione a base 12 ed a base 60. La misura del tempo.
Operazioni in binario: addizione e sottrazione, il metodo del complemento a due. Multipli di
numero in formato binario. Moltiplicazione e divisione di numeri binari.
La rappresentazione di numeri interi positivi e negativi e le relative quattro modalità principali.
Rappresentazione fixed point.
La rappresentazione di numeri reali floating point.
Lo standard IEEE-P754. Codifica del segno, dell’esponente e della mantissa. Codifica del NAN e
dell’infinito.
Rappresentazione dei codici alfabetici ed alfanumerici. Codici Baudot, ASCII a 7 ed 8 bit,
EBCDIC, Unicode.
Rappresentazione dei numeri in formato umano: codice BCD.
Rappresentazione delle informazioni nei trasduttori meccanici: codice Gray.
Unità di apprendimento 3: memorizzazione e trasmissione delle informazioni.
Contenuti :
La codifica di Huffmann e la compressione dati.
Correzione degli errori: la parità, il checksum, il CRC e gli algoritmi di hashing.
Distanza di Hamming, distanza minima tra i codici. La correzione degli errori con il codice di
Hamming.
Unità di apprendimento 4: generalità sui sistemi operativi.
Contenuti :
Il sistema operativo, la sua definizione e la sua struttura.
Il kernel, sistemi a kernel monolitico ed a kernel modulare.
Gli strati superiori al kernel, l’interfaccia grafica, la shell.
Bootstrap e POST.
Gli utenti e le loro classificazioni. Il superutente. I privilegi di ogni utente.
Evoluzione dei sistemi operativi: batch, buffering, spooling, multitasking.
Disciplina: Tecnologie di progettazione di sistemi informatici e di telecomunicazioni
Classe: 3° Informatica
Sezione: A
Docenti: Roberto Lulli – Alessandro Bastarelli
Unità di apprendimento 5: gestione dei processi.
Contenuti :
Programmi e processi. Gli stati di un processo. Politiche di scheduling dei processi: FCFS, SJF,
scheduling con priorità e starvation, Round Robin, MLFQ. Scheduler di Windows e Linux.
Sincronizzazione tra processi. Cooperazione e competizione sulle risorse, dead-lock, problema dei
filosofi mangiatori.
La gestione dei processori su sistemi Unix e Windows. PID e PPID.
Unità di apprendimento 6: gestione della memoria.
Contenuti :
La gestione della memoria in un sistema monoprogrammato e in un sistema multiprogrammato.
Gerarchia delle memorie e memoria virtuale.
Partizionamento della memoria. Schema fisso e variabile. Strategie first-fit, best-fir e worst-fit.
Paginazione e segmentazione.
Unità di apprendimento 6: gestione del file system.
Contenuti :
Concetto di file system. La gestione dell’allocazione dei file all’interno di una memoria di massa.
I vari tipi di file system e le loro politiche di gestione, filesystem ad indice centralizzato (FAT), ad
indice distribuito (NTFS, ext2), filesystem con Journal (ext3 e ext4).
Le tecnologie RAID 0, 1 e 5.
Unità di apprendimento 7: l’input/output.
Contenuti :
La gestione dell’input/output, device binari ed a caratteri.
Polling, interrupt, DMA e I/O preprocessing.
Unità di apprendimento 8: sistemi di sviluppo.
Contenuti :
Il concetto di piattaforma ed i criteri per la sua scelta.
Paradigmi di programmazione: paradigma procedurale, ad oggetti, logico e funzionale.
Classificazione dei linguaggi di programmazione: linguaggi compilati ed interpretati, linguaggi di
scripting, linguaggi di definizione di pagina, linguaggi di definizione di dati.
Analisi di un problema in riferimento al paradigma procedurale.
Unità di apprendimento 9: laboratorio.
Contenuti:
Le applicazioni di laboratorio sono state strettamente correlate agli argomenti teorici proposti agli
studenti.
Disciplina: Tecnologie di progettazione di sistemi informatici e di telecomunicazioni
Classe: 3° Informatica
Sezione: A
Docenti: Roberto Lulli – Alessandro Bastarelli
Il sistema operativo Linux, comandi base: ls, mkdir, rmdir , cp, cd, mv, cat , more ,chmod, pwd,
man. Gli editor di testo: ed, vi e nano. Dettagli sui comandi per lavorare con l'editor di testo vi.
Dettagli sulla struttura ad albero di un sistema operativo.
Il linguaggio script shell del sistema operativo Linux: metodo interattivo e programmato.
Istruzioni del linguaggio Script Shell: operatore if, comando test, comando exit, comando expr,
comando for, operatore while, operatore case.
Istruzioni per leggere e visualizzare i dati (read, echo). Lettura di dati dalla linea di comando. Il
file di comandi .profile.
Tecniche per la messa a punto dei programmi script shell. Tecniche di correzione degli errori in
un programma script shell ed inserimento di commenti. Esempi ed esercizi.
Il linguaggio HTML per la creazione di pagine web statiche. I tag (marcatori).
Il programma per interpretare i tag e produrre le visualizzazioni delle pagine (browser). I
commenti all'interno di un programma in linguaggio HTML. Struttura di un programma HTML.
Tag essenziali del linguaggio HTML: di intestazione (head), corpo della pagina (body), titolo
(title), testo in grassetto (B), testo in corsivo (I), testo sottolineato (U) br, apice e pedice (sup
sup), chiusura dei tag, impostazione dei colori, impostazione dei margini. Gli elenchi: disordinati
e ordinati. Elenchi di definizione. I collegamenti (links). Le tabelle.
Cenni al linguaggio Javascript e XML. Esempi ed esercizi.
Introduzione alle chiamate di sistema nel sistema operativo Linux (system call). Concetto di
processo. Comando ps per il controllo dei processi nel sistema operativo Linux. La funzione
fork() del linguaggio C.
Concetto di header file. Header file per la gestione di processi (unistd.h , sys/types.h). Le
funzioni getpit() e getppid(). Argomenti sulla linea di comando (cenni ai parametri argc e argv)
nel linguaggio C. Comandi ftp e telnet. Esempi ed esercizi.
Fermo 10/06/2015
I docenti:
Roberto Lulli
Alessandro Bastarelli