Sistema Operativo Definizione E’ un insieme di programmi che gestiscono l’hardware del computer Fornisce una base per sviluppare i programmi applicativi Agisce da intermediario tra l’utente e l’hardware del computer Elaborazione dell’informazione utente utente utente ……….. CompilatoreAssemblatore Editore Testi utente Gestione DB Programmi di Sistema ed Applicativi Sistema Operativo Hardware S.O.:Punto di Vista Utente Personal Computer Facilitare l’uso del Computer Non preoccuparsi dell’utilizzo delle risorse Prestazioni Mainframe (più utenti) Condivisione e Scambio Informazioni Massimizzare utilizzo delle risorse (CPU, I/O, Memoria) S.O.:Punto di Vista Utente Workstation Utilizzare risorse locali e condivise Compromesso ottimale fra l’uso delle risorse locali e quelle in rete Palmari Computer Embedded S.O.:Punto di Vista del Computer Distributore di Risorse spesso in conflitto Programma di Controllo (Protezione) Summary Un computer è un risolutore di problemi Il Sistema Operativo rende facile l’utilizzo dell’hardware Programmi Applicativi Programmi di Sistema Kernel Scopo del Sistema Operativo Convenienza Efficienza STORIA Sistemi a Batch: trasferire automaticamente il controllo da un job al successivo ed era sempre residente in memoria Multiprogrammazione: Sistema batch con decisioni prese dal S.O. job scheduling, CPU scheduling) Sistemi a Time-Sharing: Eseguire job contemporaneamente favorendo l’interazione utente-programma (multitasking) Esistono più processi in memoria (gestione e protezione della memoria, filesystem, gestione CPU, SIncr. e Comm. processi, deadlock) STORIA Sistemi Desktop Sistemi a Multiprocessore: Condivisione bus e clock Maggiore capacità elaborazione, Economia di scala, aumento affidabilità Sistemi SMP e AMP Sistemi Distribuiti: macchine indipendenti interconnesse Sistemi Client-Server (calcolo, fileserver) Sistemi Peer-to-Peer STORIA Sistemi Cluster: più computer accoppiati tra loro (condiv. Memoria di massa, simmetrico, asimmetr., SAN) Sistemi Realtime: Hard Realtime , Soft Realtime Sistemi Palmari Migrazione delle Caratteristiche Componenti del SISTEMA OPERATIVO E’ un ambiente entro il quale vengono realizzati ed eseguiti i programmi PROGRAMMA PROCESSO E’ un entità passiva E’ un entità attiva PROCESSO E’ l’unità di lavoro all’interno del Computer • A singolo flusso di esecuzione (single Thread) • A più flussi di esecuzione (MultiThread) Un processo può generare altri Processi • Necessità di meccanismi per: Sincronizzazione, Comunicazione, Gestione Deadlock PROCESSO Utilizza Risorse Memoria Files Input/Output Servizi del Sistema Operativo S.O. è un Gestore di Servizi • Interfaccia utente • Esecuzione di un Programma • Operazioni I/O • Manipolare files • Comunicazioni (memoria condivisa, messaggi) • Rilevamento di Errori • Allocazione Risorse • Contabilità • Protezione e Sicurezza Componenti del SISTEMA OPERATIVO E’ un ambiente entro il quale vengono realizzati i programmi Strumenti per la realizzazione di programmi (Programmi di Sistema) Editor testi Compilatori/Assemblatori CHIAMATE di SISTEMA (SYSTEM CALLS, Win32 API, JAVA) Controllo Processo, Gestione file, gestione dispositivo, gestione delle informazioni, comunicazione) Struttura del SISTEMA OPERATIVO Programma Applicativo Programma di Sistema Residente MS-DOS Driver I/O In MS-DOS Driver I/O in BIOS ROM Struttura del SISTEMA OPERATIVO UNIX Utenti Filesystem I/O Shell, Compilatori,comandi Controllo Gest. Interfaccia system calls al kernel Primit. HW Sincro Memoria Kernel Interfaccia kernel verso l’hardware Processi Controllori Dispositivi Struttura del SISTEMA OPERATIVO MACH MicroKernel (Windows NT3.0 QNX, True64) Progr. Applic. E servizi BSB MACH Struttura del SISTEMA OPERATIVO Modulare Unix,Linux,MacOSX SOLARIS FileSystem Rete Kernel Driver I/O Moduli Vari