UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. Michele Amoretti Fondamenti di Informatica a.a. 2008/2009 Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sommario • Caratteristiche generali • Struttura dei sistemi operativi • Evoluzione dei sistemi operativi • Gestione batch • • • • • • Monoprogrammazione Monitor Multiprogrammazione Schedulazione Spooling Time sharing • Processi • Sistema di protezione • System call Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Un sistema di elaborazione può essere visto come un insieme di risorse hardware e software utilizzate per lo sviluppo e l’esecuzione dei programmi utente. Tali risorse devono essere: o utilizzate secondo un determinato ordine o eventualmente rese disponibili a più utenti anche simultaneamente o protette contro accessi non autorizzati o organizzate in modo da garantire la sopravvivenza del sistema in caso di guasti o gestite in modo che risulti semplificato ed efficiente il loro uso, ecc. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Con il termine sistema operativo si intende quell'insieme di programmi che provvedono alla gestione delle risorse di un sistema di calcolo. Una definizione alternativa (Tanenbaum): un sistema operativo è un programma che controlla le risorse di un calcolatore e fornisce ai suoi utenti un'interfaccia o macchina virtuale più agevole da utilizzare della macchina "nuda". Il sistema operativo è un meccanismo di controllo inusuale perché è un programma come gli altri spesso rinuncia al controllo e deve dipendere dal processore per tornarne in possesso Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Il sistema operativo può essere visto come: - allocatore di risorse: tempo di CPU, spazio di memoria, dispositivi di I/O, compilatori, ecc. Le risorse devono essere assegnate a programmi specifici secondo determinate politiche. - programma di controllo: controlla l'esecuzione dei programmi per prevenire errori ed usi impropri del calcolatore (in particolare per il controllo dei dispositivi di I/O). Obiettivi del sistema operativo: - rendere più semplice l'uso di un sistema di calcolo - rendere più efficiente l'uso delle risorse del sistema di calcolo Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Gestione delle risorse significa: - tenere traccia delle risorse adottare strategie di assegnazione allocare le risorse recuperare le risorse inutilizzate rilevare eventuali usi impropri Funzioni specifiche: - gestione della memoria principale e di quella secondaria, in base a regole gerarchiche, realizzando il meccanismo della memoria virtuale - gestione del/i processore/i - gestione dei dispositivi periferici di I/O Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Gestione della memoria centrale caricare in memoria programmi e dati evitare interferenze fra programmi diversi assegnare la memoria in base a criteri di efficienza minimizzare i trasferimenti tra memoria centrale e memoria secondaria. Gestione della memoria secondaria consentire l'accesso all'informazione in base alla sua organizzazione logica (File System) anzichè fisica (ad es. dischi, tracce, settori) controllare i diritti di accesso ai file da parte degli utenti consentire creazione, modifica e cancellazione dei file, ... Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Gestione dei processori decidere quale programma userà il processore (scheduling) in base a criteri di corretto funzionamento e di efficienza verificare che i programmi rilascino il processore entro il tempo stabilito. Gestione dei dispositivi periferici di I/O mascherare al programmatore la complessità delle operazioni di I/O effettuare controlli sul corretto funzionamento delle operazioni risolvere conflitti nell'utilizzo di una stessa periferica da parte di più programmi consentire il massimo sfruttamento delle periferiche. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Utenti del sistema operativo: utenti finali del sistema per essi il sistema operativo è trasparente programmatori applicativi utilizzano i servizi del s.o. per la realizzazione e l'esecuzione dei loro programmi programmatori di sistema aggiornano e modificano i programmi del s.o. per adeguarli a nuove necessità del sistema o degli utenti applicativi operatori controllano il funzionamento e rispondono alle richieste di intervento da parte del sistema amministratore del sistema stabilisce le politiche di gestione del sistema e ne cura l'osservanza Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Caratteristiche generali Tipi di sistemi operativi: Sistemi proprietari progettati dai costruttori al fine di sfruttare in modo ottimale le risorse di ciascun tipo di macchina l'interfaccia con l'utente varia tra le diverse famiglie di sistemi esempi: - IBM: OS/360 - 370, VM, MVS - DEC: RT-11, VMS Sistemi standard progettati da case di software o da comunità di sviluppatori, sono portabili su macchine di tipo diverso l'interfaccia con l'utente rimane costante nelle diverse versioni esempi: - UNIX, MS-DOS, Windows Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Struttura dei sistemi operativi Necessità di modularizzazione, date le dimensioni. Sistema a livelli. Affinché il livello Li possa richiedere i servizi offerti dal livello Li-1 deve conoscerlo precisamente, tuttavia l'implementazione di tali servizi deve risultare totalmente nascosta. La stratificazione più opportuna può risultare non evidente; è dipendente dall'evoluzione tecnologica dell’hardware. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Struttura dei sistemi operativi Modello “a cipolla”: Programmi utente Interprete comandi Programmi di utilità Periferiche virtuali File System Gestore memoria virtuale Nucleo del sistema operativo Macchina hardware Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Struttura dei sistemi operativi Nucleo o kernel: parte di s.o. sempre residente nella memoria principale, mette a disposizione le system call ai programmi di sistema ed applicativi. Fornisce un meccanismo per la creazione e la distruzione dei processi Provvede allo scheduling della CPU, alla gestione della memoria e dei dispositivi di I/O Fornisce strumenti per la sincronizzazione dei processi Fornisce strumenti per la comunicazione tra processi Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Evoluzione dei sistemi operativi I primi calcolatori: - Erano privi di s.o. e monoprogrammati - Il programmatore era anche operatore interattivo ed aveva visione diretta della macchina e disponibilità di tutte le sue risorse - L'accesso da parte di più utenti era ottenuto mediante meccanismi di prenotazione - problemi: complessità operazioni, inefficienza e rigidità della prenotazione Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Evoluzione dei sistemi operativi Prima generazione ('50-'60): - virtualizzazione dell'I/O, librerie di controllo dei device - separazione del programmatore dalla macchina tramite l'operatore - problemi: debug, set-up dei job - riduzione dei tempi di set-up tramite s.o. batch dotati di: - monitor - multiprogrammazione - gestione periferiche con tecniche di spooling nasce il s.o. come stratificazione successiva di funzioni volte ad aumentare l'efficienza e la semplicità d'uso della macchina Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Evoluzione dei sistemi operativi Seconda generazione (‘60-'65): - indipendenza tra programmi e dispositivi usati (logical I/O) - parallelizzazione degli utenti tramite multiprogrammazione a condivisione di tempo (time-sharing). Terza generazione ('65-'75): - s.o. unico per una famiglia di elaboratori gestione della memoria virtuale sistemi multifunzione (scientifico, gestionale) linguaggi di comando complessi Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Evoluzione dei sistemi operativi Quarta generazione (’75 - …): - sistemi a macchine virtuali - sistemi multiprocessore e distribuiti - interfacce amichevoli per l'utente Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Gestione batch Significa raggruppare i lavori o i programmi in lotti per conseguire una maggiore utilizzazione delle risorse, cioè un throughput (= numero di programmi eseguiti per unità di tempo) più elevato. Un concetto che si è evoluto nel tempo: l'operatore raggruppa i programmi in lotti e li immette in tale forma nel sistema per un più razionale utilizzo delle risorse i programmi sono inseriti nella memoria di massa e poi elaborati La gestione batch può essere locale (unità centrale direttamente collegata ai dispositivi di I/O) o remota (è presente una trasmissione dei job e dei risultati ed eventualmente una memorizzazione intermedia). Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Gestione batch Operazioni di I/O fuori-linea: il calcolatore principale non è più rallentato da periferiche lente trasparente ai programmi applicativi Calcolatori satellite: con il compito di scrivere e leggere nastri di potenza ridotta rispetto a quello centrale primo esempio di sistema multi-computer Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Gestione batch Vantaggio ulteriore delle operazioni fuori-linea è la possibilità di utilizzare più lettori di scheda collegati con una stessa unità nastro in ingresso e più stampanti collegate con una stessa unità nastro in uscita. Non ci può essere accesso contemporaneo da parte della CPU e del lettore di schede o della stampante allo stesso nastro. I primi sistemi batch erano monoprogrammati. Successivamente vennero sviluppati sistemi batch in grado di supportare la multiprogrammazione (multitasking). Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Monoprogrammazione - Gestione in modo sequenziale nel tempo dei diversi programmi: l’inizio dell’esecuzione di un programma avviene solamente dopo il completamento del programma precedente. - Tutte le risorse sistema sono dedicate all’esecuzione di un solo programma. - Bassa utilizzazione delle risorse: Tp utilizzazione CPU = ------Tt Tp = tempo dedicato dalla CPU all’esecuzione del programma Tt = tempo totale di permanenza nel sistema del programma Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Monitor Il monitor controlla la sequenza degli eventi. La maggior parte del monitor, detta monitor residente, deve sempre essere nella memoria principale e disponibile per l’esecuzione. Nei primi sistemi batch i programmatori sottoponevano i job su schede o su nastri, e l’operatore organizzava una sequenza di job e poneva l’intero “lotto” su un dispositivo di input per l’uso tramite monitor. Il monitor legge un job alla volta e lo pone nell’area dei programmi utente, e gli cede il controllo. Quando viene completato, il job restituisce il controllo al monitor, che immediatamente legge il job successivo. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Multiprogrammazione (multitasking) - Gestione simultanea di più programmi indipendenti. Ciascuno di essi può iniziare o proseguire l'elaborazione prima che un altro sia terminato. - Le risorse risultano meglio utilizzate in quanto si riducono i tempi morti. - Cresce la complessità del sistema operativo: occorrono algoritmi per la gestione delle risorse (CPU, memoria, I/O), nascono problemi di protezione, etc. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Multiprogrammazione (multitasking) Più programmi sono presenti contemporaneamente in memoria principale. Quando uno di essi attende per il completamento di una operazione di I/O, il controllo della CPU viene assegnato ad un altro: Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Schedulazione Lo schedulatore a lungo termine (scheduler) determina quali programmi siano disponibili per l’elaborazione. Ogni programma pronto per l’elaborazione diventa un processo e viene immesso in una coda dallo schedulatore a breve termine (dispatcher), che viene eseguito di frequente e determina quale sia il successivo job da eseguire. La schedulazione a medio termine riguarda le funzioni di gestione della memoria virtuale (swapping = quando la memoria RAM libera non è più sufficiente per contenere tutte le informazioni che servono ai programmi, il sistema operativo si fa carico di spostare una certa quantità di dati - quelli meno recentemente utilizzati - dalla memoria volatile a quella di massa). Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Spooling SPOOL: acronimo da Simultaneous Peripheral Operation On Line. L'applicazione più comune dello spool è con lo spool di stampa. Con questo sistema, i documenti da stampare vengono caricati in un buffer (generalmente un'area del disco), da dove vengono inviati alla stampante ed eliminati via via che questa riesce a gestirli, di solito con tempi relativamente lunghi. Dal momento che la versione in stampa dei documenti è stata allocata in un buffer dove rimane a disposizione della stampante e dei relativi processi di controllo, l'utilizzatore è libero di svolgere altre operazioni con il computer mentre la stampa procede in background. Lo spooling permette inoltre di avere una coda di stampa con molti lavori, invece di dover attendere che il dispositivo sia libero prima di lanciare la stampa successiva. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Time Sharing L'elaboratore serve "simultaneamente" una pluralità di utenti, dotati di terminali, dedicando a ciascuno di essi tutte le risorse del sistema per quanti fissati di tempo. Migliora i tempi di risposta (turn-around time) ma peggiora l'utilizzazione delle risorse. Può essere presente sia in sistemi monoprogrammati che multiprogrammati. Normalmente una modalità di gestione time-sharing è adottata nei sistemi conversazionali, in cui più utenti contemporaneamente "colloquiano" con il sistema. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Processi L'evoluzione dei s.o., guidata da esigenze di efficienza, ha portato alla presenza in memoria centrale di più programmi in esecuzione. Emergono nuove funzionalità richieste al s.o., quali la gestione dei programmi stessi e la protezione dalla mutua interferenza. Un nuovo punto di vista concettuale : I programmi di controllo, analogamente ai dispositivi hardware, sono largamente indipendenti l'uno dall'altro, ed interagiscono con altre attività di rado ed in punti ben definiti; La CPU viene "trasferita" da un job all'altro (anzichè "ricevere" programmi in ingresso); La specifica sequenza di stati della CPU è scarsamente significativa ed impredicibile a causa degli interrupt. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Processi Processo = attività controllata da un programma che si svolge su un processore. (es. job batch, programma utente time-shared, task di sistema, etc.) Alcuni processi dispongono di un processore privato e pertanto sono permanentemente in esecuzione (ad esempio i controllori delle periferiche). Altri processi condividono un processore comune (la CPU). Distinguiamo: o processi del s.o. che eseguono il codice del sistema o processi utenti che eseguono il codice utente. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Processi Funzioni del s.o. (riferite ai processi): - creazione e cancellazione di processi - sospensione e ripresa di processi - strumenti per la sincronizzazione e comunicazione - strumenti per il trattamento di condizioni di deadlock Stato di un processo: - in esecuzione (running) - bloccato (idle, waiting) - pronto (ready) esecuzion e Scheduling Richiesta I/O pronto bloccato Interrupt/Timer Completamento I/O Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Processi Nei sistemi multiprogrammati più processi possono essere in esecuzione concorrentemente. esecuzione t0 blocco pronto esecuzione t2 t1 blocco t3 esecuzione P1 t4 CPU libera blocco pronto Introduzione ai sistemi operativi esecuzione blocco pronto P2 Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Processi Algoritmo: Procedimento logico che deve essere seguito per risolvere il problema in esame Programma: Descrizione dell'algoritmo tramite un opportuno formalismo (linguaggio di programmazione) che rende possibile l'esecuzione dell'algoritmo da parte di un particolare elaboratore Processo (sequenziale): La sequenza di eventi che genera un elaboratore quando opera sotto il controllo di un particolare programma (evento = esecuzione di una operazione) Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sistema di protezione Un processo potrebbe tentare di modificare il programma o i dati di un altro processo o di parte del s.o. stesso. Protezione: politiche (cosa) e meccanismi (come) per controllare l'accesso di processi alle risorse del sistema di elaborazione. All'hardware è affidato il compito di rilevazione di errori, come opcode illegali o riferimenti in memoria illegali, possibili effetti di errori di programmazione o di comportamenti deliberatamente intrusivi. Questi errori vengono segnalati e affidati alla gestione del s.o. tramite il meccanismo delle trap. In presenza di errore o di violazione della protezione il s.o. provvede a: o terminare il processo, o segnalare la terminazione anomala ed o effettuare un dump della memoria. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sistema di protezione Ciascun processo opera in un dominio di protezione che specifica le risorse a cui il processo può accedere e le operazioni consentite. Diritto di accesso (coppia ordinata <risorsa, diritti>): abilitazione all’esecuzione di un’operazione sulla risorsa; un dominio di protezione è una collezione di diritti di accesso. Il sistema di protezione richiede l'esistenza di più modi di funzionamento della CPU: o supervisor mode (system mode, monitor mode) o user mode Il passaggio dal modo user al modo supervisor avviene tramite interruzione : o esterna (asincrona) o interna (sincrona, trap), generata da una SVC (SuperVisor Call o System Call). Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sistema di protezione Esistono delle istruzioni privilegiate che possono essere eseguite solo in supervisor mode. Istruzioni privilegiate: o o o o o I/O modifica dei registri che delimitano le partizioni di memoria manipolazione del sistema di interruzione cambiamento di modo halt Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sistema di protezione Prima di mettere un processo in esecuzione il s.o. ne confina lo spazio logico di memoria mediante registri limite. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sistema di protezione Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sistema di protezione Le istruzioni di I/O sono privilegiate. Il programma utente richiede al s.o., tramite una system call, di eseguire l'operazione di I/O. Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica System call Tipicamente l'operando dell’istruzione di system call ne specifica il tipo (INT n), mentre il passaggio degli eventuali parametri avviene tramite registri o per indirizzo. Passaggio dei parametri mediante tabella: Introduzione ai sistemi operativi Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica System call Costituiscono l'interfaccia tra un programma in esecuzione ed il s.o. Istruzioni assembly, procedure chiamabili da linguaggi high-level. Nei linguaggi di alto livello sono tipicamente mascherate (“wrappate”) da procedure dette di supporto a tempo di esecuzione. Categorie principali di system call: a) b) c) d) controllo dei processi e dei job manipolazione dei file e dei dispositivi gestione delle informazioni comunicazione Introduzione ai sistemi operativi Prof. M. Amoretti