Offerta Didattica

 

INFORMATICA

SISTEMI OPERATIVI

Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2017/2018
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
INF/01CaratterizzanteLiberaLibera
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
1280410464040
Legenda
CFU: 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 operativo

Learning Goals

Operating system architecture

Metodi didattici

Lezioni frontali. - Laboratorio di programmazione concorrente.

Teaching Methods

Lectures. - Concurrent programing laboratory

Prerequisiti

Nozioni di architetture dei calcolatori

Prerequisites

Basics on Computer architectures

Verifiche 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 programming

Programma 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

Elenco delle unità didattiche costituenti l'insegnamento

SISTEMI OPERATIVI - Modulo A

Docente: MARCO LUCIO SCARPA

Orario di Ricevimento - MARCO LUCIO SCARPA

GiornoOra inizioOra fineLuogo
Martedì 09:30 11:30Dipartimento di Ingegneria, Blocco B, piano 7.
Giovedì 09:30 11:30Dipartimento di Ingengeria, Blocco B, piano 7.
Note:

SISTEMI OPERATIVI - Modulo B

Docente: SANTA AGRESTE

Orario di Ricevimento - SANTA AGRESTE

GiornoOra inizioOra fineLuogo
Mercoledì 13:30 15:30
Note:
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti