Sistemi opera,vi
So.ware Insieme di programmi che perme6ono al calcolatore di eseguire determinate funzionalità Si dis,ngue tra: So.ware di sistema: Sistema Opera,vo So.ware applica,vo: Applicazioni
Programma En,tà sta,ca (descri6a in un dato linguaggio) che specifica: L insieme di istruzioni che il calcolatore deve eseguire La sequenza in cui devono essere eseguite Nel momento in cui un programma viene mandato in esecuzione si ha l ahvazione di un processo
Processo È un en,tà di esecuzione che può essere interpretata come dinamica (a differenza del programma classificato come en,tà sta,ca) poiché include con il programma anche il suo contesto di esecuzione. Ossia l insieme dei da, che sono necessari affinché il programma stesso possa essere eseguito. L aggehvo dinamica è riferito al fa6o che evidentemente i da,, durante l esecuzione di un programma, possono essere soggeh a con,nui aggiornamen, dando così luogo ad una en,tà in con,nuo divenire.
Sistema opera,vo Definizione intui,va: insieme di programmi che rendono facilmente disponibile all utente le potenzialità offerte dalla macchina Sistema opera,vo= nucleo (kernel) + so.ware di base Il sistema opera,vo è fornito dal costru6ore della macchina (non gratuitamente)
Sistema opera,vo
Funzioni del sistema opera,vo Ges,one lavori (caricamento ed esecuzione di programmi) Ges,one delle risorse (memoria, disposi,vi di I/O, rete) Ausili per la messa a punto dei programmi Ausili per la ges,one dei da, (le6ura o scri6ura file) Funzioni di: Contabilità Sicurezza Recupero Un SO funziona da intermediario fra l utente e l hardware, con lo scopo di fornire un ambiente nel quale l utente possa eseguire i programmi in modo sicuro ed efficiente
Funzioni del SO Il Sistema Opera,vo è un so.ware (di sistema) sempre ahvo, ovvero sempre caricato in memoria centrale, in tu6e le fasi: Fase di avvio (BOOTSTRAP) Fase di funzionamento Fase di spegnimento (SHUTDOWN)
Fase di avvio: BOOTSTRAP Fase iniziale che, all accensione del computer, carica il Sistema Opera,vo in memoria principale (RAM) per poterlo rendere ahvo Il bootstrap avviene in fasi successive: prima viene caricata una piccola parte, che sa dove andare a prendere e caricare un altra,..., fino a che tu6o il Sistema Opera,vo (necessario) è in memoria centrale e in esecuzione
Bootstrap
Fase di spegnimento: SHUTDOWN Quando il computer è in funzione, u,lizza mol, da, temporanei che (per efficienza) vengono mantenu, in memoria centrale (RAM) e solo periodicamente o a richiesta vengono memorizza, su memoria secondaria (disco) Lo shutdown consente di fare ordine e pulizia : le informazioni u,li temporaneamente in RAM vengono copiate su memoria secondaria che non è vola,le le informazioni non necessarie vengono eliminate i canali aper, vengono chiusi, ecc. Se lo shutdown non viene effe6uato corre6amente (es., guasto, black- out) c è il rischio di perdere informazioni u,li o di trovarsi con da, incongruen,
Funzioni in fase di funzionamento Ges,one interfaccia utente Ges,one processi (e CPU) Ges,one memoria principale Ges,one disposi,vi di Input/Output e delle comunicazioni con l esterno Ges,one informazione su memoria secondaria è componente fondamentale per la virtualizzazione
Componen, I Sistemi Opera,vi sono generalmente cos,tui, da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione I vari moduli dei Sistemi Opera,vi interagiscono tra di loro secondo regole precise al fine di realizzare le funzionalità di base dalla macchina
Componen,
Componen, Nucleo (kernel) Cos,tuito da quei programmi che realizzano le funzioni più cri,che e più vicine all hardware come Operazioni di I/O, Ges,one dei programmi di base, Ges,one del controllo dei processi File System Ges,sce la memorizzazione, il reperimento,il trasferimento delle informazioni contenute nelle memorie di massa. Consente all'utente di organizzare tali da, servendosi delle stru6ure logiche e delle funzioni ad alto livello Ges,one Memoria Interfaccia utente ( Shell ) Manipolazione (visuale) ed amichevole di file e directory, Informazioni sullo stato, Caricamento ed esecuzione di programmi
Kernel del Sistema Opera,vo Kernel (nocciolo, nucleo) Con,ene i programmi per la ges,one delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni modulo ha una funzione diversa Funzioni più importan,: ges,one processore ges,one processi ges,one memoria (principale e secondaria) ges,one disposi,vi di I/O
Funzioni del kernel Il kernel del sistema opera,vo va in esecuzione all accensione della macchina (bootstrapping) Il kernel impiega del tempo di CPU che viene so6ra6o all esecuzione dei programmi utente
Shell del Sistema opera,vo Shell (guscio): interfaccia tra SO e uten, Di solito grafica (GUI Graphical User Interface), ma anche testuale
INTERFACCIA UTENTE
Interfaccia utente TuH i Sistemi Opera,vi implementano dei meccanismi per rendere agevole l u,lizzo del sistema da parte degli uten, L insieme di ques, meccanismi di accesso al computer prende il nome di Interfaccia Utente
Due,pi di interfaccia Interfaccia testuale Interprete dei comandi (shell) Esempi: Linux/Unix (prime versioni), MS- DOS Interfaccia grafica (a finestre) L output dei vari programmi viene visualizzato in maniera grafica all interno di finestre L u,lizzo di disegni rende più intui,vo l uso del calcolatore Esempi: Linux/Unix, Microso. WINDOWS
Interfaccia testuale
Interfaccia grafica
GESTIONE DEI PROCESSI
Gestore dei processi E il modulo che si occupa di controllare la sincronizzazione, interruzione e riahvazione dei programmi in esecuzione cui viene assegnato un processore La ges,one dei processi viene compiuta in vari modi, in funzione del,po di u,lizzo cui il sistema è rivolto Vi sono molte ahvità in parallelo su un computer. Es: terminali che richiedono servizi ad un calcolatore stampa di un documento e scri6ura di un altro Il sistema opera,vo serve a coordinare queste ahvità e far comunicare le par, coinvolte
Classificazione dei sistemi opera,vi Dedica, A loh (batch) Mul,programmazione InteraHvi (,me- sharing) Real-,me Per macchine mul,processori (sistemi concorren,) L ordine è cronologico I sistemi opera,vi integrano funzioni per la ges,one delle re, di calcolatori
Passato Anni 40 e 50: un solo programma in esecuzione (job) alla volta monotasking o sistemi dedica, Il computer a disposizione del programma dall inizio alla fine della sua esecuzione Svantaggi Nessuna interazione utente- programma Lentezza: la CPU non poteva essere usata da nessun processo mentre il programma in esecuzione svolge operazioni di I/O (molto più lente di le6ure/scri6ure in Memoria) Es., non si può fare niente altro mentre si stampa o si memorizzano da, su disco
Sistemi Mono- tasking I Sistemi Opera,vi che ges,scono l esecuzione di un solo programma per volta sono cataloga, come mono- tasking Non è possibile sospendere l esecuzione di un programma per assegnare la CPU a un altro Sono storicamente i primi Sistemi Opera,vi per computer di grandi dimensioni, e anche in seguito per i primi Personal Computer (es. MS- DOS)
Sistemi Mono- tasking
Sistemi opera,vi per ges,one a loh (batch) Na, per meglio sfru6are la velocità crescente delle macchine: eliminano i tempi mor, tra programmi successivi di uten, diversi Operazioni I/O offline Il programmatore consegna agli operatori il programma (job) Un insieme di programmi(job) viene accorpato in un lo6o (batch) e trasferito su un unità di ingresso veloce (nastro/disco) Ogni lavoro viene caricato ed eseguito in sequenza senza interruzioni fino al termine Il risultato dell esecuzione viene consegnato agli uten, (programmatori) La CPU viene comunque so6ou,lizzata perché durante le operazioni di I/O deve adeguarsi alla bassa velocità delle periferiche
Sistemi batch
Sistemi Mul,- tasking I Sistemi Opera,vi che perme6ono l esecuzione contemporanea di più programmi sono defini, mula- tasking Esempi a6uali: Linux, Windows Un processo può essere interro6o e la CPU può essere passata a un altro processo
Sistemi Mul,- tasking
Sistemi Time- sharing Un evoluzione dei sistemi mul,- tasking sono i sistemi Ame sharing Ogni programma in esecuzione viene eseguito ciclicamente per piccoli quana di tempo Se la velocità del processore è sufficientemente elevata si ha l impressione di un evoluzione parallela dei processi
Time sharing Ripar,zione del tempo di CPU tra tuh i processi che la vogliono Ogni processo rimane in esecuzione solo per un quanto di tempo, poi l esecuzione passa al prossimo processo e il primo va in a6esa Esecuzione globale piu veloce Durata del quanto di tempo: tra 100 e 200 millisecondi A ciascun utente sembra di avere la CPU tu6a per lui
Time- sharing: diagramma temporale
Altro diagramma temporale
Sistemi opera,vi real,me Sistemi opera,vi al servizio di una specifica applicazione che ha dei vincoli precisi nei tempi di risposta I processi in esecuzione si alternano a seconda delle priorità ad essi accordate. Tale modalità viene usata quando alcuni lavori sono talmente importan, da non poter venire interroh. Il sistema opera,vo deve garan,re un tempo massimo entro il quale mandare in esecuzione un programma a seguito di una richiesta in tal senso ges,one di strumentazione controllo di processo ges,one di allarme sistemi transazionali (banche, prenotazione) In generale si ha un sistema real,me quando il tempo che passa dalla richiesta di esecuzione di un processo al completamento della stessa è minore del tempo fissato
Sistemi opera,vi per sistemi concorren, Il sistema opera,vo si prende carico di assegnare le diverse CPU a processori diversi nonché di ges,re le risorse in comune tra le varie CPU (memoria condivisa, bus, periferiche) A sua volta il sistema opera,vo può essere eseguito contemporaneamente da più CPU oppure da una sola (master) Nell ul,mo caso, le CPU hanno compi, differen,
Altri sistemi opera,vi Sistemi operaavi virtuali (macchine virtuali): replicano macchine complete su cui possono girare più sistemi opera,vi diversi. VM/370 VmWare VM Java Sistemi embedded e dedicaa: sistemi operaavi specializzaa per applicazioni par,colari o per hardware par,colari sistemi embedded in apparecchiature e impian, industriali (es. controllo di sensori) telefoni cellulari (es. Symbian) computer palmari (es. Psion, Palm OS) le6ori mul,mediali (es. ipod) Possono essere versioni rido6e di sistemi opera,vi di uso generale Windows CE, Windows Mobile, Windows Mobile Phone Edi,on ios X per iphone Android Windows 8
GESTIONE DELLA MEMORIA CENTRALE
Ges,one della Memoria L organizzazione e la ges,one della memoria centrale è uno degli aspeh più cri,ci nel proge6o e realizzazione di un Sistema Opera,vo Il gestore della memoria è quel modulo del Sistema Opera,vo incaricato di assegnare la memoria ai vari processi (per eseguire un programma, infah, è necessario che il suo codice sia caricato in memoria)
Ges,one della Memoria La complessità del gestore della memoria dipende dal,po di Sistema Opera,vo Nei sistemi mono- tasking un solo programma può essere caricato in memoria centrale, quindi la ges,one della memoria è rela,vamente semplice: Sistema Opera,vo Processo in esecuzione Nei sistemi mul,- tasking più programmi possono essere carica, contemporaneamente in memoria Problema: come allocare lo spazio in maniera ohmale
Sistema Opera,vo mono- tasking
Sistema Opera,vo mul,- tasking (Allocazione lineare )
Sistema Opera,vo mul,- tasking (Allocazione con paginazione )
Conce6o di memoria virtuale Quando lo spazio richiesto è maggiore di quello fisico si parla di MEMORIA VIRTUALE Tecnica per: Svincolare il codice di un programma dalla sua allocazione in memoria centrale Consen,re ad un programma di essere eseguito come se avesse a disposizione più memoria di quella reale
Realizzazione della Memoria virtuale Sposta programmi e da, tra memoria principale e memoria di massa per avere in ogni momento quello che serve Opera,vamente: Lo spazio richiesto è suddiviso in pagine (qualche Kbyte) Solo le pagine necessarie per iniziare sono caricate in memoria centrale, le altre sono lasciate su memoria secondaria (disco) Poi le pagine vengono scambiate tra memoria centrale e memoria secondaria a seconda della necessità
GESTIONE I/O
Disposi,vi di Input/Output I disposi,vi sono oggeh complessi da ges,re Ad esempio, la maggior parte dei disposi,vi sono seriali: possono essere usaa da un solo processo alla volta Tu6avia, mol, disposi,vi possono ricevere molte richieste contemporaneamente Servono: Meccanismi per la coordinazione delle varie richieste Diverse strategie per la ges,one dei processi in a6esa di u,lizzare una risorsa
Necessità per la ges,one Input/Output Perme6e la ges,one delle periferiche Rende trasparen, le cara6eris,che fisiche delle periferiche Ges,sce la comunicazione di segnali verso di loro Coordina l accesso di più uten, (processi) Deve contenere i driver delle periferiche (uno per ogni periferica)
Ges,one delle Periferiche di Input/ Output Comandi ad alto livello per accedere alle periferiche che usano meccanismi quali: i controller, i driver. I sistemi opera,vi comprendono i driver per la ges,one delle periferiche più comuni. Ogni aggiunta o modifica alla configurazione standard comporta l installazione di so.ware addizionale (driver aggiun,vi).
Installazione driver
Plug & Play I sistemi opera,vi più recen, sono dota, di funzioni di Plug&Play (PnP) che perme6ono la configurazione automa,ca dei driver. Un sistema PnP consente di aggiungere (plug) nuove periferiche al sistema che possono essere u,lizzate (play), senza necessità di intervento da parte dell utente per la selezione e l installazione dei driver.
Device Driver Il controllo dei disposi,vi di I/O avviene a6raverso speciali programmi deh Device Driver o più semplicemente driver I driver sono spesso realizza, dai produ6ori dei disposi,vi stessi che ne conoscono le cara6eris,che fisiche in maniera approfondita
Device Driver Ques, programmi implementano normalmente le seguen, funzioni: Rendono trasparen, le cara6eris,che fisiche,piche di ogni disposi,vo Ges,scono la comunicazione dei segnali verso i disposi,vi Ges,scono i conflih, nel caso in cui due o più processi vogliono accedere contemporaneamente allo stesso disposi,vo
Device Driver
Esempio: Spooling Processo che svincola la stampa di un file dal resto dell elaborazione: il sistema con,nua la sua ahvità mentre la stampa è in corso Stampante più lenta della CPU un file non può essere trasferito troppo velocemente dalla CPU alla stampante Invece di inviare il file: Il file viene messo su disco Il Sistema Opera,vo crea il processo di spooling che fa procedere la stampa Il processo che ha richiesto la stampa è svincolato da essa Lo spooling può andare in esecuzione anche su un elaboratore remoto collegato in rete (print server) lo eseguirà un altra CPU