Salta al contenuto principale
CODICE 80300
ANNO ACCADEMICO 2018/2019
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

Prendendo spunto dalla convergenza tra le tecnologie di elaborazione e di trasmissione delle informazioni, il corso vuole fornire una visione d'insieme sulla progettazione, realizzazione e gestione efficiente e sicura di un sistema operativo di rete, analizzando inoltre le principali problematiche legate alla trasmissione dei dati in una moderna rete di calcolatori.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Prendendo spunto dalla convergenza tra le tecnologie di elaborazione e di trasmissione delle informazioni, il corso vuole fornire una visione d'insieme delle principali problematiche di progettazione, realizzazione e gestione efficiente e sicura di un moderno sistema distribuito di rete. Dopo una breve introduzione alle tecniche di misurazione quantitativa delle risorse impiegate da un programma in fase di esecuzione e all'analisi operazionale (non statistica) dei sistemi, si prosegue lungo il percorso iniziato nel corso di Sistemi di elaborazione dell'informazione, presentando i problemi fondamentali e le principali tecniche, realizzate a livello di Sistema Operativo, relative ai seguenti aspetti dei moderni sistemi di elaborazione: esecuzione multitasking; supporto alla concorrenza, cooperazione e sincronizzazione fra thread e fra processi; gestione dell'I/O; gestione dei file; virtualizzazione di calcolatori. Verrà fornito inoltre un quadro di insieme delle principali problematiche della trasmissione dei dati e dell'architettura e dei meccanismi di una moderna rete di calcolatori basata sulla suite TCP/IP, secondo un modello a livelli di astrazione successivi, partendo dal livello applicazione (RPC, Socket, FTP, HTTP, DNS, SMTP, POP, ecc.) e scendendo fino al livello data link (Ethernet). Oltre alla mera descrizione dei protocolli, si enfatizzano le caratteristiche di affidabilità, sicurezza, e maggiore o minore facilità di gestione che derivano dalle varie scelte di progetto dei protocolli stessi.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Obiettivo del corso è far acquisire agli studenti la consapevolezza di come funziona un sistema operativo e come comunicano gli elaboratori in rete, formando professionisti che possano gestire un moderno sistema di elaborazione, intervenendo efficacemente in caso di problemi.

MODALITA' DIDATTICHE

Mista: Le lezioni sono svolte in forma tradizionale in aula, mentre le esercitazioni di laboratorio (a consegna obbligatoria) sono gestite mediante Aulaweb.

PROGRAMMA/CONTENUTO

l programma del corso è molto vasto, si elencano qui alcuni degli argomenti affrontati a lezion (l'ordine degli argomenti non corrisponde necessariamente alla cronologia delle lezioni).
 

Parte di sistemi di elaborazione
- panoramica storica e introduzione ai moderni sistemi operativi, basandosi sugli argomenti visti a "Sistemi di Elaborazione dell'Informazione"
- processi e thread; scheduling
- gestione e virtualizzazione della memoria
- file system
- input/output
- protezione e sicurezza.
Le tematiche di sincronizzazione e i problemi di deadlock, tipici argomenti dei corsi di sistemi operativi, verranno solo accennati perché trattati approfonditamente nel corso "Programmazione Concorrente e Algoritmi Distribuiti".

Parte di trasmissione delle informazioni
- panoramica sulle tecnologie di rete e sull'internetworking
- stratificazione dei protocolli
- qualità di servizio e caratteristiche di sicurezza dei protocolli
- lo stack di Internet, dal livello applicativo a quello di rete locale
- il Web e il protocollo HTTP
- trasferimento di file
- posta elettronica
- directory service di Internet, il protocollo DNS
- protocolli di trasporto: UDP e TCP
- protocollo IP
- livello Link e reti locali.

Sono previste delle esercitazioni, che devono essere consegnate durante il semestre e vengono valutate in sede di esame.

TESTI/BIBLIOGRAFIA

Libri utili (non indispensabili)
Per la parte di sistemi sono sostanzialmente equivalenti, e ne esista una versione italiana:
- Modern Operating Systems, 4a ed., di Andrew S. Tanenbaum e Herbert Bos
- Operating System Concepts, 9a ed., di Avi Silberschatz, Peter Baer Galvin e Greg Gagne
Inoltre:
The Linux Command Line (gratuito), di William Shotts; scaricabile da: http://linuxcommand.org/tlcl.php
Per approfondimenti:
- What Every Superuser Should Know, 2a ed., di Brian Ward
- Operating Systems: Internals and Design Principles, 8a ed., di William Stallings
- Advanced Programming in the UNIX Environment, 3a ed., di W. Richard Stevens e Stephen A. Rago
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook, di Michael Kerrisk

Per la parte di reti:
- Computer Networking, a Top-Down Approach di James F. Kurose e Keith W. Ross
 

DOCENTI E COMMISSIONI

Commissione d'esame

GIOVANNI CHIOLA (Presidente)

DAVIDE ANCONA

GIOVANNI LAGORIO

FRANCESCO MASULLI

LEZIONI

ESAMI

MODALITA' D'ESAME

Esame orale dopo prova scritta di autovalutazione. L'esame orale verte sulla correzione degli esercizi di laboratorio consegnati e su tutti gli argomenti teorici visti a lezione.

Calendario appelli

Data appello Orario Luogo Tipologia Note
15/01/2019 10:00 GENOVA Scritto
06/02/2019 10:00 GENOVA Scritto
07/06/2019 10:00 GENOVA Scritto
04/07/2019 10:00 GENOVA Scritto
02/09/2019 10:00 GENOVA Scritto