Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del...

67
Il sistema operativo Il sistema operativo

Transcript of Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del...

Page 1: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Il sistema operativoIl sistema operativo

Page 2: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo

Insieme di programmi per la gestione del funzionamento del computer.

Interfaccia tra utente e hardware, ambiente per l’esecuzione dei programmi.

Un sistema operativo viene caricato nella memoria RAM all’accensione della macchina (programma di boot) e rimane attivo fino allo spegnimento.

Page 3: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo

Il sistema operativo:• è un insieme di moduli software;• controlla le risorse hardware del sistema;• mette a disposizione dell’utente una macchina

virtuale, in grado di eseguire comandi dati dall’utente, utilizzando la macchina “reale”.

Page 4: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo Il sistema operativo:presenta all’utente una macchina

virtuale che nasconde tutti i dettagli hardware che sarebbero troppo complicati da gestire per la maggior parte degli utenti.

Page 5: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo

Le richieste dell'utente al SO, fatte digitando dei comandi nelle interfacce a carattere o selezionando oggetti con il mouse nelle interfacce grafiche (Graphic User Interface), sono intercettate dall'interprete dei comandi (shell), il quale attiva i moduli programma che agiscono nei componenti del nucleo (kernel). Questi attivano i dispositivi hardware quali il processore, la memoria, i controller di I/O, ecc., che svolgono la richiesta dell'utente.

Page 6: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo

E’ uno strato software cheopera direttamentesull’hardware

Isola gli utenti dai dettaglidell’hardware

E’ organizzato a strati:• Architettura a buccia di

cipolla

• Ogni strato costituisceuna macchina virtuale

Programmi utente

Interprete comandiattivazione programmi d’utente o di sistema

File systemcontrollo e gestione degli accessi a file

Gestione delle periferichegestione di ingresso/uscita da periferica

Gestione della memoriaallocazione e gestione della memoria

Gestione dei processi (nucleo)gestione dei processi e delle interruzioni

Macchina fisica

Kernel

Page 7: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Funzioni del sistema operativoFunzioni del sistema operativo Il gestore della memoria ha la funzione di allocare la

memoria e partizionarla tra i vari programmi Il gestore dei processi è responsabile dell’esecuzione dei

programmi da parte dell’unità di elaborazione Il gestore dell’input/output (drivers) sono responsabili delle

operazioni di ingresso/uscita che coinvolgono le periferiche Il file system è responsabile della gestione dei file in

memoria di massa L’interprete dei comandi consente all’utente di attivare i

programmi da una interfaccia grafica o testuale

(GUI o Shell)

Page 8: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Cos’è un processoCos’è un processo

Un processo è un’attività, controllata da un programma E’ un entità dinamica che rappresenta l’esecuzione del

programma In un sistema multitasking possono essere avviati molti

processi contemporaneamente Per l’avanzamento di un processo è necessaria

l’assegnazione di un processore Dato che i processi si alternano nell’esecuzione,possiamo

dire che generalmente l’avanzamento di un processo avviene in maniera discontinua

Page 9: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione dei processiGestione dei processi Caratteristiche

• Interazione diretta con l’Hardware• Esecuzione dei programmi come processi

Lo strato del gestore dei processi offre agli strati superiori una macchina Lo strato del gestore dei processi offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse a disposizione un’unità virtuale in cui ciascun programma opera come se avesse a disposizione un’unità di elaborazione dedicatadi elaborazione dedicata

Page 10: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione dei processiGestione dei processi I processi hanno in memoria sempre aree dati disgiunte

(sebbene possano, a richiesta, condividere parte dei dati oppure scambiarsi dei messaggi tra di loro).

Codice eseguibiledel programma P

Dati sui cui agisceil programma P

Altri processi

Memoria centrale

ProcessoP1

Codice eseguibiledel programma P

Dati sui cui agisceil programma P

Memoria centrale

ProcessoP1

Codice eseguibiledel programma P

Dati sui cui agisceil programma P

ProcessoP2

Codice eseguibiledel programma Q

Dati sui cui agisceil programma Q

ProcessoQ1

Page 11: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Massimizzare l’uso della CPU.

Massimizzare il numero di processi eseguiti

nell’unità di tempo.

