Le slide del corso sono disponibili nella seguente cartella drive
Il materiale delle esercitazioni è disponibile nella seguente cartella drive
Materiale didattico aggiuntivo si trova nella seguente cartella drive
Lo studente interessato ad approfondire la materia può consultare i seguenti libri di testo (si consiglia l'edizione più recente):
[1] W. Stallings: "Operating Systems: Internals and Design Principles" (nineth edition), Pearson
[2] G. Coulouris, J. Dollimore, T. Kindberg, G. Blair: "Distributed Systems: Concepts and Design" (fifth edition), Pearson
[3] W. Stallings: "Cryptography and Network Security: Principles and Practice" (seventh edition), Pearson
27 settembre 2019:
Introduzione al corso
Processi e Thread
Richiami su processi
Thread
Libreria Ptrhead
4 ottobre 2019:
Processi e thread
Symmetric multiprocessing
Concorrenza
Mutua Esclusione
Semafori
Monitor
Message passing
11 ottobre 2019:
Concorrenza
Problema del Produttore/Consumatore
Problema lettori/scrittori con semafori
Architettura di rete
Tipologie di rete
Modello OSI
Modello TCP/IP
Protocollo IP
18 ottobre 2019:
Architettura di rete
Address resolution protocol
Protocolli TCP e UDP
Domain Name System
Internet of Things
Componenti IoT
Struttura di reti IoT
Sistemi Operativi IoT
Applicazioni IoT
Content Centric Networking
25 ottobre 2019:
Network e Socket
Richiami di rete
Applicazioni TCP/IP
Applicazioni UDP/IP
Berkeley Sockets
Windows Sockets
Network adapters
8 novembre 2019:
Concorrenza: Problemi di Deadlock e Starvation
Deadlock
Condizioni per il deadlock
Deadlock prevention
Deadlock avoidance
Deadlock detection
Problema dei cinque filosofi
Approcci software per la mutua esclusione e no deadlock
Algoritmo di Dekker
Algoritmo di Dijkstra
15 novembre 2019:
Sistemi distribuiti
Applicazioni
Vantaggi, svantaggi e goal
Esempi di sistemi distribuiti
Problemi di progettazione
Modelli di sistemi distribuiti
Client Server Computing
Middleware
22 novembre 2019:
Sistemi distribuiti
Service Oriented Architecture
Message Passing
Remote Procedure Call
Clusters
Inter-Process Communication
Principi di IPC
Memoria condivisa
Pipe
FIFO
6 dicembre 2019:
Approcci software per la mutua esclusione e no deadlock
Algoritmo del panettiere
Sicurezza
Definizione
Triade CIA
Attacchi cyber
tipi di attacchi
tipi di malware
20 dicembre 2019:
Sicurezza
Denial of service
Basi di Crittografia
Autenticazione
Access control
Intrusion detection
Firewall
Antivirus
Buffer Overflow
1 ottobre 2019:
Processi e Thread (primitive in C)
Confronto tempi di creazione processi e thread
Esercizio: sfruttare caratteristiche di processi e thread per evidenziare maggiormente i vantaggi dell'uso dei thread
Esercizio: risolvere problemi di concorrenza con i thread senza ricorrere a appositi meccanismi di sincronizzazione
8 ottobre 2019:
Concorrenza: riepilogo e semafori in c
Esercizio: Accesso sezione critica in mutua esclusione tra thread
Esercizio: Accesso in mutua esclusione a N risorse tra thread
22 ottobre 2019:
Gestione degli errori
Produttore - Consumatore
Esercizio: Produttore/Consumatore tra thread
Sincronizzazione inter-processo e semafori named
Esercizio: Accesso in mutua esclusione a N risorse tra processi
Esercizio: Produttore/Consumatore tra processi con buffer su file
29 ottobre 2019:
Riepilogo processi, thread e semafori
Esercizio di riepilogo
5 novembre 2019:
Input/output su Socket
Esercizio: letture e scritture su file (copiare un file)
Esercizio: Invio e Ricezione messaggi su socket (TimeServer)
12 novembre 2019:
Applicazioni Client/Server con Socket
Esercizio: Sviluppo di client e server single-thread (EchoServer)
19 novembre 2019:
Server multi-process/thread
Esercizio : Sviluppo di EchoServer Multi-process
Esercizio : Sviluppo di EchoServer Multi-thread
26 novembre 2019:
Shared memory
Esercizio : Sviluppo di applicazione modulare requester - worker
Esercizio : Produttore/consumatore tra processi con shared memory
Esercizio : Produttore/consumatore tra processi con shared memory senza semaforo
3 dicembre 2019:
Pipe e FIFO
Esercizio : Comunicazione unidirezionale di processi via pipe con sincronizzazione
Esercizio : EchoProcess su FIFO
Esercizio : Produttore/Consumatore
10 dicembre 2019:
Simulazione di esame
Esercizio : Comunicazione unidirezionale di processi via pipe con sincronizzazione
Esercizio : EchoProcess su FIFO
Esercizio : Produttore/Consumatore
17 dicembre 2019:
Esercizio: Implementazione di un server multi-servizio