Disciplina: Tecnologie di progettazione di sistemi informatici e di telecomunicazioni Classe: 3° Informatica Sezione: C Docenti: Maria Rita Di Berardini - 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. 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. Rappresentazione dei codici alfabetici ed alfanumerici. Codici 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. 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 funzionalità dei sistemi operativi. 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. Sistemi operativi real time e embedded. Disciplina: Tecnologie di progettazione di sistemi informatici e di telecomunicazioni Classe: 3° Informatica Sezione: C Docenti: Maria Rita Di Berardini - Alessandro Bastarelli Unità di apprendimento 5: gestione dei processi. Contenuti : Programmi e processi. Gli stati di un processo. Diagramma degli stati dei processi. Politiche di scheduling dei processi: FCFS, SJF, SRTF, 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 mono-programmato e in un sistema multiprogrammato. Gerarchia delle memorie e memoria virtuale. Partizionamento della memoria. Gestione della memoria con partizioni fisse e variabili. Strategie di allocazione della memoria: first-fit, best-fir e worst-fit. Paginazione e segmentazione.MMU. Unità di apprendimento 7: laboratorio. Contenuti: Le applicazioni di laboratorio sono state strettamente correlate agli argomenti teorici proposti agli studenti. 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. 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: Maria Rita Di Berardini Alessandro Bastarelli