Minimizzare il tempo di risposta.

ObiettiviObiettivi

Page 12: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Contesto all’istante t :

• istruzione da eseguire (indirizzo in RAM: PC, IR)

• contenuto dei registri dati del processore

• il processo rappresenta lo stato di avanzamento del

programma istante per istante.

I Processi I Processi

Page 13: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Processi ConcorrentiProcessi Concorrenti

Nei sistemi attuali sono in esecuzione più processi

contemporaneamente. (multitasking)

La CPU esegue comunque una sola istruzione per volta.

Il S.O. gestisce l’avvicendamento dei processi in

esecuzione: assegna la CPU ai vari processi istante dopo

istante.

Scheduler: parte del S.O. che si occupa della gestione dei

processi e dei processori

Page 14: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Si usa la tecnica dei quanti di tempo• es: 3 programmi attivi Prog1, Prog2, Prog3

• vengono mandati in esecuzione ciclicamente

Quanto 20-100 ms

Eseguo Prog1 Eseguo Prog2 Eseguo Prog3

Clock ‘orologio interno’

Eseguo Prog1

Interruzione : il SO riprende il controllo e decide chieseguire nel quanto successivo

Esempio di S.O. Multi-tasking :Esempio di S.O. Multi-tasking :time-sharingtime-sharing

Page 15: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gli stati di un processoGli stati di un processo

I processi appena creati si mettono in stato di pronto Il S.O. decide quale processo pronto eseguire (pronto

esecuzione) Il S.O. assegna il processore ad un processo per un

intervallo (quanto) di tempo L’assegnazione di un processo al processore tiene

conto della coda dei processi pronti e della priorita’ dei processi

Page 16: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gli stati di un processoGli stati di un processo

Nuovo: il processo viene creato

In esecuzione: assegnato al processore ed eseguito da esso

Pronto: può andare in esecuzione, se il gestore dei processi lo decide

In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto

Terminato: il processo ha terminato l’esecuzione, ma non è stato ancora fisicamente cancellato dalla memoria centrale.

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

Termine processo:

-Fine quanto di tempo-Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

Nuovo

Page 17: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Il ciclo di vita dei processi Il ciclo di vita dei processi 1 1

Un processo può anche essere sospeso dal nucleo (running ready), dopo un dato intervallo temporale, per garantire a tutti i processi un uso paritario della CPU: lo scheduler sceglie quale fra i processi pronti mandare in esecuzione

Ogni nuovo processo entra nel sistema accedendo alla ready queue (new ready), e va in esecuzione (ready running) quando viene selezionato dallo scheduler Un processo attivo può essere arrestato per un interrupt esterno (running ready)

Page 18: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Il ciclo di vita dei processi Il ciclo di vita dei processi 2 2

Anche un’interruzione interna può causare l’arresto di un processo (running waiting)Viceversa, il verificarsi dell’evento atteso da un processo fa sì che esso passi dallo stato di attesa allo stato di pronto (waiting ready)

Infine, un processo in esecuzione può terminare regolarmente, o essere interrotto e terminato forzatamente dal nucleo (aborted aborted ) per il verificarsi di un errore Lo scheduler seleziona un nuovo processo dalla coda dei processi ready

Page 19: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Cambiamento di contestoCambiamento di contesto Contesto: insieme delle informazioni che

caratterizzano lo stato di un processo Se il processo è fisicamente in esecuzione parte del

contesto si trova nei registri della CPU (Program Counter, registri utente)

Se il processo non è in esecuzione il contesto è in memoria.

Cambiamento di contesto (context switch): operazione che avviene quando il sistema operativo decide di mandare in esecuzione un altro processo

Il sistema operativo deve salvare tutte le informazioni necessarie a ripristinare esattamente lo stato del processo in esecuzione nel futuro.

Page 20: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Context Switch della CPU da processo Context Switch della CPU da processo a processoa processo

Page 21: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

DispatcherDispatcher

Divide il tempo in quanti (< 50 millisec.) Da’ un quanto ad ogni processo, uno alla volta Alla fine del quanto, segnale che passa la CPU ad un altro

processo pronto Prima di passare al prossimo processo, la CPU esegue il

