Salta al contenuto principale
CODICE 80300
ANNO ACCADEMICO 2019/2020
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

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

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/2020 10:00 GENOVA Scritto
05/02/2020 10:00 GENOVA Scritto
10/06/2020 10:00 GENOVA Scritto
02/07/2020 10:00 GENOVA Scritto
31/08/2020 10:00 GENOVA Scritto