Offerta Didattica
INFORMATICA
SISTEMI OPERATIVI
Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2019/2020
Sedi: MESSINA
SSD | TAF | tipologia | frequenza | moduli |
---|---|---|---|---|
INF/01 | Caratterizzante | Libera | Libera | Sì |
CFU | CFU LEZ | CFU LAB | CFU ESE | ORE | ORE LEZ | ORE LAB | ORE ESE |
---|---|---|---|---|---|---|---|
12 | 8 | 0 | 4 | 96 | 48 | 0 | 48 |
LegendaCFU: n. crediti dell’insegnamento CFU LEZ: n. cfu di lezione in aula CFU LAB: n. cfu di laboratorio CFU ESE: n. cfu di esercitazione FREQUENZA:Libera/Obbligatoria MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli ORE: n. ore programmate ORE LEZ: n. ore programmate di lezione in aula ORE LAB: n. ore programmate di laboratorio ORE ESE: n. ore programmate di esercitazione SSD:sigla del settore scientifico disciplinare dell’insegnamento TAF:sigla della tipologia di attività formativa TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio
Obiettivi Formativi
Fornire una conoscenza di base ed avanzate del funzionamento dei moderni sistemi operativi, e di come, ai fini di garantire un ragionevole compromesso tra efficienza, sicurezza e facilità duso, vengono amministrate le risorse fondamentali della macchina su cui il sistema operativo è installato (il processore, la memoria principale, la memoria secondaria e i sistemi I/O) e sui sistemi distribuiti ed orientati alle reti.Learning Goals
Providing basic and advanced knowledge of modern operating systems, and how resources are administered on a single machine (processor, main memory, memory, etc.). and I/O systems) and on distributed and network-oriented systems, also considering issues related to efficiency, security and usability.Metodi didattici
Lezioni frontali, laboratorio di programmazione e laboratorio di amministrazione LinuxTeaching Methods
Lectures, concurrent programing laboratory, laboratory on Linux administrationPrerequisiti
Nozioni di architetture dei calcolatori, programmazione in linguaggio C.Prerequisites
Basics on computer architecture, C programmingVerifiche dell'apprendimento
Esercizio su programmazione concorrente, discussione sugli argomenti in programma, progetto pratico (opzionale).Assessment
Exercise on cuncurrent programming, discussion on topics specified in the program if the course, practical project (optional).Programma del Corso
Sistemi di I/O: Hardware di I/O, I/O memory mapped; tecniche per la gestione dei dispositivi di I/O: a controllo di programma, Polling, I/O interrupt driven e Direct Memory Access; interfaccia di I/O delle applicazioni, sottosistema I/O del kernel; Loadable Kernel Module (LKM), Linux I/O, directory /dev e /proc. Memoria di massa: struttura dei dispositivi di memorizzazione, scheduling dei dischi rigidi e di dispositivi NVM, rilevamento e correzione degli errori; connessione dei dispositivi di memorizzazione: host attached storage, network-attached storage, cloud storage, storage area network, storage array; mirroring, striping, strutture RAID, Multiple Device Administrator (mdadm) tool. Reti e sistemi distribuiti: sistemi operativi di rete e distribuiti; file system distribuiti: Network File System (NFS),Google File System (GFS) e Hadoop File System (HDFS). Sicurezza: CIA triad, minacce ed attacchi; minacce legate ai programmi: cavallo di troia, spyware, ransomware, back door, trap door, bomba logica, code injection, worm, virus; minacce legate ai sistemi ed alle reti: zombie, sniffing, spoofing, attacchi Denial of Service (DoS), man in the middle, session hijacking, port scanning; crittografia simmetrica ed asimmetrica, DES e RSA, firma digitale, identità digitale, Certification Authority, Hashing; autenticazione degli utenti: vulnerabilità delle password, one-time-pad, tecniche biometriche; misure di sicurezza: valutazione del rischio, protezione e prevenzione; autenticazione degli utenti e dei gruppi in linux, stat system call, Pluggable Authentication Modules (PAM), openSSL. Protezione: principio del minimo privilegio, principio della compartimentazione e principio della necessità di sapere; anelli di protezione, domini di protezione, matrice d'accesso. Macchine virtuali: trap and emulate, traduzione binaria, assistenza hardware; tipologie di virtualizzazione: hypervisor, paravirtualizzazione, virtualizzazione dell'ambiente di programmazione, emulazione, container. Linguaggi di scripting; scripting bash: she-bang, variabili, variabili d'ambiente, strutture di controllo, operatori relazionali; Pattern Matching e stream editor sed.Course Syllabus
I/O systems: I/O Hardware, I/O memory mapped; techniques for the management of I/O devices: programm control, Polling, I/O interrupt driven and Direct Memory Access; I/O interfaces of applications, I/O kernel subsystem; Loadable Kernel Module (LKM), Linux I/O, /dev and /proc directories. Mass memory: organization of storage devices, scheduling strategies for HD and NVM devices, detection and correction of errors; connection of storage devices: host attached storage, network attached storage, cloud storage, storage area network, storage array; mirroring, striping, RAID structures, Multiple Device Administrator (mdadm) tool. Networks and distributed systems: network and distributed operative systems; distributed file systems: Network File System (NFS),Google File System (GFS) and Hadoop File System (HDFS). Security: CIA triad, threats and attacks; threats from programming: Trojan Horse, spyware, ransomware, back door, trap door, logic bomb, code injection, worm, virus; threats coming from systems and networks: zombie, sniffing, spoofing, Denial of Service (DoS) attack, man in the middle, session hijacking, port scanning; simmetric ed asimmetric cryptography, DES e RSA, digital sign, digital identity, Certification Authority, Hashing; user autentication: password vulnerability, one-time-pad, biometric techniques; security measures: risk analysis, protection and prevenction; user and group authentication in Linux, stat system call, Pluggable Authentication Modules (PAM), openSSL. Protection: minimum privilege principle, compartmentalization principle and need-to-know principle ; protection rings, protection domains, access matrix. Virtual machines: trap and emulate, binary translation, hardware assistance; types of virtualization: hypervisor, paravirtualization, virtualization of the programming environment, emulation, container. Scripting languages; bash scripting: she-bang, variables, environment variables, control structures, relational operators; Pattern Matching and sed stream editor.Testi di riferimento: -A.Silberschatz, P.B.Galvin, G.Gagne, "Sistemi operativi. Concetti ed esempi", Pearson/Addison Wesley
-Tanenbaum, H. Bos, "i Moderni sistemi operativi, Pearson/Addison Wesley Mark Mitchell, Jeffrey Oldham, Alex Samul, "Advanced Linux Programming"
Esami: Elenco degli appelli
Elenco delle unità didattiche costituenti l'insegnamento
SISTEMI OPERATIVI - MODULO A
Docente: MARCO LUCIO SCARPA
Orario di Ricevimento - MARCO LUCIO SCARPA
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Martedì | 09:30 | 11:30 | Dipartimento di Ingegneria, Blocco B, piano 7. |
Giovedì | 09:30 | 11:30 | Dipartimento di Ingengeria, Blocco B, piano 7. |
Note:
SISTEMI OPERATIVI - MODULO B
Docente: MARIA FAZIO
Orario di Ricevimento - MARIA FAZIO
Dato non disponibile