programma di gestione delle interruzioni• Aggiorna la tabella dei processi • Salva lo stato (registri, celle di M, ...)• Sceglie un altro processo dalla tabella• ……..

Page 22: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Transizioni tra stati di un processoTransizioni tra stati di un processo

In esecuzione

pronti

Coda ordinata in attesa della CPU

In attesa

Insieme in attesa di eventi

schedulazione richiesta di I/O

conclusione I/O

fine tempo oppureevento esterno

Page 23: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione informazione sui processiGestione informazione sui processi

Il S.O. mantiene l’informazione relativa a tutti i

processi attivi (non terminati) nella tabella dei

processi (PCB, Process Control Block) .

Per ogni processo la PCB contiene un certo

numero di informazioni.

La tabella dei processi è in ogni istante caricata

interamente in RAM.

Page 24: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

La tabella dei processi (PCB)La tabella dei processi (PCB)

Per ogni processo attivo:

PID: Process Identifier

Program Counter

Stato corrente (Execute, Ready, Blocked)

Contenuto dei registri

Priorità

…...

Page 25: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Scheduling della CPU Scheduling della CPU 1 1

Oltre ad arrestarsi a causa delle interruzioni, il processo attivo può venire arrestato d’autorità dallo scheduler Lo scheduler ha come obiettivo quello di far eseguire ciascun processo utente entro un tempo approssimativamente proporzionale alla sua complessità, effettuando una ripartizione equa della risorsa CPU

Criteri di scheduling:Criteri di scheduling:Utilizzo di CPUUtilizzo di CPU — la CPU deve essere più attiva possibileThroughputThroughput — numero di processi completati nell’unità di tempoTempo di turnaroundTempo di turnaround — tempo di esecuzione di un processoTempo di attesaTempo di attesa — tempo di attesa del processo nella ready queueTempo di rispostaTempo di risposta — tempo che intercorre tra la sottomissione di una richiesta e la prima risposta prodotta

