Offerta Didattica
INFORMATICA
SISTEMI OPERATIVI
Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2017/2018
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 | 104 | 64 | 0 | 40 |
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
Architettura di un sistema operativoLearning Goals
Operating system architectureMetodi didattici
Lezioni frontali. - Laboratorio di programmazione concorrente.Teaching Methods
Lectures. - Concurrent programing laboratoryPrerequisiti
Nozioni di architetture dei calcolatoriPrerequisites
Basics on Computer architecturesVerifiche dell'apprendimento
Discussione sugli argomenti in programma. - Esercizio di programmazione concorrente.Assessment
Discussion on some specific topics in the area of concurrent programming and operating systems design. - Exercise on cuncurrent programmingProgramma del Corso
Generalità sui Sistemi Operativi: sistemi monolitici, sistemi a livelli, macchine virtuali, sistemi distribuiti client-server. Definizione di Processo, Memoria Virtuale, File System, System Call, Kernel, Shell. * Storia dei Sistemi Operativi: dalla mono alla multiprogrammazione; il concetto di multitasking. * Modello di interazione tra CPU e dispositivi. Sistema di interruzione. Interruzioni e multiprogrammazione. Processo di interruzione. Modi di funzionamento della CPU. * Gestione dei Processi: modello di un processo, vita di un processo, meccanismi di controllo. La Schedulazione a breve termine (di CPU), la Schedulazione a medio termine (swapping), La Schedulazione a lungo termine (dei processi): algoritmi di schedulazione (senza prelazione, con prelazione, Round Robin, con priorità, code multiple, SJF). * La Mutua Esclusione: corse critiche, mutua esclusione, sospensione e risveglio, stallo, meccanismi di condivisione della memoria e scambio messaggi. Meccanismi di sincronizzazione tra processi: semafori. La Comunicazione Inter-Processo (IPC) e i suoi problemi: esempio del produttore-consumatore. La Gestione dei Processi e IPC in ambiente distribuito (accenni). I Threads: definizione, sistemi operativi multi-threaded, rapporto tra threads e processi. * Blocco critico (deadlock). Condizioni e soluzioni. * Gestione della Memoria: partizionamento fisso, rilocazione e protezione; gestore con swapping: multiprogrammazione a partizioni variabili, squeeze (compattamento). Memoria Virtuale: definizione di spazio di indirizzamento virtuale, MMU, overlay e paginazione, Virtual Page Table a uno o più livelli. Segmentazione. * Gestione dei File: file system (struttura gerarchica in file e directory, tipi di file system). Implementazione del file system Unix: proprietà e modi di accesso, descrittori di file, protezione e sicurezza del file system; file speciali a blocchi e caratteri. * Gestione dell'Input/Output. Meccanismo delle Interruzioni. Driver delle interruzioni, driver dei dispositivi (device driver a blocchi o caratteri). Sottosistema di I/O del kernel Unix. Laboratorio * La gestione dei processi. * La libreria pthread. Gestione dei thread, mutex, semafori. * La comunicazione tra processi. * Esercitazioni su programmazione concorrente. * Protezione: Scopi di protezione principi - Controllo di accesso alle risorse - Meccanismi (Domini ACL, Capability, sistemi fidati, tcb, modelli formali di sistemi sicuri) sicurezza multilivello - canali segreti * Sicurezza - Ambiente - Sicurezza dei so- Basi della crittografia (crittografia a chiave simmetrica, principio di shannon, DES, cifratura a chiave asimmetrica, RSA, Sicurezza dell’RSA, funzioni di autenticazione, funzioni di hash, firme digitali) * Autenticazione (password, tramite oggetto fisico, biometrica) - Introduzione alla biometria - Sfruttare gli errori software (attacchi di tipo buffer overflow, attacchi di tipo format string, dangling pointer, attacchi di deferenziazione di un puntatore null, attacchi di tipo commando injection) - Attacchi dall'interno (bombe logiche, trap door, spoofing del login) - Malware (cavalli di troia, virus, worm, spyware, rootkit) - Difese (firewall, antivirus, firma del codice, jailing, rilevamento delle istruzioni basato su un modello) Sistemi a più processori - * Multiprocessori: hw, tipi di so, sincronizzazione dei multiprocessori, scheduling dei multiprocessori * Multicomputer: hw, software di comunicazione di basso livello e a livello utente, chiamata di procedura remota, memoria condivisa distribuita, scheduling, bilanciamento del carico * Sistemi distribuiti: hw, protocolli e servizi di rete, middleware basato sui documenti, filesystem e coordinazione * Linux (processi, gestione della memoria, I/O, filesystem, sicurezza)Course Syllabus
Overview on Operating Systems: architectures, virtual machines, distributed systems, client-server paradigm. Process definition, virtual memory, File System, System Call, Kernel, Shell. * Evolution of Operating Sysstems: from mono-programming to multi-programming; basics on multitasking. * CPU - devices interaction models. Interrupts. Interrupts and multi-programming. CPU running modes. Process Management: process model, process control mechanisms. Short term scheduling, medium term scheduling, long term scheduling: scheduling algorithms. *Process synchronization: the critical section problem, the mutual exclusion, sleep and wake up, deadlock, shared memory, message exchange. Semaphores. Threads: multithreading models, threads and processes. Memory management: contiguous memory allocation, memory relocation and protection; swapping; variable partitions allocation, squeeze. Pagination. Segmentation. Virtual memory: demand paging, page replacement, thrashing. * Storage management: file-system interface, file system implementation: file system structure, directory implementation, allocation methods, free space management. * Process management. * The pthread library. Thread management, mutex, semaphores. * Interprocess communication. * Concurrent programming. - Protection and security: * Protection - Goal of protection - Principles - Domain - Access Matrix and implementation - Access control - Revocation of access rights - capability-based systems * Security - program threats - system and networks threats - cryptography as a security tools (secret-key cryptography, DES public-key cryptography, RSA, one-way function, digital signatures, trusted platform modules) - user authentication (using password, physical object or biometrics) - Biometrics introduction - Exploiting software (buffer overflow attacks, format string attacks, dangling pointers, null pointer dereference attacks, command injection attacks) - insider attacks (logic bombs, backdoors, login spoofing)- malwave (trojan horses, viruses worms spyware, rootkits), defenses (firewalls, antivirus, code signing, jailing, model-based intrusion detection, encapsulating mobile code) - Multiple processor systems * Multiprocessors: hardware, operating system types, sinchronisation, scheduling * Multicomputers: hardware, low and user-level communication software, remote procedure call, distributed shared memory, scheduling, load balancing * Distributed systems: network hardware, services and protocols, document-based middleware, file-system based middleware, object based middleware, coordination based middleware - case study: Linux (processes, memory management, I/O, filesystem, security)Testi di riferimento: A.Silberschatz, P.B.Galvin, G.Gagne, "Sistemi operativi. Concetti ed esempi", Pearson/Addison Wesley D.Giacomini, "Appunti di Linux", (sito web). Mark Mitchell, Jeffrey Oldham, Alex Samul, "Advanced Linux Programming" (sito web) A. S. Tanenbaum, H. Bos, "i Moderni sistemi operativi, Pearson/Addison Wesley
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: SANTA AGRESTE
Orario di Ricevimento - SANTA AGRESTE
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Mercoledì | 13:30 | 15:30 |
Note: