Informatica Sistemi operativi Sistemi Operativi 1 Informatica Sistemi operativi L’Evoluzione dei Sistemi Operativi Sistemi a processore singolo degli anni ‘40 e ’50 che eseguivano job. I job prevedevano il caricamento da nastri, l’inserimento di schede perforate e la configurazione del macchinario. Il computer era sotto il controllo di un singolo utente che eseguiva il job. L’operatore era responsabile giorno per giorno delle operazioni da eseguire al computer. 2 Informatica Sistemi operativi I programmi venivano eseguiti … … da code batch, dove venivano precedentemente inseriti; una struttura di immagazzinamento che serviva ad aggiungere e rimuovere i job secondo una politica FIFO (first-in, first-out). I job erano accoppiati al JCL (Job Control Language). Il JCL si preoccupava delle operazioni che precedevano e seguivano l’esecuzione del programma, come il caricamento da nastro e la lettura dei dati dalle schede perforate. 3 Informatica Sistemi operativi Processamento Batch 4 Informatica Sistemi operativi Il problema principale di questo paradigma … … è che l’utente non ha alcuna interazione con il computer: un volta che il job era stato sottomesso, non poteva più farci nulla! Come fare con programmi come: word processors? Giochi? In generale, con programmi che richiedono continuamente nuovo Input (fortemente interattivi)? 5 Informatica Sistemi operativi Necessità dei Sistemi Operativi moderni Implementazione di processi interattivi: I programmi possono interagire con l’utente attraverso terminali o workstation. Questo tipo di coordinamento tra computer e applicazioni è chiamato real-time processing. 6 Informatica Sistemi operativi Esecuzione interattiva 7 Informatica Sistemi operativi Esecuzione in Real Time Vantaggi Un utente può interagire direttamente con il computer. Intervento dell’operatore meno essenziale. Svantaggi Le macchine sono più costose Devono servire più di un utente contemporaneamente. 8 Informatica Sistemi operativi Time-sharing Il Time-sharing divide il tempo che un processore di un computer dedica all’esecuzione di un programma in intervalli Ogni programma ottiene il proprio time slice (quanto). Il SO alterna i programmi tra di loro dando ”l’illusione” che più di un programma viene eseguito contemporaneamente: multitasking. 9 Informatica Sistemi operativi Architettura dei sistemi operativi 10 Informatica Sistemi operativi Software di sistema Fornisce l’ambiente o l’infrastruttura per eseguire le applicazioni. Software di Sistema: Di Utilità: programmi che sono fondamentali ma che non fanno parte del sistema operativo. “estendono” le funzionalità del sistema operativo. Esempio: backup, rete, copia file (masterizzazione), telecomunicazione. Sistema Operativo. 11 Informatica Sistemi operativi Differenze tra software applicativo e di utilità A volte è difficile da stabilirle. Come fare? Regola generale (buon senso): Se è d’accompagnamento con il SO allora non è software applicativo. 12 Informatica Sistemi operativi Architettura dei sistemi operativi Visione "a strati" delle componenti hardware e software che compongono un elaboratore: Informatica Sistemi operativi Architettura dei sistemi operativi Cos'è l'architettura di un sistema operativo? descrive quali sono le varie componenti del S.O. e come queste sono collegate fra loro i vari sistemi operativi sono molto diversi l'uno dall'altro nella loro architettura la progettazione dell'architettura è un problema fondamentale L'architettura di un S.O. da diversi punti di vista: servizi forniti (visione utente) interfaccia di sistema (visione programmatore) componenti del sistema (visione progettista S.O.) Informatica Sistemi operativi S.O. come macchina estesa Servizi estesi offerti da un S.O.: esecuzione di programmi accesso semplificato ai dispositivi di I/O accesso controllato a dispositivi, file system, etc. accesso al sistema rilevazione e risposta agli errori accounting Informatica Sistemi operativi Componenti di un sistema operativo Gestione dei processi Gestione della memoria principale Gestione della memoria secondaria Gestione file system Gestione dei dispositivi di I/O Protezione Networking Interprete dei comandi Informatica Sistemi operativi Gestione dei processi Un processo è un programma in esecuzione Un processo utilizza le risorse fornite dal computer per assolvere i propri compiti Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi: creazione e terminazione dei processi sospensione e riattivazione dei processi gestione dei deadlock comunicazione tra processi sincronizzazione tra processi Informatica Sistemi operativi Gestione della memoria principale La memoria principale è un "array" di byte indirizzabili singolarmente. è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione della memoria principale: tenere traccia di quali parti della memoria sono usate e da chi decidere quali processi caricare quando diventa disponibile spazio in memoria allocare e deallocare lo spazio di memoria quando necessario Informatica Sistemi operativi Gestione della memoria secondaria Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, un computer è dotato di memoria secondaria In generale, la memoria secondaria è data da hard disk, dischi ottici, nastri, etc. Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria: Allocazione dello spazio inutilizzato Gestione dello spazio di memorizzazione Ordinamento efficiente delle richieste (disk scheduling) Informatica Sistemi operativi Gestione del file system Un file è l'astrazione informatica di un archivio di dati Il concetto di file è indipendente dal media sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica) Un file system è composto da un insieme di file Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione del file system Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria Informatica Sistemi operativi Gestione dell'I/O La gestione dell’I/O richiede: Un interfaccia comune per la gestione dei device driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle informazioni Che cos'è un device driver? Informatica Sistemi operativi Device Driver In informatica, è detto driver l'insieme di procedure che permette ad un sistema operativo di pilotare un dispositivo hardware. Il driver permette al sistema operativo di utilizzare l'hardware senza sapere come esso funzioni, ma dialogandoci attraverso un'interfaccia standard, i registri del controllore della periferica, che astrae dall'implementazione dell'hardware e che ne considera solo il funzionamento logico. In questo modo hardware diverso costruito da produttori diversi può essere utilizzato in modo intercambiabile. Ne consegue che un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del sistema operativo per cui è scritto. Non è possibile utilizzare driver scritti per un sistema operativo su uno differente, perché l'interfaccia è generalmente diversa. Informatica Sistemi operativi Device Driver Il driver è scritto solitamente dal produttore del dispositivo hardware, dato che è necessaria un'approfondita conoscenza dell'hardware per poter scrivere un driver funzionante. A volte, i driver vengono scritti da terze parti sulla base della documentazione tecnica rilasciata dal produttore, se questa è disponibile. Informatica Sistemi operativi Protezione Il termine protezione si riferisce al meccanismo per controllare gli accessi di programmi, processi o utenti alle risorse del sistema e degli utenti Il meccanismo di protezione software deve: Distinguere tra uso autorizzato o non autorizzato Specificare i controlli che devono essere imposti Fornire un meccanismo di attuazione della protezione Informatica Networking Consente di far comunicare due o più elaboratori di condividere risorse Quali servizi protocolli di comunicazione a basso livello TCP/IP UDP Servizi di comunicazione ad alto livello File system distribuiti (NFS, SMB) Print spooler Sistemi operativi Informatica Sistemi operativi Interprete dei comandi (shell) Interfaccia utente - S.O. attivare un programma, terminare un programma, etc. interagire con le componenti del sistema operativo (file system) Può essere: grafica (a finestre, icone, etc.) detta GUI testuale (linea di comando) Cambia il "linguaggio" utilizzato, ma il concetto è lo stesso vi sono però differenze di espressività Informatica Sistemi operativi Le GUI in genere hanno un Window Manager. Funzioni fondamentali: Gestione dell’allocazione dello schermo e manipolazione delle finestre. Interazione con i programmi basati sulle finestre. Gestione del mouse e della tastiera (tramite interrupt) 27 Informatica Sistemi operativi Programmi di sistema Manipolazione file creazione, cancellazione, copia, rinomina, stampa, dump Informazione di stato del sistema data, ora, quantità di memoria disponibile, numero di utenti Modifica file editor (file testo e binari) Supporto per linguaggi di programmazione compilatori, interpreti, assemblatori Esecuzione di programmi caricatori, debugger Comunicazione strumenti per operare con elaboratori remoti, scambiare dati Informatica Sistemi operativi Il Kernel Il Kernel è quella parte del SO che fornisce tutte le funzionalità fondamentali: Il File Manager gestisce i file e le cartelle/sottocartelle I Device Drivers sono responsabili dell’interazione con i dispositivi come l’hard drive, il modem e la stampante. Il Memory Manager coordinata il computer e gestisce la mermoria. Lo Scheduler determina quale attività il SO deve eseguire. Il Dispatcher controlla l’assegnazione dei quanti di tempo a tali attività. 29 Informatica Sistemi operativi Quando il computer viene accesso, il SO deve essere avviato (boot strapped – booted). La CPU legge la prima istruzione da una Read-Only Memory (ROM). Questa istruzione appartiene al processo di bootstrap. Il bootstrap istruisce il computer su come caricare il SO dalla memoria di massa alla RAM, da dove l’esecuzione del SO può iniziare. La ROM contiene anche il BIOS (Basic Input Output System) che istruisce il computer ad alcune interazioni base con l’utente e con le periferiche in caso di intervento diretto durante la fase di bootstrap Nei computer moderni la ROM non è veramente di sola lettura: è una memoria flash che consente qualche riscrittura (e.g., EEPROM – Electrically Erasable ROM) 30 Informatica Sistemi operativi Il processo di booting 31 Informatica Sistemi operativi Scheduler e Dispatcher I task (le attività) associate a questo processo di coordinamento sono gestite dallo scheduler e dal dispatcher. Lo scheduler mantiene una tabella dei processi che contiene le informazioni relative ad ogni processo attualmente in esecuzione. Ogni processo ha uno stato che può essere Pronto, in Esecuzione, o in attesa. 32 Informatica Sistemi operativi Il dispatcher si assicura che i singoli processi vengano effettivamente eseguiti Gestisce la CPU in quanti di tempo e scambia i processi secondo il loro turno di esecuzione. Process switch (commutazione del processo) o task switch (commutazione dell’attività). 33 Informatica Sistemi operativi La suddivisione temporale è gestita dagli interrupt. Gli interrupt sono dei segnali generati da un timer che comunica al dispatcher che è giunto il momento per un task switch. La CPU si ferma da quello che sta facendo (dopo aver fatto terminare il ciclo macchina corrente) ed esegue l’appropriato interrupt handler. Il gestore dell’interrupt è parte del dispatcher! 34 Informatica Sistemi operativi Il dispatcher ottiene dallo scheduler l’informazione sul prossimo processo da eseguire Lo stato del processo che deve essere eseguito viene caricato in memoria e l’esecuzione parte dal prossimo intervallo quantico. Funziona solo se è possibile ricreare l’ambiente esistente prima dell’interrupt! 35 Informatica Sistemi operativi Time-sharing tra i processi A e B 36