{

{min

max

Page 26: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Scheduling dei processiScheduling dei processi

È l’attività mediante la quale il sistema operativo effettua delle scelte per ottimizzare l’esecuzione dei processi, riguardo :• al caricamento in memoria centrale• all’assegnazione del processore ai processi

Page 27: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Tre diversi livelli di scheduling:Tre diversi livelli di scheduling:• Scheduling a breve termine

o Sceglie tra i processi pronti quello a cui assegnare il processoreo Interviene quando il processo in esecuzione perde il controllo

del processore.• Scheduling a medio termine (Swapping)

o trasferimento temporaneo in memoria secondaria di processi o Memoria principale inferiore alla somma delle richieste dei vari

processi• Scheduling a lungo termine

o Sceglie nella memoria secondaria quali programmi caricare in memoria centrale

o Controlla il grado di multiprogrammazione

Page 28: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Scheduling nei sistemi BatchScheduling nei sistemi Batch Tre livelli di schedulingTre livelli di scheduling

Page 29: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Short-term Scheduling Short-term Scheduling Lo Scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L’algoritmo di scheduling ha impatto su:

• efficienza nell’utilizzo delle risorse della macchina• prestazioni percepite dagli utenti

Lo scheduling ha obiettivi diversi in diversi sistemi (batch, interattivi, time sharing, ….)

Page 30: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Obiettivi dello SchedulingObiettivi dello Scheduling

Obiettivi principali degli algoritmi di scheduling: Fairness (Equità) - processi della stesso tipo devono avere trattamenti simili

==> In particolare: evitare l’attesa indefinita Balance (Bilanciamento) - tutte le parti del sistema (CPU, dispositivi …)

devono essere utilizate al massimo Throughput - massimizzare il numero di job completati in un intervallo di

tempo Turnaround time - minimizzare il tempo di permanenza di un job nel

sistema Tempo di risposta - minimizzare il tempo di riposta agli eventi Proporzionalità - assicurare un tempo di risposta proporzionale alla

complessità dell’azione

Page 31: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Short-term Scheduling Short-term Scheduling Scheduling con prerilascio (preemptive)

• lo scheduler può intervenire ogni volta che è necessario per ottenere gli obiettivi perseguitio quando diventa pronto un processo a più alta priorità rispetto a quello in esecuzioneo quando il processo in esecuzione ha sfruttato la CPU tutto il quanto di tempo consentito

Scheduling senza prerilascio (non preemptive)• lo scheduler interviene solo quando un processo viene creato, oppure termina, oppure si blocca per effetto di un errore o di un evento esterno

Page 32: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Short-term Scheduling Short-term Scheduling

Due tipologie di processi :• processi CPU-bound -- lunghi periodi di elaborazione fra due richieste successive di I/O • processi I/O-bound -- brevi periodi di elaborazione fra due richieste successive di I/O

A seconda degli obiettivi del Sistema Operativo, le politiche possono privilegiare i processi dell’una o dell’altra tipologia.

Page 33: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Lungo burst di CPU Attesa completamento I/OCorto burst di CPU

tempo

P1

P2

Processi Processi CPU boundCPU bound (P1) (P1) e e I/O bound I/O bound (P2)(P2)

In esecuzione In attesa

Page 34: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

RoundRoundrobinrobin : la politica di scheduling più semplice, che consiste nel garantire la rotazione nell’esecuzione dei processi

Lo scheduler assegna la CPU ad un processo per un quantoquanto di tempoQuando il quanto di tempo termina, il processo in esecuzione viene interrotto e ritorna nella ready queue

Per realizzare l’alternanza fra processi, lo scheduler gestisce la ready queue in modo tale da assegnare il processore al primo processo in coda che, quando esaurisce il suo quanto, viene posto alla fine della coda

Alla fine della coda si inseriscono anche i processi che passano dallo stato di attesa allo stato di pronto

Politiche di Scheduling della CPUPolitiche di Scheduling della CPU

Page 35: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Politica Politica Round Robin Round Robin

A esaurisce il quanto di tempo

In Esecuzione

Coda ProntiPrimo

EC

A

B D

In Esecuzione

Coda ProntiPrimo

AD

B

C E

A passa in esecuzione

Proprietà:– Tempo di risposta massimo (limite superiore)

= (Numero Proc Pronti)*(Quanto di Tempo)– Proporzionalità

tempo di Turnaround proporzionale a lunghezza del lavoro

Page 36: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Politica Politica Round Robin Round Robin Esaurimento del quanto di tempo segnalato dal timer del processore

- L’interruzione del timer provoca l’attivazione dello scheduler- Al termine del suo intervento, lo scheduler carica il timer con un nuovo quanto di tempo

Lo scheduler interviene anche quando il processo in esecuzione si sospende prima della scadenza del quanto di tempo - lo scheduler riassegna il processore e carica il timer con un nuovo quanto di tempo

Come fissare il quanto di tempo- deve essere abbastanza lungo da ammortizzare il costo di un context switch deve - essere abbastanza breve da permettere una risposta veloce agli utenti interattivi- in sistemi reali tipicamente 20-120 ms

RR non favorisce i processi I/O bound

Page 37: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Scheduling con politica FIFOScheduling con politica FIFO

I processi non hanno priorità La coda dei processi pronti è una coda FIFO La politica non prevede prerilascio

==> lo scheduler interviene solo quando il processo in esecuzione si blocca per effetto di un errore, di un evento esterno oppure termina Ad ogni intervento, lo scheduler assegna il processore al primo dei processi pronti Non esiste possibilità di attesa indefinita (stallo o deadlock) Se sono presenti processi CPU-bound e processi I/O-bound, la politica FIFO penalizza i processi I/O-bound (aumentando il tempo di turnaround)

Page 38: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

FIFO, senza prerilascio

tempo

P1

P2

Processi Processi CPU boundCPU bound (P1) e (P1) e I/O bound I/O bound (P2)(P2)

In esecuzione In attesapronto

Page 39: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

P1

P2

Priorità a I/O bound

tempo

Processi Processi CPU boundCPU bound (P1) e (P1) e I/O bound I/O bound (P2)(P2)

In esecuzione In attesapronto

Page 40: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Scheduling con priorità Scheduling con priorità

Ogni processo ha una priorità Ogni volta va in esecuzione il processo a priorità più elevata

• Criteri di assegnazione della priorità ??>> Per esempio: politica Shortest Job First (SJF)

Punti chiave•Priorità statica==> Possibilità di attesa indefinita per i processi a priorità più bassa•Priorità dinamica==> strategia di assegnazione della priorità ?per esempio: priorità maggiore ai processi I/O bound, macome individuare i processi I/O bound?

Page 41: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Scheduling con priorità Scheduling con priorità Molte strategie per il calcolo dinamico della priorità:

• Priorità crescente nel tempo per i processi che rimangono in stato di pronto. Obiettivo: impedire attesa indefinita• Incremento di priorità quando i processi vengono riattivati. Obiettivo: tempo di risposta • Priorità legata alla percentuale f del quanto di tempo che è stato consumato l’ultima volta che il processo è andato in esecuzione (es. proporzionale a 1/ f ). Obiettivo: favorire

processi I/O bound

Page 42: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Politica SJF Politica SJF

Scheduling con politica Shortest Job First (SJF)==> privilegia il job più cortoIpotesi: • l’insieme dei job da schedulare è noto all’inizio• si conosce il tempo di esecuzione T di ogni jobPolitica: • i job sono schedulati in ordine di T crescente• non c’è prerilascioProprietà: SJF minimizza il tempo medio di turnaround

Page 43: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sincronizzazione dei processiSincronizzazione dei processi

A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività

Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo

La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)

Page 44: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

FineFine

Page 45: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Cambiamento di contesto (context switch)

- Il processo A è in esecuzione

- A viene sostituito dal processo B

- tutti i dati del processo A, in particolare il Program Counter, vengono salvati

Ripristino del contesto

Quando il processo A torna in esecuzione riprende dai dati precedentemente salvati

Commutazione del contestoCommutazione del contesto

Page 46: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo Per descrivere gli stati del

processo e per gestire le commutazioni di contesto subite dal processo, al processo va associata un’opportuna struttura dati, chiamata area dati di nucleo (process control block- PCB).

L’area dati di nucleo del processo è creata e gestita direttamente dal sistema operativo; non è direttamente visibile da parte del processo.

Page 47: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Parametri dell’area dati di nucleo (PCB)

Stato del processo: nuovo, pronto, attivo, sospeso, terminato.

Contatore di programma: l’indirizzo della prima istruzione da eseguire, quando il processo entra in stato attivo.

Numero del processo, o PID: identificatore univoco del processo.

Registri del processore: tutti i registri (general e special purpose) del processore, da ripristinare nel processore quando il processo entra in stato attivo.

Informazioni di scheduling del processore: priorità del processo, puntatori alle code di scheduling, parametri di scheduling, ecc.

Informazioni di gestione della memoria: registri base e limite dello spazio di memoria assegnato al processo, tabelle delle pagine o dei segmenti di memoria di proprietà del processo, ecc.

Informazioni contabili: tempo di processore e tempo reale di utilizzo del processore, limiti di tempo, ecc.

Informazioni di I/O: elenco delle periferiche assegnate al processo, elenco dei descrittori di file aperti da parte del processo, ecc.

Page 48: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Classificazione dei SOClassificazione dei SO In base alla modalita’ di gestione dei programmi:

• Monoprogrammazione (esegue un solo programma alla volta)

• Multiprogrammazione (esegue piu’ programmi apparentemente conteporaneamente, in realta’ in time-sharing, suddividendo il tempo di esecuzione in intervalli molto piccoli e assegnando a turno le risorse ai diversi programmi)

In base al tipo di accesso fornito agli utenti:• Monoutente (un solo utente puo’ usare la macchina)

• Multiutente (piu’ utenti possono contemporaneamente interagire con la stessa macchina)

Page 49: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Classificazione dei SOClassificazione dei SO I concetti di mono e multi-programmazione sono

indipendenti sa quelli di SO mono e multi-utente I SO attuali operano tutti in multiprogrammazione Windows nasce come sistema monoutente, anche se

le versioni evolute (NT, 2000, XP) hanno alcune funzioni che possono essere utilizzate in modo concorrente da piu’ utenti contemporaneamente

UNIX e’ un sistema multiutente che opera in multiprogrammazione

Page 50: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Classificazione dei SOClassificazione dei SO

In base al tipo di schell utilizzato:• Shell alfanumerici (MS-DOS, UNIX, …) i comandi

vengono inseriti come stringhe di caratteri e impartiti tramite la tastiera

• Shell grafici - Graphic User Interface (GUI) i comandi e gli oggetti vengono rappresentati in modo grafico e possono essere impartiti, eseguiti o manipolati attraverso l’uso congiunto di mouse e tastiera

Page 51: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo Quando si parla di multiprogrammazione si parla

anche di time‑sharing: il sistema operativo che fa sì che le risorse del calcolatore siano assegnate per prefissati intervalli di tempo, in successione, ai diversi programmi: gli intervalli di tempo possono essere più o meno lunghi l’uno rispetto all’altro, a seconda della priorità di cui gode il programma che l'utente utilizza, ma comunque sono di brevissima durata.

Page 52: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativo in time sharingSistema operativo in time sharing Permette la condivisione della CPU tra più processi Ogni processo in esecuzione ha a disposizione un quanto di

tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione.

Page 53: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativo - schedulingSistema operativo - scheduling

In un sistema con un singolo processore e più processi non èpossibile avere più di un processo attivo in ogni istante di tempo.

E’ necessario eseguire i processi a intervalli (quanti di tempo) eprevedere un sistema di riordinamento (scheduling) delle loroesecuzioni, che assegni loro tempo di esecuzione in modo equo.

I processi vengono fatti avanzare a turno, assegnando loro un quantodi tempo per portarsi avanti nell’esecuzione.

Si ottiene lo scheduling dei processi mediante una (o anche più diuna) coda di scheduling, in cui vengono inseriti i processi che devonoessere fatti aspettare.

Page 54: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativo e macchine realiSistema operativo e macchine reali

Page 55: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Sistema operativoSistema operativo Lo schedulatore (scheduler) è la componente del sistema

operativo che si occupa di spostare i processi tra le varie code di attesa.

coda dei processiin stato pronto CPU

richiesta di I/Ocoda di I/OI/O

quanto di tempo esaurito

fork di unprocesso figlio

processo figlioin esecuzione

fine esecuzioneprocesso figlio

attesa diun’interruzione

arrivo del-l’interruzione

Page 56: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione della memoria centraleGestione della memoria centrale Il sistema operativo permette l’esecuzione

contemporanea di più processi e tutti i processi pronti dovrebbero avere tutto il programma o almeno le prossime istruzioni caricate nella memoria.

Se lo spazio totale occupato dai processi supera la dimensione della memoria centrale, non tutti i processi possono risiedere per intero nella memoria centrale

Normalmente la quantità di memoria non è sufficiente a contenere tutti le istruzioni e tutti i dati di tutti i processi gestiti.

Page 57: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione della memoria centraleGestione della memoria centrale

La memoria deve essere gestita con molta attenzione ed efficienza caricando solo i dati e le istruzioni che devono essere modificate ed eseguite. Le altre parti devono essere spostate sul disco per poter essere caricate quando necessario.

La memoria virtuale e’ un sistema per aumentare lo spazio di memoria disponibile

Page 58: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione della memoria centraleGestione della memoria centrale Partizionamento della memoria e del suo spazio di indirizzi. Tecniche di partizionamento:

• Segmentazione: suddivide la memoria centrale in segmenti di lunghezza variabili contenenti parti di un programma logicamente correlati tra di loro

• Paginazione: suddivide memoria e programmi in pagine di lunghezza fissa; i programmi vengono caricati in memoria anche in pagine non contigue

NON sono tecniche alternative. Spesso sono applicate contemporaneamente

Sia nel caso della partizione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale

Page 59: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione della memoria centraleGestione della memoria centrale Ad ogni processo viene assegnata nella fase di partenza una

tabella detta tabella delle pagine dove per ogni pagina usata dal processo viene scritto dove si trova la pagina fisica.

La memoria virtuale è maggiore di quella fisica La gestione della memoria è coordinata con la gestione dei

processi

Page 60: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

File System – il gestore dei fileFile System – il gestore dei file Un file è un insieme di dati omogenei fra loro e raggruppati ai

fini di archiviazione, di successiva elaborazione o di esecuzione. Possono contenere dati (file dati), programmi in linguaggio

macchina (file eseguibili) o sequenze di comandi del sistema operativo (script o file batch).

Un sistema operativo fornisce dei formati standard con cui organizzare i dati nella memoria di massa e i comandi per manipolare i file (file system).

Ogni file è caratterizzato da un nome e da una estensione, che serve ad identificarne il tipo.

Es. i file eseguibili sotto MSDOS/Windows hanno estensione .EXE, quindi il file prova.exe è un file che contiene codice direttamente eseguibile dalla CPU.

Page 61: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

File System – il gestore dei fileFile System – il gestore dei file

L'oggetto elementare su cui opera il file system è il FILE, ossia una raccolta di dati registrati su memoria di massa (il file è visto dal SO come una sequenza di byte)

Tipi di file:

• testo (ASCII): una sequenza di caratteri, ad esempio un programma sorgente (es. in linguaggio C) o un editor di testo semplice

• binari: una sequenza di byte

• eseguibili (programmi) e non eseguibili (es. immagini, documenti creati con word processor)

Page 62: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

File System – il gestore dei fileFile System – il gestore dei file Sul disco rigido i file sono organizzati in modo gerarchico e

possono essere inseriti in opportuni “contenitori” (cartelle o directory: sono anch’essi file! Una directory contiene una lista dei nomi e attributi dei file e directory al suo interno).

Il disco può essere considerato come un archivio che contiene varie cartelle. Ogni cartella contiene documenti (file) o altre cartelle, che a loro volta contengono file o cartelle, realizzando una struttura ad albero.

Ogni file è quindi identificato da un percorso, che rappresenta la sequenza delle cartelle che bisogna aprire per raggiungerlo.

Page 63: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

File System – il gestore dei fileFile System – il gestore dei file

Il percorso di un file individua le directory che devono essere percorse per raggiungere quella che contiene il file.

Il percorso e il nome del file individuano l’oggetto e ne specificano la collocazione nella struttura gerarchica:

c:/Didat/esami/iscrmar.doc

Page 64: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

File System – il gestore dei fileFile System – il gestore dei file Funzioni principali:

• Creazione di file

• Copiatura di file

• Spostamento (da una cartella ad un’altra) di file

• Ridenominazione di file

• Cancellazione di file

• Strutturazione dei dischi (e dei nastri) come insiemi di file.

• ...

Per ognuna di queste operazioni esiste un opportuno comando (interfaccia utente alfanumerica) o una azione corrispondente con mouse e tastiera (GUI).

Page 65: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gestione delle perifericheGestione delle periferiche Funzioni principali:

• Indirizzamento dei segnali da e verso le periferiche• Sincronizzazione delle periferiche

Gestione del sistema di Ingresso/Uscita• Sistema di tamponamento dei flussi di dati (buffer-

caching).• Interfaccia generale per i programmi di controllo

(driver) delle periferiche (device).• Collezione di programmi di controllo (driver) specifici

per le varie periferiche (device) collegabili al calcolatore.

Page 66: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Driver - Gestione delle perifericheDriver - Gestione delle periferiche I driver sono meccanismi software cui è affidato il

compito di comunicare dati da e verso le periferiche Garantiscono ai programmi che li usano una visione

di alto livello• E’ possibile leggere o scrivere tramite primitive

indipendenti dalla struttura hardware delle periferiche Si distingue fra:

• Driver fisici (hardware). Vengono attivati direttamente dal gestore delle interruzioni

• Driver logici (software). Fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati

Page 67: Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Gli stati di un processoGli stati di un processo

Un processo in esecuzione passa in stato di attesa se:

• Richiede operazioni di I/O (interruzione interna) e per non lasciare il sistema inattivo, il processo attivo viene interrotto e posto in stato di attesa

• Si verificano richieste di interruzioni esterne

• Se il tempo allocato al processo e’ scaduto; il processore cerca di garantire un uso equo della CPU a tutti i processi; il nucleo interrompe l’esecuzione del processo attivo per non penalizzare gli altri processi esistenti; quando il processo torna in stato attivo prosegue con l’elaborazione dell’istruzione successiva a quella su cui era stato precedentemente interrotto

• al termine delle propria esecuzione ed è rimosso dall’elenco dei processi esistenti