Corso di Sistemi per l’Elaborazione delle Informazioni Anno Accademico 2007-2008 Introduzione Elementi di Architettura degli Elaboratori Modello di Von Neumann Il processore Unità di calcolo e controllo Memoria e gerarchia di memoria L’intefaccia tra il processore e le periferiche (I/O) Componenti di un sistema di elaborazione Cos’è un Sistema Operativo Ambienti di elaborazione Processi e sincronizzazione dei processi Introduzione Concetto di processo Stato di un processo Concorrenza Principi di concorrenza nei S.O. Problema del Produttore-Consumatore Race Condition Problema della sezione critica Mutua esclusione Architetture di sincronizzazione Semafori Problemi tipici di sincronizzazione Regioni critiche Monitor Stallo dei processi Modello del sistema Caratterizzazione delle situazioni di stallo Metodi per la gestione delle situazioni di stallo Prevenire le situazioni di stallo Evitare le situazioni di stallo Rilevamento delle situazioni di stallo Ripristino da situazioni di stallo Protezione Ruolo della protezione Possibili protezioni Protezione della memoria Domini di protezione Associazione processo-dominio Un esempio: Unix Matrice d’accesso Realizzazione della matrice d’accesso Revoca dei diritti di accesso Protezione basata sul linguaggio Imposizione basata sul compilatore Problematiche di distribuzione delle abilitazioni Sicurezza Problema della sicurezza Autenticazione degli utenti Minacce a programmi Worm di Morris Firewall Rilevamento delle intrusioni Tripwire Principi di crittografia SSL Un esempio: Windows Classificazione della sicurezza dei sistemi di calcolo Thread, SMP e Microkernel Thread Il modello a thread Operazioni sui thread Sincronizzazione dei thread Thread a livello utente Thread a livello del kernel Modelli di programmazione multithread Chiamate del sistema fork ed exec Cancellazione Gestione dei segnali Gruppi di thread Dato specifici dei therad Thread nel S.O. Windows Thread nel S.O. Solaris Thread nel S.O. Linux Architetture sequenziali e parallele Tassonomia di Flynn SMP Progettazione si un S.O. multiprocessore Architettura del kernel Microkernel Vantaggi e svantaggi di un’architettura a microkernel Sistemi con processori multipli SMP UMA e NUMA Tipi di S.O. multiprocessore Multiprocessori master-slave Multiprocessori simmetrici Algoritmo ethernet di backoff esponenziale binario Spinning e switching Schedulazione dei multiprocessori Sistemi multicomputer Commutazione di pacchetto e commutazione di circuito Software di comunicazione di basso livello Software di comunicazione a livello utente RPC Schedulazione dei multicomputer Sistemi distribuiti: un accenno Case study: ipercubo Rapporti con altre architetture broadcasting, data sum, prefix sum, SIMD e MIMD shift Sistemi Distribuiti Definizione di sistema distribuito Un sistema distribuito organizzato come middleware Accessibilità delle risorse Trasparenza Apertura Scalabilità Distribuzione Replica Tipi di sistemi distribuiti: Sistemi di calcolo distribuiti Sistemi informativi distribuiti Sistemi distribuiti pervasivi Architettura di sistema Stili architetturali Architetture a livelli e basate sugli oggetti Architetture centrate sui dati Architetture basate sugli eventi Architetture centralizzate Architetture multilivello Architetture decentralizzate Sistemi peer-to-peer Superpeer Architetture ibride Sistemi Operativi multimediali File multimediali e qualità del servizio Sistemi operativi e multimedia Video on demand Schedulazione dei processi multimediali Paradigmi per file system multimediali Posizionamento dei file Meccanismi di cache Schedulazione del disco per i multimedia La stato della ricerca sui multimedia ATTIVITA’ DI LABORATORIO E PROGETTUALE TESTI DI RIFERIMENTO Silberschatz, Galvin, Gagne “Sistemi Operativi – Concetti ed esempi” (Settima edizione) Pearson/Addison Wesley Ed. A. S. Tanenbaum “I moderni Sistemi Operativi” Jackson Libri A. S. Tanenbaum, M. Van Steen “Sistemi Distribuiti” Pearson/Prentice Hall Ed. D. A. Patterson, J. L. Hennessy “Struttura e progetto dei calcolatori” Zanichelli S. Ranka, S. Sahni “Hypercube Algorithms” Springer Verlag Pub. T.H. Cormen, C. E. Leiserson, R. L. Rivest “Introduction to Algorithms” McGraw Hill