Il Sistema Operativo - DiUniTozacchi/biologia/so.processi.pdf · 2006-06-13 · Il Sistema...

27
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme insieme di di programmi programmi che interagiscono e cooperano per: gestire efficientemente gestire efficientemente l'elaboratore e le sue periferiche, cercando di sfruttare al massimo tutte le componenti hardware creare un ambiente amichevole ambiente amichevole per l'interazione uomo-macchina

Transcript of Il Sistema Operativo - DiUniTozacchi/biologia/so.processi.pdf · 2006-06-13 · Il Sistema...

Il Sistema OperativoIl Sistema Operativo fa parte del software di base; e` costituito da un insiemeinsieme didi programmiprogrammiche interagiscono e cooperano per:

gestire efficientementegestire efficientemente l'elaboratore e le sueperiferiche, cercando di sfruttare al massimo tutte le componenti hardware

creare un ambiente amichevoleambiente amichevole per l'interazione uomo-macchina

Il Sistema OperativoFunzioniFunzioni del del SistemaSistema OperativoOperativo:

AvvioAvvio dell’elaboratoreGestione del processoreprocessore e dei programmi in esecuzioneGestione della memoria principalememoria principaleGestione della memoria secondariamemoria secondariaGestione dei dispositivi di input/outputinput/outputGestione dei filefileInterazioneInterazione con l’utente

Il Sistema OperativoTipologie di SO:

sistemi monomono--utenteutente - sistemi multimulti--utenteutente

i sistemi mono- utente sono destinati ad elaboratori per usi personale

(tipo PC) mentre i sistemi multi-utente sono destinati ad elaboratori utilizzati da piu` utenti contemporaneamente

sistemi monomono--programmatiprogrammati - sistemi multimulti--programmatiprogrammati

i sistemi mono- programmati gestiscono l’ esecuzione di un solo

programma alla volta, mentre i sistemi multi-programmati gestiscono piu` programmi contemporaneamente

sistemi interattiviinterattivi - sistemi batchbatchclassificazione basata sull’ interazione con l’utente

Il Sistema OperativoSistemi mono-utente interattivi pensati per Personal Computer

IBM PC - Compatibili (DOS - Windows)Macintosh

L’ interazione utente/computer puo` essere:testuale

es. MS-DOS per PC-IBMgrafica

es. Macintoshes. Windows per PC-IBM

Il Sistema Operativo: EsempioImmettiamo il comando date

Il Sistema Operativo: EsempioPremendo il tasto “Enter” si ottiene

Le operazioni effettuate sembrano abbastanza semplici ma provocano una serie di eventi in cuivengono coinvolte sia risorse hardware che risorse software

Il coordinamento e la gestione delle varie risorse viene effettuato dal Sistema Operativo

Il Sistema Operativo fornisce i servizi che sono necessari a tutti gli altri programmi in esecuzione

Esempio

Disco rigidolistener

directory manager

terminal driverdisk driver

file manager

BUFFERTastiera

BUFFER

Monitor

148.608.043.200.010

OROLOGIO

dat

dat

