TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1
STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono si collocano a livelli diversi. I programmi ai livelli più bassi servono quelli ai livelli più alti. LIVELLO N LIVELLO N-1 LIVELLO 3 LIVELLO 2 Esempi Gestione RAM Gestione CPU Gestione I/O Prog1 Prog2 Prog3 M1 Mn M1 M2 Mn M1 LIVELLO 1 Moduli (un modulo è un insieme di procedure che risolvono problemi di uno stesso tipo) HARDWARE 2
SISTEMA OPERATIVO : QUALE SCEGLIERE? Occorre tener conto dei seguenti fattori: Più utenti (a turno o contemporaneamente) sfruttano le capacità di uno stesso processore Alcuni eventi impongono la priorità di certe applicazioni su altre Il calcolatore deve eseguire più programmi contemporaneamente? SI MULTIPROGRAMMAZIONE NO MONOPROGRAMMAZIONE 3
RISORSE HARDWARE Dispositivi principali Unità centrali di elaborazione (CPU) Memorie centrali (MC) Unità di memoria di massa (MM) Dispositivi di ingresso e di uscita (I/O: input/output) Altri dispositivi Elaboratori di canale Dispositivi multimediali Coprocessori matematici e acceleratori grafici Questi ultimi non vengono trattati ai fini del sistema operativo in quanto riguardano particolari funzioni (calcolo matematico, gestione periferiche grafiche) 4
RISORSE HARDWARE Esempi : Schede audio e video : sono da considerarsi particolari dispositivi di ingresso e di uscita Lettori, masterizzatori di dischi ottici, CD, DVD : sono da considerarsi particolari dispositivi di memoria di massa Nota : ogni dispositivo ha in dotazione il proprio software che ne permette l utilizzazione 5
SISTEMA DI ELABORAZIONE DI BASE Il generico sistema di calcolo a cui si fa riferimento è composto da una CPU, una MCe una pluralità di dispositivi dei tipi rimanenti: Nota : Lo schema sopra è semplificato in quanto nelle realtà di grandi dimensioni (workstation) ad alte prestazioni possono essere presenti più processori (sistemi multiprocessore), in questo caso il lavoro del sistema operativo si complica dovendo gestire più processi. 6
SISTEMI MONOPROGRAMMATI Un sistema operativo è composto da un insieme di programmi che, per essere eseguiti nell unità centrale di un calcolatore, devono essere allocati in memoria centrale, cioè risiedervi nella forma di codice macchina Definizione: Un sistema viene detto monoprogrammatoquando la sua memoria centrale contiene, in un dato istante, codice utente proveniente da un unicoprogramma. L esecuzione di un istruzione del programma utente comporta una chiamata di sistema (system call), cioè una richiesta a qualche routine del S.O. Esempio: richiesta d accesso a qualche dispositivo (periferica o memoria di massa) 7
SISTEMI MONOPROGRAMMATI : CHIAMATA DI SISTEMA Quando si scrive un programma in linguaggi evoluti come C++ è il compilatore che genera il codice appropriato per il S.O. usato, diverso per Linux e Windows. In ogni caso, il compilatore genera una sequenza di istruzioni macchina, fra le quali ad un certo punto compare almeno una chiamata al sistema operativo. Flusso di esecuzione quando un istruzione del programma utente attraversa la chiamata di sistema: - Chiamata di sistema del programma utente - Sospensione esecuzione programma -Salvataggio informazioni del programma (utili per farlo ripartire in posizioni opportune) - Esecuzione della routine di sistema da parte del sistema operativo -Esecuzione del programma dall istruzione successiva all interruzione (grazie al registro Program Counter) 8
SISTEMI MONOPROGRAMMATI: ATTIVITÀ DELLA CPU Si può dividere il tempo che intercorre tra l inizio e la fine del programma in intervalli caratterizzati dalle diverse attività della CPU: Esecuzione di istruzioni del programma utente Esecuzione di istruzioni del sistema operativo Inattività, per esempio quando la CPU attende un input da tastiera. 9
SISTEMI MONOPROGRAMMATI: ATTIVITÀ DELLA CPU Considerazioni : 1. Il tempoinattivopuò essere grande rispetto agli altri poiché la CPU è molto veloce 2. Nel tempoinattivo la CPU potrebbe essere impiegata per eseguire istruzioni di altri programmi 3. Ciò è possibile grazie a meccanismi che permettono di sospendere l esecuzione di un programma per ripristinarla all occorrenza 10
SISTEMI MULTIPROGRAMMATI L obiettivo è quello di ottenere il massimo rendimento della CPU attraverso l impiego dei tempi di inattività Idea di base : La CPU, nel tempo in cui non viene usata dal programma utente, viene adoperata per eseguire altri programmi, eventualmente di utenti diversi. usare i meccanismi di sospensione dell esecuzione, impiegati per le routine di sistema, per permettere l esecuzione anche di altri programmi utente. 11
SISTEMI MULTIPROGRAMMATI Nuove funzioni richieste ai sistemi multiprogrammati Decidere quale istruzione far eseguire dopo quella attuale, se prelevandola dallo stesso programma o da un altro Garantire la mutua protezione tra i diversi programmi, per evitare che i dati di uno vengono inquinati dalle istruzioni dell altro. Risolvere eventuali conflitti per l assegnazione di una determinata risorsa Il sistema operativo deve intervenire periodicamente di propria iniziativa e non solo su richiesta di un programma System overhead= carico di lavoro in più imposto al sistema operativo 12
SISTEMI MULTIPROGRAMMATI: TIME SHARING La multiprogrammazione si ottiene con il Time Sharing Si dice che una risorsa viene gestita in modo timesharing(a partizione di tempo), quando il suo uso viene concesso per un tempo che non può superare un massimo: questo intervallo viene chiamato time slice (fetta o quanto di tempo). Il time sharing è un concetto che viene applicato ai singoli dispositivi. Se la CPU di un sistema multiprogrammazione viene gestita in time sharing, essa rimane assegnata a un programma utente fino a quando: Il programma utente termina Il programma utente richiede operazioni che coinvolgono altri dispositivi Scade il time slice 13
SISTEMI MULTIPROGRAMMATI : TIME SHARING Appena accade uno di questi eventi, il controllo passa al sistema operativo che effettua un cambiamento di contesto, ossia decide a qualetra gli altri programmi in memoria centrale spetti il prossimo time slice. Il sistema operativo opera quindi un riassegnamentodella CPU o context switch(cambiamento di contesto) Il tempo necessario per prendere tale decisione si chiama tempo di riassegnamento. 14
SISTEMI MULTIPROGRAMMATI: CONTEXT SWITCH La modalità con cui il S.O. decide un cambiamento di contesto costituisce un esempio di politica di gestione. La realizzazione più semplice di una politica di gestione consiste nell assegnamento round robin(a rotazione) Il programma a cui è stata tolta la risorsa viene messo in fondo ad una coda di programmi in attesa. RAM Sistema Op. Progr. 1 Programmi in attesa P2 P3 P4 15
SISTEMI MULTIPROGRAMMATI: GESTIONE DELLE PRIORITÀ E possibile che un sistema operativo usi meccanismi di priorità, privilegiando alcuni programmi rispetto ad altri. In questo modo, programmi con priorità alta saranno eseguiti più velocemente. In che modo? Concedendo un time slice più lungo Assegnando più spesso la CPU ai programmi con priorità alta fra quelli in attesa L uso del timesharingdella CPU permette di realizzare ambienti multiprogrammatio multiutente senza la necessità di disporre di diverse CPU. Il sistema operativo, attraverso il timesharing virtualizzala CPU creandone una molteplicità dove in realtà ne esiste solo una. 16
SISTEMI MULTIPROGRAMMATI SCELTA DELLA DURATA DEL TIME SLICE Occorre tener conto che il sistema operativo utilizza una parte del tempo macchina a ogni timeslice(operazioni di controllo e di assegnamento risorsa) Se il timesliceè troppo lungo, ci saranno programmi in attesa per molto tempo Se il timesliceè troppo breve, il sistema operativo dovrà intervenire spesso sottraendo molto tempo all elaborazione. Il valore di equilibrio dipende dalla velocità della CPU e dal tipo di applicazione per cui è stato progettato il sistema di calcolo. 17