INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Definizione. Evoluzione. Il sistema operativo come gestore di risorse. La struttura gerarchica di un sistema operativo. Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Definizione Un sistema operativo può essere definito, in modo generale, come un insieme di procedure manuali e automatiche che consentono all’utente di un sistema di elaborazione di usarlo efficacemente. Maurizio Lunardi efficientemente ed INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Definizione Un sistema operativo deve: Permettere all’utilizzatore di usare in modo semplice e immediato tutte le risorse che il sistema di elaborazione mette a disposizione. Ottimizzare l’uso delle risorse a disposizione, attuando opportune politiche di gestione razionale delle stesse. Fornire una immagine astratta di tutte le risorse disponibili, indipendentemente funzionino (risorse hardware). Maurizio Lunardi da come queste INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Definizione Utilizzatore Programmi Programmi applicativi di utilità Debug Routine di stampa Compilatori Interpreti Editor Gestione file Assemblatori Caricatori Gestione della risorsa Gestione della risorsa Gestione della risorsa memoria processore periferiche Hardware Maurizio Lunardi Gestione della risorsa informazioni I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Origine - fine anni 40 Sistemi dedicati – anni 50 Elaborazione a lotti – fine anni 50 Sistemi a partizione di tempo – prima metà anni 60 Sistemi multiprogrammati – metà anni 60 Sistemi in tempo reale – seconda metà anni 60 Macchine virtuali – fine anni 60 Sistemi interattivi – prima metà anni 70 Sistemi distribuiti – anni 80 Sistemi a processori paralleli – anni 2000 Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi dedicati – anni 50: Un calcolatore, nella sua struttura iniziale, era in grado di gestire un solo processo per volta, completamente residente in memoria, a cui venivano destinate tutte le risorse a disposizione. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Elaborazione a lotti – fine anni 50: Al crescere della velocità delle unità di elaborazione, risultò inaccettabile che un sistema fosse a disposizione di un unico utilizzatore che occupava tempo-macchina con lunghe e onerose procedure di caricamento e gestione di programmi. L’elaborazione a lotti (o batch) comporta una nuova organizzazione del lavoro. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Elaborazione a lotti – Job Control Language Il programmatore deve: – Sviluppare il programma. – Porlo all’interno di una sequenza di comandi espressi nel linguaggio di comando. – Caricare il tutto su un supporto di memoria (nastro magnetico). – Consegnare il lavoro all’operatore e tornare più tardi a prendere i risultati. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione: elaborazione a lotti Sistema con elaborazione batch Lavoro 1 Lavoro 2 Risultati lavoro 4 Risultati lavoro 3 Lavoro 3 Risultati lavoro 2 Lavoro 4 Maurizio Lunardi Risultati lavoro 1 INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi a partizione di tempo – prima metà anni 60: Con l’elaborazione a lotti il processore doveva spesso attendere la fine di operazioni di I/O, che richiedevano tempi enormemente superiori a quelli di elaborazione della CPU, prima di potersi occupare nuovamente del programma. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi a partizione di tempo – prima metà anni 60: Soluzione adottata: – Assegnare il processore ad un altro lavoro ogniqualvolta quello sotto elaborazione doveva “fermarsi” in attesa della terminazione di una operazione di I/O, salvo riprenderlo appena la situazione lo permetteva (a partizione di tempo – time sharing). Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione: sistemi a partizione di tempo Processo 1 - sospeso Processo 1 - attivo Processore Processore Processo 2 - attivo Processo 1 - sospeso Processore Processo 2 - sospeso Il processo 2 chiede che venga eseguito un I/O Maurizio Lunardi Processo 2 - attivo L’operazione di I/O del processo 2 è terminata INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi a partizione di tempo – prima metà anni 60: Il passo successivo fu immediato: costruire un sistema operativo in cui il processore venisse assegnato “a turno” per un certo tempo (quanto di tempo – time slice), a più utilizzatori. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi a partizione di tempo – prima metà anni 60: Ogni qualvolta si passa da un lavoro all’altro occorre, prima di caricare quello nuovo, memorizzare su disco lo stato del programma in fase di elaborazione. Inoltre il invisibile”, processore il deve sistema servire operativo l’esecuzione dei propri programmi. Maurizio Lunardi un che “utente richiede INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi a partizione di tempo – prima metà anni 60: La tecnica di gestione a partizione di tempo favorì lo sviluppo di sistemi operativi sempre più complessi ed in grado di fornire all’utente funzioni sempre più sofisticate. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi multiprogrammati – metà anni 60: Si presentò il problema che per migliorare le prestazioni del calcolatore era necessario diminuire i tempi legati alla gestione delle periferiche esterne, riducendo al minimo l’operazione di caricamento di un nuovo programma. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi multiprogrammati – metà anni 60: Soluzione adottata: – Organizzare il lavoro del sistema in modo che più processi potessero risiedere contemporaneamente in memoria in aree distinte. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Evoluzione: sistemi multiprogrammati Programma A Programma B Processore rogramma A Programma X Programma A Memoria centrale Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi multiprogrammati – metà anni 60: Si ottiene così un sistema detto multiprogrammato, caratterizzato dalla presenza simultanea di diversi programmi nella memoria esecuzione intrecciata. Maurizio Lunardi centrale e dalla loro INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Evoluzione: sistemi multiprogrammati Sistema Operativo Programma A A è in attesa della risorsa processore Programma B B sta scrivendo sull’unità disco rogramma A Programma X X sta utilizzando la risorsa processore Programma A Memoria centrale Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Evoluzione Sistemi multiprogrammati – metà anni 60: Nacquero però nuove esigenze: – Problemi di protezione. – Problemi di condivisione. Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi in tempo reale – seconda metà anni 60: Con il termine elaborazione in tempo reale (real time) si indica il metodo secondo cui l’esecuzione di un’attività da parte del sistema deve essere eseguita in tempo “praticamente” trascurabile rispetto agli eventi esterni. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi in tempo reale – seconda metà anni 60: La struttura del sistema dipenderà dai tempi richiesti per le risposte: – Sistemi time sharing (esercizi di laboratorio). – Sistemi dedicati (controllo di processi industriali). – Sistemi multiprogrammati (applicazioni gestionali). Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Macchine virtuali – fine anni 60: La gestione in time sharing, pur dando all’utente la sensazione di avere tutto il sistema a sua disposizione, non gli permetteva di effettuare, da terminale, operazioni di modifica, messa a punto e controllo di alcuni programmi di sistema operativo. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Macchine virtuali – fine anni 60: Nascono le ricerche particolare sistema tendenti operativo a che realizzare un consentisse di simulare la macchina reale al fine di implementare nuovi moduli di sistema operativo senza intaccare il sistema operativo originale. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Macchine virtuali – fine anni 60: Si è giunti al concetto di macchina virtuale, a cui ogni utente viene assegnato un “intero calcolatore”, i cui componenti sono simulati servendosi delle risorse del calcolatore reale. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Macchine virtuali – fine anni 60: Principali vantaggi: – Possibilità di utilizzare diversi sistemi operativi sul medesimo computer, in modo da poter eseguire programmi generati sotto diversi S.O. – Possibilità di usare contemporaneamente diverse versioni dello stesso sistema operativo, per portare variazioni e verificarne la correttezza senza andare ad intaccare la versione originale. – Possibilità di realizzare attività molto differenti tra loro e programmi che, per la loro esecuzione, richiederebbero architetture hardware diverse. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi interattivi – primi anni 70: Con i sistemi interattivi, l’utente, attraverso il terminale, può condurre un colloquio vero e proprio con il sistema, in modo da seguire direttamente l’evoluzione dei vari passi del lavoro con la possibilità di poter interrompere il lavoro in qualsiasi momento. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi interattivi – primi anni 70: Con questo tipo di organizzazione, i tempi di risposta dell’elaboratore divengono più prevedibili, in quanto dipendono solo dalla complessità del programma e dal numero di lavori gestiti contemporaneamente dal sistema. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi interattivi – primi anni 70: Oggi, la maggior parte dei S.O. evoluti consente di fondere parecchie delle tecniche di gestione, riservando ad esempio: – Una percentuale di tempo di CPU per l’elaborazione a lotti. – Il rimanente per gestire lavori interattivi. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Evoluzione Sistemi distribuiti – primi anni 80: Tendenza a distribuire il calcolo tra diversi processi fisici: – Strettamente accoppiato. I processori condividono clock di sistema e memoria e la comunicazione avviene attraverso quest’ultima. – Debolmente accoppiato. Ciascun processore dispone di una memoria locale e i singoli processori comunicano attraverso bus ad alta velocità o linee telefoniche (sistemi distribuiti). Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Evoluzione Sistemi distribuiti – primi anni 80: Vantaggi: – Condivisione delle risorse. – Accelerazione del calcolo. – Affidabilità. – Comunicazione. Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Principali funzionalità: Tenere aggiornate le informazioni sullo stato di ciascuna risorsa, per poter verificare se questa è libera o è già assegnata ad un processo. Interpretare le richieste dei singoli processi e, in base alla politica di gestione, redimere eventuali situazioni di conflitto. Assegnare la singola risorsa ad processo. Riprendere il controllo della risorsa. Maurizio Lunardi un determinato INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi Il sistema operativo come gestore delle risorse Principali funzionalità: Gestore dei processi. Gestore della memoria. Gestore delle periferiche. Gestore delle informazioni. Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Il gestore dei processi (processor management): Si occupa dell’assegnazione del processore centrale ai singoli processi: – Crea e cancella processi utente e di sistema. – Mantiene aggiornato lo stato del processore e lo stato di ogni processo. – Decide, in base alla politica di schedulazione, a quale processo assegnare il processore e per quanto tempo. – Riprende il controllo della risorsa processore o quando il processo è terminato, o quando è scaduto il quanto di tempo assegnatogli. – Gestisce la sincronizzazione e la comunicazione tra processi. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Il gestore della memoria (memory management): Si occupa della gestione della memoria centrale del sistema: – Mantiene aggiornato lo stato della memoria, avendo sempre presente quali sono le aree libere, quali quelle occupate e quali processi le stanno utilizzando. Mantiene aggiornato lo stato del processore e lo stato di ogni processo. – Determina, in base alla politica di allocazione della memoria, quante locazioni assegnare ad ogni processo e la loro dislocazione all’interno della memoria stessa. – Assegna ai singoli processi le aree di memoria selezionate, provvedendo alla memorizzazione delle informazioni. – Riprende il controllo della risorsa memoria o quando il processo è terminato, o quando il processo non può avanzare per diverso tempo, oppure quando quell’area di memoria deve essere utilizzata per altri scopi. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Il gestore delle periferiche (device management): Si occupa della gestione di tutte le periferiche: – Mantiene aggiornato lo stato di tutte le periferiche e di tutti i dispositivi che le controllano. – Decide, in base alla politica di allocazione, quale processo acquisisce il controllo di una periferica. – Assegna la risorsa ed inizializza l’operazione di I/O. – Riprende il controllo della risorsa a operazione ultimata. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Il gestore delle informazioni (information management): Si occupa della memorizzazione e del recupero delle informazioni archiviate nelle memorie di massa del sistema – Conserva la traccia di tutti gli archivi in apposite tabelle, in modo da saper individuare, per ogni dispositivo, l’elenco degli archivi memorizzati, la loro dislocazione, la loro lunghezza, e tutte le altre indicazioni necessarie per poter accedere alle singole informazioni in esso contenute. – Determina, in base alla politica generale di gestione, chi può utilizzare certe informazioni, chi può accedere ad un archivio (file) e per quali operazioni (solo lettura oppure lettura e scrittura). – Assegna la risorsa ad un processo (ad esempio apre un file su disco, inserendo le informazioni ad esso associate in un’apposita tabella posta in memoria centrale). Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Il gestore delle informazioni (information management): Si occupa della memorizzazione e del recupero delle informazioni archiviate nelle memorie di massa del sistema – Compie le operazioni relative al rilascio della risorsa-file da parte di un processo (ad esempio chiedere un file, eliminandolo dalla tabella dei file aperti presente nella memoria centrale). – Crea e cancella file e directory. – Supporta istruzioni primintive per la manipolazione di file e directory. – Permette il backup di file su memoria di massa. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - Il sistema operativo come gestore delle risorse Nei moderni sistemi di elaborazione l’utente non interagisce con l’hardware della macchina ma con un sistema, detto macchina estesa formato da hardware e sistema operativo. I programmi utente sono implementati su una macchina estesa hardware + sistema operativo o software di base. Maurizio Lunardi INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - La struttura gerarchica di un sistema operativo Lavoro 2 Lavoro 3 Lavoro 1 Sistema Operativo Hardware Macchina estesa Maurizio Lunardi Introduzione ai sistemi operativi INFORMATICA – Sistemi Operativi La struttura gerarchica di un sistema operativo Applicativi utente Programmi di utilità Gestore della informazioni Gestore delle periferiche Gestore della memoria Nucleo Hardware Maurizio Lunardi I.T.S. “Bassi” - Lodi - INFORMATICA – Sistemi Operativi Introduzione ai sistemi operativi I.T.S. “Bassi” - Lodi - La struttura gerarchica di un sistema operativo Una gerarchia di questo tipo può essere ampliata all’interno del sistema operativo, suddividendo i suoi moduli in livelli, in modo che ciascun modulo di un certo livello possa utilizzare, per la sua esecuzione, tutte le risorse hardware e software presenti ai livelli più interni. Maurizio Lunardi