Per ogni carattere immesso tramite la tastiera viene generato un codice corrispondenteIl codice, grazie ad una componente hardware, viene memorizzato in un’area di memoria riservata (buffer) eviene inviato un segnale alla CPU (interrupt)Quando la CPU riceve l`interrupt dalla tastiera attiva un modulo (un piccolo programma) chiamato terminal driverIl terminal driver invia al monitor una copia del codicedel carattere immesso per visualizzare il carattere

Il codice corrispondente al carattere “Enter” indica che il comando immesso (date) è completoIl terminal driver attiva un altro modulo chiamato listener (perchè attende le richieste provenienti dagli utenti)Il listener legge i caratteri dal buffer della tastiera e ricerca un programma chiamato date, lo carica in memoria centrale e lo esegueIl programma date “va a leggere” un “orologio” (uncontatore che tiene conto dello scorrere del tempo) epassa l’informazione letta al terminal driverIl terminal driver trasmette la data al monitor che lavisualizza

Organizzazione del SOLa gestione dei vari eventi da parte di un S.O. è una delle aree di vitale importanza dell’informaticaL’idea di base è quella di creare una gerarchia di livelli di astrazione (struttura a cipolla)In questo modo, ad ogni livello le funzionalità presenti possono ignorare i dettagli sulle funzionalità offerte da altri livelli

kernel

gestione memoriaprocessore, risorse

interfaccia comandi

Organizzazione del SO

Al livello più alto della gerarchia di funzionalità si trova l’utente del sistemaIdealmente l’utente è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori della gerarchiaL’utente ha conoscenza solo delle operazioni che è interessato ad effettuare

Nell’esempio della data l’utente è interessato alla data e conosce solo il comando che serve per ottenere tale informazione

Avvio dell’elaboratoreIl sistema operativo viene mandato in esecuzione all’accensione del calcolatore (fase di bootstrap)In questa fase una parte del sistema operativo viene caricata in RAM,in genere questa parte comprende:

programmi per la gestione gestione del del processoreprocessoreprogrammi per la gestione della gestione della RAMRAMprogrammi per la gestione dell’Igestione dell’I/O/Oprogrammi per la gestione dei gestione dei filefileprogrammi per l’interfaccia l’interfaccia con con l’utentel’utente

Spesso in questa fase si eseguono anche programmi per la ricerca di virusvirus

Avvio dell’elaboratoreUna parte Una parte del del Sistema Operativo deveSistema Operativo deve essere sempre essere sempre mantenuta mantenuta in RAMin RAM e e deve sempre essere pronta deve sempre essere pronta per per l’esecuzionel’esecuzione

Sistema Operativo

Spazio utente

01

n

Gestione del processore e dei processi

Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativoIl ruolo del processore è quello di eseguire programmiChiamiamo processo un programma inesecuzione

Gestione del processore e dei processiQuando si clicca sull’icona di un programma, il Sistema Operativo:

cerca il programma corrispondente in memoria secondariacopia il programma in RAMimposta il Program Counter con l’indirizzo della prima istruzione del programma principale

Gestione del processore e dei processiSistemi Sistemi monomono--utenteutente, mono, mono--programmatiprogrammati

Un solo utente puo’ eseguire un soloun solo programma programma alla voltaalla voltaIl programma viene ““lanciatolanciato” , ” , eseguito eseguito e e terminatoterminatoLa CPU non e’ non e’ utilizzata utilizzata al al megliomeglio! Si spreca molto tempoLa CPU e’ molto piu’ veloce delle periferiche (dispositi di I/O e disco) quindi passa molto passa molto del del suo suo tempo in tempo in attesa attesa del del completamentocompletamento delle operazioni da parte di questi dispositiviDurante queste fasi di attesa si dice che la CPU e’ idleidle

Gestione del processore e dei processiEsempio Esempio 1.1.

Un processo e’ costituito da 1000 istruzioni, la CPU ha frequenza di 1MHz, quindi il processo richiede:

103/106 sec = 1msec

A meta’ esecuzione e’ richiesta la lettura di un dato dal disco. Il tempo di lettura e’ pari a 1msec. :

tempo totale di esecuzione del processo = 2 msec.

Idle time = 1 msec.:Il 50% del tempo totale di esecuzione e’ tempo sprecato

Gestione del processore e dei processiEsempio Esempio 2.2.

Un processo e’ costituito da 1000 istruzioni, la CPU ha frequenza di 1MHz, quindi il processo richiede:

103/106 sec = 1msec

A meta’ esecuzione e’ richiesta la lettura di un dato datastiera. Il tempo di lettura e’ pari a 1sec. :

tempo totale di esecuzione del processo = 1001 msec.

Idle time = 1 sec.:Il 99,9 % del tempo totale di esecuzione e’ tempo

sprecato!!!

Gestione del processore e dei processiSistemi multiprogrammatiSistemi multiprogrammati

Quando un processo si ferma in attesa di operazioni di I/O, la CPU passa ad eseguire un altro proceso Il SO si occupa dell’alternanza tra i vari processiPiu’ programmi sembrano cosi’ essere eseguiti contemporaneamentecontemporaneamenteIn realta’ in in ogni istante c’e’ sempre ogni istante c’e’ sempre un solo un solo processo processo in in esecuzioneesecuzione, ma se l’alternanza e’ molto frequente si ha un’impressione di simultaneita’Il numero di processi “contemporaneamentecontemporaneamente” in esecuzione e’ comunque limitato ed e’ detto ”grado grado di di multiprogrammazionemultiprogrammazione”

Gestione del processore e dei processiUn processo può trovarsi in tre diversi stati:

in esecuzioneesecuzione,, quando sta utilizzando il processore;in attesaattesa (bloccato), quando è in attesa del verificarsi di un evento esterno (terminazione di un’operazione di input/output o altro)prontopronto, quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo

Gestione del processore e dei processi

prontocreazione I/O terminato o

risorsa disponibile

in_attesa

in_esecuzioneterminazione

richiesta I/O o risorsascambio

esecuzione

Gestione del processore e dei processiCosa succede Cosa succede sese….

Un processo non non si ferma maisi ferma mai in attesa di I/O?

Piu’ utentiPiu’ utenti vogliono usare il computer?

E’ necessario che il tempo della CPU sia distribuitodistribuitotra i processi in attesa: si parla di politicapolitica di di schedulingscheduling della CPU. Se un processo in stato di esecuzione puo’ essere interrotto e ritornare nello stato di pronto, la politica si dice di tipo preemptive (prerilasciabile)

Gestione del processore e dei processi

I/O terminato o risorsa disponibile

in_esecuzione

pronto in_attesacreazione

terminazione

richiesta I/O o risorsascambio

esecuzione

Coda ready

tempo scaduto

Gestione del processore e dei processiPer gestire l’insieme dei processi attivi il SO mantiene in un’area di memoria riservata, la tabella dei processi, in cui per ogni processo memorizza molte informazioni:

Identificatore del processo

Identificatore dell’utente

Stato del processo

Contenuto del Program Counter e altri registri

Informazioni file aperti

….

Gestione del processore e dei processiLe informazioni della tabella dei Processi servono a realizzare lo scambio scambio di di contestocontesto (context switching)

Quando un processo rilascia la CPU, le informazioni informazioni del del suo stato vengono copiate nel suo descrittoresuo stato vengono copiate nel suo descrittoreall’interno della tabella dei processi

Quando il processo torna in esecuzione questi valori vengono ricopiati negli opportuni registriricopiati negli opportuni registriIn questo modo quando riprende l’esecuzione, il processo riparte dal punto riparte dal punto in cui era in cui era stato interrottostato interrotto

Obiettivi del gestore dei processimassimizzare l’ utilizzazione del processsore

minimizzare il tempo d`attesa dei processi

massimizzare il numero dei programmi eseguiti nell’ unita` di teempo (throughputthroughput)

minimizzare il tempo d`esecuzione dei processi (turnaroundturnaround)