Sei sulla pagina 1di 164
I Sistemi Operativi Realizzato dalla Prof.ssa Paola Pucci
I Sistemi Operativi
Realizzato dalla Prof.ssa Paola Pucci

I Sistemi Operativi: indice

• Avvio • Definizione • Dispositivi • Storia • Tipologie • Modello a livelli: funzioni
• Avvio
• Definizione
• Dispositivi
• Storia
• Tipologie
Modello a livelli: funzioni
Modello a livelli: struttura interna
Classificazione
Fine
I Sistemi Operativi: avvio All’avvio del computer, il BIOS (Basic Input-Output System) esegue una serie
I Sistemi Operativi: avvio

I Sistemi Operativi: avvio

I Sistemi Operativi: avvio All’avvio del computer, il BIOS (Basic Input-Output System) esegue una serie di
I Sistemi Operativi: avvio All’avvio del computer, il BIOS (Basic Input-Output System) esegue una serie di
All’avvio del computer, il BIOS (Basic Input-Output

All’avvio del computer, il BIOS (Basic Input-Output

All’avvio del computer, il BIOS (Basic Input-Output System) esegue una serie di test diagnostici per: •
System) esegue una serie di test diagnostici per:

System) esegue una serie di test diagnostici per:

System) esegue una serie di test diagnostici per: • controllare lo stato di funzionamento dell'hardware
System) esegue una serie di test diagnostici per: • controllare lo stato di funzionamento dell'hardware
• controllare lo stato di

controllare lo stato di

funzionamento
funzionamento

funzionamento

funzionamento
dell'hardware

dell'hardware

• controllare lo stato di funzionamento dell'hardware • segnalare eventuali guasti rilevati tramite un codice
• segnalare eventuali guasti rilevati tramite un codice sonoro

segnalare eventuali guasti rilevati tramite un codice sonoro

segnalare eventuali guasti rilevati tramite un codice sonoro           (beep code)  
segnalare eventuali guasti rilevati tramite un codice sonoro           (beep code)  
   
   
 

(beep code)

 
 
 

fornire un’interfaccia software per

   
 
 
 
 
 
l'accesso alle
l'accesso alle

l'accesso alle

periferiche e

periferiche e

 
 
all'hardware del PC
all'hardware del PC

all'hardware del PC

per               l'accesso alle periferiche e   all'hardware del PC
per               l'accesso alle periferiche e   all'hardware del PC
I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP
I Sistemi Operativi: avvio

I Sistemi Operativi: avvio

I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma
I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma
I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma
I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma
I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma
I Sistemi Operativi: avvio A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma
A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma di partenza iniziale)

A ciò provvede un programma che risiede su ROM, chiamato BOOTSTRAP (programma di partenza

iniziale) che ha il compito di:

(programma di partenza iniziale) che ha il compito di: • controllare il funzionamento delle varie componenti
(programma di partenza iniziale) che ha il compito di: • controllare il funzionamento delle varie componenti
(programma di partenza iniziale) che ha il compito di: • controllare il funzionamento delle varie componenti
(programma di partenza iniziale) che ha il compito di: • controllare il funzionamento delle varie componenti
(programma di partenza iniziale) che ha il compito di: • controllare il funzionamento delle varie componenti
(programma di partenza iniziale) che ha il compito di: • controllare il funzionamento delle varie componenti
• controllare il funzionamento delle varie componenti

controllare il funzionamento delle varie componenti

di: • controllare il funzionamento delle varie componenti             • caricare
   
   
 
 

caricare dalla memoria di massa l’IPL (Initial Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.

 
 
 
 
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
 
 
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
Program Loader, caricatore di programmi iniziali) che assume il controllo della C.P.U.        
I Sistemi Operativi: avvio L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è
I Sistemi Operativi: avvio

I Sistemi Operativi: avvio

I Sistemi Operativi: avvio L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è la
I Sistemi Operativi: avvio L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è la
I Sistemi Operativi: avvio L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è la
I Sistemi Operativi: avvio L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è la
L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è la parte del S.O.

L'IPL carica in Memoria Centrale solo il nucleo (Kernel) che è la parte del S.O. che è sempre residente, oltre ad altro software necessario alla

è sempre residente, oltre ad altro software necessario alla fase di inizializzazione del sistema. Viene poi
è sempre residente, oltre ad altro software necessario alla fase di inizializzazione del sistema. Viene poi
è sempre residente, oltre ad altro software necessario alla fase di inizializzazione del sistema. Viene poi
è sempre residente, oltre ad altro software necessario alla fase di inizializzazione del sistema. Viene poi
fase di inizializzazione del sistema.

fase di inizializzazione del sistema.

necessario alla fase di inizializzazione del sistema. Viene poi mandato in esecuzione il processo (appartenente al
necessario alla fase di inizializzazione del sistema. Viene poi mandato in esecuzione il processo (appartenente al
necessario alla fase di inizializzazione del sistema. Viene poi mandato in esecuzione il processo (appartenente al
Viene poi mandato in esecuzione il processo

Viene poi mandato in esecuzione il processo

(appartenente al nucleo) generatore di tutti gli altri

(appartenente al nucleo) generatore di tutti gli altri

   
 

processi. Esso

 
 
  è sempre presente in memoria • ha la massima priorità nell'ordine di esecuzione •

è sempre presente in memoria ha la massima priorità nell'ordine di esecuzione

 
 
priorità nell'ordine di esecuzione •     • attiva la fase di inizializzazione del sistema, di
priorità nell'ordine di esecuzione •     • attiva la fase di inizializzazione del sistema, di
• attiva la fase di inizializzazione del sistema, di controllo delle risorse disponibili e delle

attiva la fase di inizializzazione del sistema, di controllo delle risorse disponibili e delle linee di

fase di inizializzazione del sistema, di controllo delle risorse disponibili e delle linee di collegamento ai
fase di inizializzazione del sistema, di controllo delle risorse disponibili e delle linee di collegamento ai
fase di inizializzazione del sistema, di controllo delle risorse disponibili e delle linee di collegamento ai
collegamento ai terminali.

collegamento ai terminali.

fase di inizializzazione del sistema, di controllo delle risorse disponibili e delle linee di collegamento ai
Il Sistema Operativo viene “caricato” dall’hard disk sulla memoria RAM, solo in quel momento sul
Il Sistema Operativo
viene “caricato”
dall’hard disk sulla
memoria RAM, solo
in quel momento sul
monitor comparirà lo
sfondo del Sistema
Operativo caricato.
Boot
I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da
I Sistemi Operativi: definizione

I Sistemi Operativi: definizione

I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da interfaccia
I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da interfaccia
I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da interfaccia
I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da interfaccia
I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da interfaccia
I Sistemi Operativi: definizione Un Sistema Operativo è un insieme di programmi che fanno da interfaccia
Un Sistema Operativo è un insieme di programmi che fanno da interfaccia fra utente e

Un Sistema Operativo è un insieme di

programmi che fanno da interfaccia fra

utente e macchina consentendo la gestione

interfaccia fra utente e macchina consentendo la gestione delle risorse sia hardware che software. Esso infatti
interfaccia fra utente e macchina consentendo la gestione delle risorse sia hardware che software. Esso infatti
interfaccia fra utente e macchina consentendo la gestione delle risorse sia hardware che software. Esso infatti
interfaccia fra utente e macchina consentendo la gestione delle risorse sia hardware che software. Esso infatti
interfaccia fra utente e macchina consentendo la gestione delle risorse sia hardware che software. Esso infatti
delle risorse sia hardware che software.

delle risorse sia hardware che software.

la gestione delle risorse sia hardware che software. Esso infatti opera a livello macchina e offre
Esso infatti opera a livello macchina e offre

Esso infatti opera a livello macchina e offre

   
   
 

funzionalità di alto livello colloquiando con

 
   
   

uomo e macchina.

 
 
 
 
  funzionalità di alto livello colloquiando con           uomo e macchina.  
  funzionalità di alto livello colloquiando con           uomo e macchina.  
  funzionalità di alto livello colloquiando con           uomo e macchina.  
  funzionalità di alto livello colloquiando con           uomo e macchina.  
  funzionalità di alto livello colloquiando con           uomo e macchina.  
  funzionalità di alto livello colloquiando con           uomo e macchina.  
I Sistemi Operativi: dispositivi Esistono diversi dispositivi elettronici che per gestire la loro complessità sono
I Sistemi Operativi: dispositivi

I Sistemi Operativi: dispositivi

I Sistemi Operativi: dispositivi Esistono diversi dispositivi elettronici che per gestire la loro complessità sono
I Sistemi Operativi: dispositivi Esistono diversi dispositivi elettronici che per gestire la loro complessità sono
I Sistemi Operativi: dispositivi Esistono diversi dispositivi elettronici che per gestire la loro complessità sono
Esistono diversi dispositivi elettronici che per gestire la loro complessità sono dotati di un sistema

Esistono diversi dispositivi elettronici che

per gestire la loro complessità sono dotati di un sistema operativo.

la loro complessità sono dotati di un sistema operativo.             E
la loro complessità sono dotati di un sistema operativo.             E
la loro complessità sono dotati di un sistema operativo.             E
la loro complessità sono dotati di un sistema operativo.             E
la loro complessità sono dotati di un sistema operativo.             E
la loro complessità sono dotati di un sistema operativo.             E
la loro complessità sono dotati di un sistema operativo.             E
 
 
 
         
       
sistema operativo.             E SEMPI : • agende elettroniche    
sistema operativo.             E SEMPI : • agende elettroniche    
E SEMPI :
E SEMPI :

ESEMPI:

• agende elettroniche

agende elettroniche

   
   
   
 

telefoni cellulari

 
 
     
 
 

 
   
 
 
 
 
Nokia 7650 Palm m505 S e n d o z 1 0 0

Nokia 7650

Palm m505

Sendo z100

 
 
    • …           Nokia 7650 Palm m505 S e n
    • …           Nokia 7650 Palm m505 S e n
    • …           Nokia 7650 Palm m505 S e n
    • …           Nokia 7650 Palm m505 S e n
I Sistemi Operativi: storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in
I Sistemi Operativi: storia

I Sistemi Operativi: storia

I Sistemi Operativi: storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche
I Sistemi Operativi: storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche
I Sistemi Operativi: storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche
I Sistemi Operativi: storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche
A NNI ‘50: vengono progettati i primi S.O.

ANNI ‘50: vengono progettati i primi S.O.

•

storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche centinaia di istruzioni
storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche centinaia di istruzioni
storia A NNI ‘50: vengono progettati i primi S.O. • Consistono in poche centinaia di istruzioni
Consistono in poche centinaia di istruzioni per il

Consistono in poche centinaia di istruzioni per il

S.O. • Consistono in poche centinaia di istruzioni per il caricamento del programma in memoria centrale
caricamento del programma in memoria centrale e per la produzione, su un dispositivo di output,

caricamento del programma in memoria centrale e

per la produzione, su un dispositivo di output, dei

e per la produzione, su un dispositivo di output, dei risultati dell’elaborazione.        
e per la produzione, su un dispositivo di output, dei risultati dell’elaborazione.        
risultati dell’elaborazione.

risultati dell’elaborazione.

risultati dell’elaborazione.
   
     
   

L’interfaccia è formata da interruttori e spie luminose.

 
 
 
   
   
 
 
   
   

I comandi vengono impartiti

                I comandi vengono impartiti in codice binario .
                I comandi vengono impartiti in codice binario .
in codice binario .

in codice binario.

 
 
                I comandi vengono impartiti in codice binario .
                I comandi vengono impartiti in codice binario .
 
 
                I comandi vengono impartiti in codice binario .

I Sistemi Operativi: storia

I Sistemi Operativi: storia • A NNI ’60: alla AT&T nasce UNIX , capostipite di una

ANNI ’60: alla AT&T nasce UNIX, capostipite di una numerosa e varia

famiglia di sistemi operativi.

ANNI ’70: iniziano a diffondersi i

primi microcomputer.

ANNI ’80: a Seattle viene sviluppato QDOS (Quick and Dirty Operating System)

i primi microcomputer. • A NNI ’80: a Seattle viene sviluppato QDOS (Quick and Dirty Operating
i primi microcomputer. • A NNI ’80: a Seattle viene sviluppato QDOS (Quick and Dirty Operating

I Sistemi Operativi: storia

Dopo pochi mesi, un’altra ditta di Seattle, la Microsoft di Bill Gates, ne acquista i diritti per

la Microsoft di Bill Gates , ne acquista i diritti per rivendere il DOS all ’IBM

rivendere il DOS all’IBM, che nel

1981 lancia il primo PC dando il via

alla rivoluzione dei personal

computer.

per rivendere il DOS all ’IBM , che nel 1981 lancia il primo PC dando il
per rivendere il DOS all ’IBM , che nel 1981 lancia il primo PC dando il
per rivendere il DOS all ’IBM , che nel 1981 lancia il primo PC dando il

I Sistemi Operativi: storia

I Sistemi Operativi: storia • 1984: lancio dell’ Apple Macintosh , e del suo sistema operativo
I Sistemi Operativi: storia • 1984: lancio dell’ Apple Macintosh , e del suo sistema operativo

1984: lancio dell’Apple Macintosh, e del suo sistema operativo a interfaccia

Apple Macintosh , e del suo sistema operativo a interfaccia grafica, il System 1.0 • 1985:

grafica, il System 1.0

1985: la Microsoft lancia la

prima versione di Windows.

sistema operativo a interfaccia grafica, il System 1.0 • 1985: la Microsoft lancia la prima versione

I Sistemi Operativi: storia

1991: uno studente finlandese, Linus Torvalds, sviluppa il kernel per un sistema operativo basato su una variante di UNIX.

Lo distribuisce in rete secondo la

GNU General Public License, una

licenza che ne consente l’uso, la

redistribuzione e la modifica (a

determinate condizioni).

Inizia a ricevere subito

contributi da altri sviluppatori.

la redistribuzione e la modifica (a determinate condizioni). Inizia a ricevere subito contributi da altri sviluppatori
la redistribuzione e la modifica (a determinate condizioni). Inizia a ricevere subito contributi da altri sviluppatori
la redistribuzione e la modifica (a determinate condizioni). Inizia a ricevere subito contributi da altri sviluppatori

I Sistemi Operativi: storia

I Sistemi Operativi: storia Nasce così LINUX , una delle varianti UNIX oggi più diffusa. Il

Nasce così LINUX, una delle varianti UNIX oggi più diffusa. Il kernel di Linux è continuamente aggiornato e disponibile anche gratuitamente.

Uno dei sui punti di forza è la comunità che lo supporta e la filosofia su cui si basa, è quella del software libero.

dei sui punti di forza è la comunità che lo supporta e la filosofia su cui
dei sui punti di forza è la comunità che lo supporta e la filosofia su cui
dei sui punti di forza è la comunità che lo supporta e la filosofia su cui
I Sistemi Operativi: tipologie Un sistema operativo è caratterizzato da un insieme di processi di
I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie Un sistema operativo è caratterizzato da un insieme di processi di servizio
I Sistemi Operativi: tipologie Un sistema operativo è caratterizzato da un insieme di processi di servizio
I Sistemi Operativi: tipologie Un sistema operativo è caratterizzato da un insieme di processi di servizio
Un sistema operativo è caratterizzato da un insieme di processi di servizio e da un

Un sistema operativo è caratterizzato da un insieme di processi di servizio e da un gestore (nucleo) che opera come sistema di controllo dei processi.

(nucleo) che opera come sistema di controllo dei processi. Si possono identificare diverse alternative a seconda
(nucleo) che opera come sistema di controllo dei processi. Si possono identificare diverse alternative a seconda
(nucleo) che opera come sistema di controllo dei processi. Si possono identificare diverse alternative a seconda
(nucleo) che opera come sistema di controllo dei processi. Si possono identificare diverse alternative a seconda
(nucleo) che opera come sistema di controllo dei processi. Si possono identificare diverse alternative a seconda
(nucleo) che opera come sistema di controllo dei processi. Si possono identificare diverse alternative a seconda
Si possono identificare diverse alternative a seconda della collocazione delle funzioni di gestione del processore.

Si possono identificare diverse alternative a seconda della collocazione delle funzioni di gestione del processore. Tali funzioni possono essere fornite ad un processo alla volta oppure possono essere virtualmente condivise.

alla volta oppure possono essere virtualmente condivise.                
alla volta oppure possono essere virtualmente condivise.                
alla volta oppure possono essere virtualmente condivise.                
alla volta oppure possono essere virtualmente condivise.                
   
   
 
 
 
   
   
 
 

Modello monolitico

 
• Modello a livelli
• Modello a livelli
• Modello a livelli
• Modello a livelli

Modello a livelli

• Modello a livelli
• Confronto fra modelli
• Confronto fra modelli

Confronto fra modelli

• Confronto fra modelli
          • Modello monolitico   • Modello a livelli • Confronto fra
 
 
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo
I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
Modello monolitico

Modello monolitico

I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
I Sistemi Operativi: tipologie Modello monolitico Il sistema operativo è costituito da un unico processo che
Il sistema operativo è costituito da un unico processo che si preoccupa della gestione del

Il sistema operativo è costituito da un unico processo

che si preoccupa della gestione del sistema.

processo che si preoccupa della gestione del sistema. I processi applicativi, in genere, richiedono al sistema
processo che si preoccupa della gestione del sistema. I processi applicativi, in genere, richiedono al sistema
processo che si preoccupa della gestione del sistema. I processi applicativi, in genere, richiedono al sistema
processo che si preoccupa della gestione del sistema. I processi applicativi, in genere, richiedono al sistema
I processi applicativi, in genere, richiedono al sistema operativo l’esecuzione di particolari servizi attraverso

I processi applicativi, in genere, richiedono al sistema operativo l’esecuzione di particolari servizi attraverso quelle che vengono dette chiamate di

   
   
 
   
 
sistema.

sistema.

 
 
 
 
 
che vengono dette chiamate di                 sistema.    
che vengono dette chiamate di                 sistema.    
che vengono dette chiamate di                 sistema.    
che vengono dette chiamate di                 sistema.    
che vengono dette chiamate di                 sistema.    
che vengono dette chiamate di                 sistema.    
I Sistemi Operativi: tipologie Modello monolitico Si hanno due modalità di funzionamento: • Utente: usata
I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie Modello monolitico Si hanno due modalità di funzionamento: • Utente: usata per
I Sistemi Operativi: tipologie Modello monolitico Si hanno due modalità di funzionamento: • Utente: usata per
Modello monolitico

Modello monolitico

I Sistemi Operativi: tipologie Modello monolitico Si hanno due modalità di funzionamento: • Utente: usata per
Si hanno due modalità di funzionamento:

Si hanno due modalità di funzionamento:

Modello monolitico Si hanno due modalità di funzionamento: • Utente: usata per la normale esecuzione dei
Modello monolitico Si hanno due modalità di funzionamento: • Utente: usata per la normale esecuzione dei
• Utente: usata per la normale esecuzione dei processi; non permette l’accesso a tutte le

Utente: usata per la normale esecuzione dei processi; non permette l’accesso a tutte le risorse del sistema. Supervisore: permette lo svolgimento dei servizi richiesti al sistema operativo da parte di un

dei servizi richiesti al sistema operativo da parte di un            
dei servizi richiesti al sistema operativo da parte di un            
dei servizi richiesti al sistema operativo da parte di un            
dei servizi richiesti al sistema operativo da parte di un            
dei servizi richiesti al sistema operativo da parte di un            
dei servizi richiesti al sistema operativo da parte di un            
dei servizi richiesti al sistema operativo da parte di un            
   
 
   
 
   

processo.

 
 
 
 
  Tale approccio è tipico di sistemi semplici, dedicati alla gestione di una sola applicazione; dai

Tale approccio è tipico di sistemi semplici, dedicati alla gestione di una sola applicazione; dai primi anni

tipico di sistemi semplici, dedicati alla gestione di una sola applicazione; dai primi anni ’90 sono

’90 sono diventati obsoleti.

 
 
 
 
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
gestione di una sola applicazione; dai primi anni ’90 sono diventati obsoleti.        
 
 
I Sistemi Operativi: tipologie Modello a livelli • Ha una struttura a strati, ognuno dei
I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie Modello a livelli • Ha una struttura a strati, ognuno dei quali
I Sistemi Operativi: tipologie Modello a livelli • Ha una struttura a strati, ognuno dei quali
Modello a livelli

Modello a livelli

I Sistemi Operativi: tipologie Modello a livelli • Ha una struttura a strati, ognuno dei quali
I Sistemi Operativi: tipologie Modello a livelli • Ha una struttura a strati, ognuno dei quali
• Ha una struttura a strati, ognuno dei quali è costruito a partire da quelli

Ha una struttura a strati, ognuno dei quali è costruito a partire da quelli sottostanti

garantendo così la modularità del sistema.

sottostanti garantendo così la modularità del sistema. • Le funzioni realizzate dal sistema operativo sono
sottostanti garantendo così la modularità del sistema. • Le funzioni realizzate dal sistema operativo sono
sottostanti garantendo così la modularità del sistema. • Le funzioni realizzate dal sistema operativo sono
sottostanti garantendo così la modularità del sistema. • Le funzioni realizzate dal sistema operativo sono
sottostanti garantendo così la modularità del sistema. • Le funzioni realizzate dal sistema operativo sono
• Le funzioni realizzate dal sistema operativo sono ripartite in componenti, fra loro indipendenti e

Le funzioni realizzate dal sistema operativo sono

ripartite in componenti, fra loro indipendenti e

sono ripartite in componenti, fra loro indipendenti e implementate dai processi gestiti dal nucleo.    
sono ripartite in componenti, fra loro indipendenti e implementate dai processi gestiti dal nucleo.    
implementate dai processi gestiti dal nucleo.

implementate dai processi gestiti dal nucleo.

   
   
 

Solo il nucleo dipende dalle caratteristiche hardware del calcolatore; in questo modo vi è una

 
   
 
 

notevole separazione fra meccanismi e politiche di

gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.

 
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
 
 
di gestione delle risorse che possono pertanto essere stabilite indipendentemente dall’hardware.    
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile
I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
Modello a livelli

Modello a livelli

I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
I Sistemi Operativi: tipologie Modello a livelli • Il sistema operativo risulta quindi fortemente portabile (ad
• Il sistema operativo risulta quindi fortemente

Il sistema operativo risulta quindi fortemente

portabile (ad eccezione del nucleo) e adattabile a
portabile (ad eccezione del nucleo) e adattabile a

portabile (ad eccezione del nucleo) e adattabile a

calcolatori diversi

calcolatori diversi

(ad eccezione del nucleo) e adattabile a calcolatori diversi     • I sistemi operativi attualmente
(ad eccezione del nucleo) e adattabile a calcolatori diversi     • I sistemi operativi attualmente
   

I sistemi operativi attualmente più diffusi

 
 
  adottano un approccio di questo tipo; ogni strato corrisponde ad una macchina virtuale che usa

adottano un approccio di questo tipo; ogni strato corrisponde ad una macchina virtuale che usa i

servizi del livello sottostante

 
 
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  
 
 
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  
tipo; ogni strato corrisponde ad una macchina virtuale che usa i servizi del livello sottostante  

I Sistemi Operativi: tipologie

Modello a livelli

Vantaggi
Vantaggi
Svantaggi
Svantaggi

Astrazione: ogni livello è un

oggetto astratto che

fornisce ai livelli superiori

una visione astratta del

sistema (Macchina Virtuale).

Modularità: le relazioni tra i livelli sono chiaramente esplicitate dalle interfacce

possibilità di sviluppo,

verifica, modifica in modo

indipendente dagli altri livelli.

Organizzazione gerarchica

tra le componenti: non

sempre è possibile difficoltà di realizzazione.

Scarsa efficienza: costo di

attraversamento dei livelli.

Confronto fra modelli

Confronto fra modelli Modello monolitico Modello a livelli • basso costo di interazione tra le componenti;
Confronto fra modelli Modello monolitico Modello a livelli • basso costo di interazione tra le componenti;

Modello monolitico

Modello a livelli

basso costo di interazione tra

le componenti;

sistema complesso;

un unico modulo contenente un insieme di procedure che realizzano le varie componenti;

l’interazione tra le diverse componenti avviene mediante il meccanismo di chiamata a

procedura.

il sistema operativo è costituito da livelli sovrapposti;

ogni livello realizza un insieme

di funzionalità che vengono offerte al livello superiore mediante un’interfaccia;

ogni livello utilizza le

funzionalità offerte dal livello sottostante, per realizzare altre funzionalità.

I Sistemi Operativi: tipologie Modello a livelli FUNZIONI: • Gestione dell’unità centrale (gestore dei processi)
I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie

I Sistemi Operativi: tipologie Modello a livelli FUNZIONI: • Gestione dell’unità centrale (gestore dei processi) •
I Sistemi Operativi: tipologie Modello a livelli FUNZIONI: • Gestione dell’unità centrale (gestore dei processi) •
Modello a livelli

Modello a livelli

I Sistemi Operativi: tipologie Modello a livelli FUNZIONI: • Gestione dell’unità centrale (gestore dei processi) •
FUNZIONI:

FUNZIONI:

I Sistemi Operativi: tipologie Modello a livelli FUNZIONI: • Gestione dell’unità centrale (gestore dei processi) •
I Sistemi Operativi: tipologie Modello a livelli FUNZIONI: • Gestione dell’unità centrale (gestore dei processi) •
• Gestione dell’unità centrale (gestore dei processi)

Gestione dell’unità centrale (gestore dei processi)

• Gestione dell’unità centrale (gestore dei processi) • Inizializzazione e terminazione del lavoro macchina •
• Gestione dell’unità centrale (gestore dei processi) • Inizializzazione e terminazione del lavoro macchina •
• Inizializzazione e terminazione del lavoro macchina

Inizializzazione e terminazione del lavoro macchina

• Inizializzazione e terminazione del lavoro macchina • Gestione della memoria centrale • Gestione
• Gestione della memoria centrale

Gestione della memoria centrale

del lavoro macchina • Gestione della memoria centrale • Gestione ottimizzata delle unità di Input/Output
• Gestione ottimizzata delle unità di Input/Output

Gestione ottimizzata delle unità di Input/Output

   
   

(periferiche)

 
 
   

Gestione delle operazioni di lettura e scrittura su memorie di massa (file system)

 
 
 
 
 
 
• Supportare il programmatore nella stesura dei programmi (interprete dei comandi)

Supportare il programmatore nella stesura dei

programmi (interprete dei comandi)

      • Supportare il programmatore nella stesura dei programmi (interprete dei comandi)  
      • Supportare il programmatore nella stesura dei programmi (interprete dei comandi)  
 
 
      • Supportare il programmatore nella stesura dei programmi (interprete dei comandi)  
Modello a livelli: struttura interna La struttura di un sistema operativo a livelli, tipicamente, è
Modello a livelli: struttura interna
La struttura di un sistema operativo a
livelli, tipicamente, è quella onion skin o a
buccia di cipolla:
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.
Modello a livelli: Hardware L’hardware è dunque “ricoperto” da una serie di strati di software.

Modello a livelli: Hardware

L’hardware è dunque “ricoperto” da una serie

di strati di software.

Ciascun livello:

da una serie di strati di software. Ciascun livello: usa le funzionalità di quello sottostante •
da una serie di strati di software. Ciascun livello: usa le funzionalità di quello sottostante •

usa le funzionalità di quello sottostante

livello: usa le funzionalità di quello sottostante • • fornisce servizi al livello sovrastante gestisce

livello: usa le funzionalità di quello sottostante • • fornisce servizi al livello sovrastante gestisce le

fornisce servizi al livello sovrastante

• • fornisce servizi al livello sovrastante gestisce le risorse mediante politiche invisibili ai

gestisce le risorse mediante politiche invisibili ai livelli superiori

Modello a livelli: macchine virtuali

Si crea, in questo modo, una gerarchia di macchine virtuali”.

L’esperto che scrive un sistema operativo lo vede come un insieme di risorse fisiche da

comandare direttamente;

colui che progetta un ambiente di programmazione vede la

macchina come l’insieme delle

funzioni messe a disposizione

dal sistema operativo;

ambiente di programmazione vede la macchina come l’insieme delle funzioni messe a disposizione dal sistema operativo;
Modello a livelli: macchine virtuali • l’utente che usa un linguaggio di alto livello per
Modello a livelli: macchine virtuali

Modello a livelli: macchine virtuali

Modello a livelli: macchine virtuali • l’utente che usa un linguaggio di alto livello per progettare
Modello a livelli: macchine virtuali • l’utente che usa un linguaggio di alto livello per progettare
Modello a livelli: macchine virtuali • l’utente che usa un linguaggio di alto livello per progettare
Modello a livelli: macchine virtuali • l’utente che usa un linguaggio di alto livello per progettare
Modello a livelli: macchine virtuali • l’utente che usa un linguaggio di alto livello per progettare
• l’utente che usa un linguaggio di alto livello per progettare un programma applicativo vede

l’utente che usa un linguaggio di alto livello per progettare un programma applicativo vede l’elaboratore come l’insieme delle

applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ ambiente di
funzionalità messe a disposizione dall’ ambiente di programmazione ;
funzionalità messe a disposizione dall’ ambiente di programmazione ;
funzionalità messe a disposizione dall’ ambiente di programmazione ;

funzionalità messe a disposizione

dall’ambiente di programmazione;

   
   

per l’utilizzatore di un programma applicativo, infine, il sistema appare virtualmente come l’insieme dei comandi che può

fornire alla macchina per

soddisfare le sue esigenze.

 
 
 
 
 
 
 
 
dei comandi che può fornire alla macchina per soddisfare le sue esigenze.        
dei comandi che può fornire alla macchina per soddisfare le sue esigenze.        
dei comandi che può fornire alla macchina per soddisfare le sue esigenze.        
dei comandi che può fornire alla macchina per soddisfare le sue esigenze.        
dei comandi che può fornire alla macchina per soddisfare le sue esigenze.        
 
 

Modello a livelli: macchine virtuali

Riassumendo:

l’utente finale del sistema interagisce solo

con il livello più esterno della gerarchia;

idealmente, l’utente finale è ignaro di tutti i dettagli delle operazioni svolte dai livelli

inferiori;

potrebbe (sempre idealmente) essere a

conoscenza solo delle operazioni che è

interessato ad effettuare.

inferiori; • potrebbe (sempre idealmente) essere a conoscenza solo delle operazioni che è interessato ad effettuare
Modello a livelli: gestione CPU Il livello più basso è quello del kernel (nucleo). Questa
Modello a livelli: gestione CPU

Modello a livelli: gestione CPU

Modello a livelli: gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte
Modello a livelli: gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte
Modello a livelli: gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte
Modello a livelli: gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte
Modello a livelli: gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte
Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si

Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si occupa di

gestire l’esecuzione dei programmi.

si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo .  
si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo .  
si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo .  
si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo .  
si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo .  
si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo .  
Un programma in esecuzione è detto processo .

Un programma in esecuzione è detto processo.

programmi. Un programma in esecuzione è detto processo .              
programmi. Un programma in esecuzione è detto processo .              
programmi. Un programma in esecuzione è detto processo .              
programmi. Un programma in esecuzione è detto processo .              
   
 
   
 
 
 
 

Il kernel distribuisce

   
   
 
   
 

le risorse di calcolo tra i vari processi attivi.

 
 
            le risorse di calcolo tra i vari processi attivi.  
            le risorse di calcolo tra i vari processi attivi.  
            le risorse di calcolo tra i vari processi attivi.  
 
 
            le risorse di calcolo tra i vari processi attivi.  
            le risorse di calcolo tra i vari processi attivi.  
            le risorse di calcolo tra i vari processi attivi.  
 
 
Modello a livelli: gestione CPU Definizioni: • Programma (nozione statica) elenco di istruzioni • Processo
Modello a livelli: gestione CPU
Definizioni:
• Programma (nozione statica)
elenco di istruzioni
• Processo (nozione dinamica)
programma in esecuzione
programma + stato corrente variabili
valori in memoria centrale
valori nei registri della CPU
In un PC un solo processo in esecuzione alla volta.
Modello a livelli: gestione CPU Funzioni del nucleo: • Gestire l’esecuzione dei programmi cioè mantenere
Modello a livelli: gestione CPU
Funzioni del nucleo:
Gestire l’esecuzione dei programmi cioè
mantenere attivi nella CPU i corrispondenti
processi.
In ambiente multi-utente, decidere a quale
processo assegnare la CPU;
reagire agli eventi esterni (interruzioni
provenienti dalle periferiche).
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi
Modello a livelli: gestione CPU

Modello a livelli: gestione CPU

Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Stato di un processo
Stato di un processo
Stato di un processo
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Modello a livelli: gestione CPU Stato di un processo Durante l’esecuzione un processo può trovarsi in
Durante l’esecuzione un processo può trovarsi in uno dei seguenti stati:

Durante l’esecuzione un processo può trovarsi in

uno dei seguenti stati:

un processo può trovarsi in uno dei seguenti stati: • nuovo : creato • esecuzione :
un processo può trovarsi in uno dei seguenti stati: • nuovo : creato • esecuzione :
un processo può trovarsi in uno dei seguenti stati: • nuovo : creato • esecuzione :
• nuovo : creato

nuovo: creato

trovarsi in uno dei seguenti stati: • nuovo : creato • esecuzione : esegue istruzioni  
• esecuzione : esegue istruzioni

esecuzione: esegue istruzioni

   
   
 

attesa: attende il verificarsi di qualche evento

 
 
   
 
   
 
 

pronto: attende di essere assegnato alla CPU

 
 
• terminato : ha terminato l’esecuzione
• terminato : ha terminato l’esecuzione

terminato: ha terminato l’esecuzione

• pronto : attende di essere assegnato alla CPU     • terminato : ha terminato
 
 
• pronto : attende di essere assegnato alla CPU     • terminato : ha terminato
• pronto : attende di essere assegnato alla CPU     • terminato : ha terminato
• pronto : attende di essere assegnato alla CPU     • terminato : ha terminato
• pronto : attende di essere assegnato alla CPU     • terminato : ha terminato
Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe
Modello a livelli: gestione CPU

Modello a livelli: gestione CPU

Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe ad
Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe ad
Interruzione interna

Interruzione interna

Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe ad
Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe ad
Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe ad
Modello a livelli: gestione CPU Interruzione interna • L’esecuzione di un processo attivo si interrompe ad
• L’esecuzione di un processo attivo si interrompe ad es. per operazioni di input/output (costose

L’esecuzione di un processo attivo si interrompe ad es. per operazioni di input/output (costose in termini di tempo).

operazioni di input/output (costose in termini di tempo). • Lo stato corrente (contenuto registri) del processo
operazioni di input/output (costose in termini di tempo). • Lo stato corrente (contenuto registri) del processo
operazioni di input/output (costose in termini di tempo). • Lo stato corrente (contenuto registri) del processo
operazioni di input/output (costose in termini di tempo). • Lo stato corrente (contenuto registri) del processo
• Lo stato corrente (contenuto registri) del

Lo stato corrente (contenuto registri) del

di tempo). • Lo stato corrente (contenuto registri) del processo interrotto viene salvato in memoria.  
processo interrotto viene salvato in memoria.

processo interrotto viene salvato in memoria.

   
   
 

Il processo passa allo stato in attesa.

 
 
   
 
   
 
 

Il controllo passa ad un processo di sistema che assegna la CPU ad un altro processo (per

poter ottimizzare l’utilizzo della CPU).

 
 
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).
 
 
di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU).

Modello a livelli: gestione CPU

Interruzione interna

Modello a livelli: gestione CPU Interruzione interna Inizio Ripristina stato attivo pronto Fine attesa Salva

Inizio

Ripristina

stato

gestione CPU Interruzione interna Inizio Ripristina stato attivo pronto Fine attesa Salva Acknowledgement stato
attivo
attivo
CPU Interruzione interna Inizio Ripristina stato attivo pronto Fine attesa Salva Acknowledgement stato operazione (=
pronto
pronto

Fine

interna Inizio Ripristina stato attivo pronto Fine attesa Salva Acknowledgement stato operazione (=
attesa
attesa

Salva

Acknowledgement

stato

operazione

(= riconoscimento)

Modello a livelli: gestione CPU

Interruzione esterna

• Una periferica segnala fine-operazione. • L’esecuzione del processo corrente viene interrotta e passa al
• Una periferica segnala fine-operazione.
• L’esecuzione del processo corrente viene
interrotta e passa al gestore delle interruzioni.
• Il gestore delle interruzioni provvede ad es. a
trasferire dati in memoria e risvegliare il
processo in attesa che passa allo stato pronto.
• Il controllo passa poi al nucleo che manda in
esecuzione uno dei processi in stato pronto.
• Gestore lavoro con interruzioni disabilitate.
Modello a livelli: gestione CPU S cheduling dei processi • Il sistema operativo può interrompere
Modello a livelli: gestione CPU S cheduling dei processi

Modello a livelli: gestione CPU

Scheduling dei processi

Modello a livelli: gestione CPU S cheduling dei processi • Il sistema operativo può interrompere i
Modello a livelli: gestione CPU S cheduling dei processi • Il sistema operativo può interrompere i
Modello a livelli: gestione CPU S cheduling dei processi • Il sistema operativo può interrompere i
Modello a livelli: gestione CPU S cheduling dei processi • Il sistema operativo può interrompere i
• Il sistema operativo può interrompere i processi per assicurare una politica fair (= giusta)

Il sistema operativo può interrompere i processi per assicurare una politica fair (= giusta) di

esecuzione.

assicurare una politica fair (= giusta) di esecuzione. • Scheduler = parte di sistema operativo che
assicurare una politica fair (= giusta) di esecuzione. • Scheduler = parte di sistema operativo che
assicurare una politica fair (= giusta) di esecuzione. • Scheduler = parte di sistema operativo che
assicurare una politica fair (= giusta) di esecuzione. • Scheduler = parte di sistema operativo che
assicurare una politica fair (= giusta) di esecuzione. • Scheduler = parte di sistema operativo che
• Scheduler = parte di sistema operativo che sceglie il processo da mandare in esecuzione.

Scheduler = parte di sistema operativo che

sceglie il processo da mandare in esecuzione.

che sceglie il processo da mandare in esecuzione. • Due possibili politiche di scheduling:    
che sceglie il processo da mandare in esecuzione. • Due possibili politiche di scheduling:    
che sceglie il processo da mandare in esecuzione. • Due possibili politiche di scheduling:    
• Due possibili politiche di scheduling:

Due possibili politiche di scheduling:

   
     
     
 

Round robin

 
 
   
   
 
  • Priorità

Priorità

 
 
   
• Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc
• Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc

Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc

Priorità         • Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc  
Priorità         • Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc  
Priorità         • Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc  
Priorità         • Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc  
 
 
Priorità         • Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc  

Modello a livelli: gestione CPU

Diagramma delle transizioni tra gli stati dei processi
Diagramma delle transizioni tra gli stati dei processi

nuovo

ammesso

interruzione esterna

fine quanto di tempo

esecuzione

scheduling

interruzione

interna

terminato

fine esecuzione

abort per errore

pronto

fine I/O

evento verificato

attesa

Modello a livelli: gestione CPU

Scheduling dei processi: Round Robin

• Gestione dei processi in attesa tramite una coda (FIFO = first-in first-out). • Ogni
• Gestione dei processi in attesa tramite una
coda (FIFO = first-in first-out).
• Ogni processo ha un quanto di tempo (time
slice) di esecuzione dopo il quale torna in
attesa.

Quanto >> Tempo per salvare - ripristinare stato (context switching)

Tempo per salvare - ripristinare stato (context switching) • Quanto << Tempo di esecuzione del programma
• Quanto << Tempo di esecuzione del programma (per assicurare fairness = equità)
• Quanto << Tempo di esecuzione del
programma (per assicurare fairness =
equità)
stato (context switching) • Quanto << Tempo di esecuzione del programma (per assicurare fairness = equità)

Modello a livelli: gestione CPU

Scheduling dei processi: Priorità

• Si assegna una priorità ad ogni processo e si manda in esecuzione quello con
• Si assegna una priorità ad ogni processo e si
manda in esecuzione quello con priorità più
alta.
• La priorità può essere assegnata:
• staticamente ed essere ridotta durante
l’esecuzione (ancora per ragioni di fairness)
e se risulta più bassa di un processo in
attesa context switching;
• dinamicamente a seconda delle operazioni
effettuate dal processo (es. seleziona
subito processi con operazioni I/O).
Modello a livelli: gestione memoria La memoria è una risorsa : • Essenziale : ogni
Modello a livelli: gestione memoria

Modello a livelli: gestione memoria

Modello a livelli: gestione memoria La memoria è una risorsa : • Essenziale : ogni programma
Modello a livelli: gestione memoria La memoria è una risorsa : • Essenziale : ogni programma
Modello a livelli: gestione memoria La memoria è una risorsa : • Essenziale : ogni programma
La memoria è una risorsa : • Essenziale : ogni programma in esecuzione (processo) deve
La memoria è una risorsa : • Essenziale : ogni programma in esecuzione (processo) deve

La memoria è una risorsa :

La memoria è una risorsa : • Essenziale : ogni programma in esecuzione (processo) deve essere

Essenziale: ogni programma in esecuzione (processo) deve essere “caricato” in memoria così come i dati su cui opera

“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
“caricato” in memoria così come i dati su cui opera • Limitata : nei sistemi moderni
• Limitata : nei sistemi moderni possono essere attivi più processi nello stesso tempo
• Limitata : nei sistemi moderni possono essere attivi più processi nello stesso tempo

Limitata: nei sistemi moderni possono essere

attivi più processi nello

stesso tempo

• Limitata : nei sistemi moderni possono essere attivi più processi nello stesso tempo
• Limitata : nei sistemi moderni possono essere attivi più processi nello stesso tempo
possono essere attivi più processi nello stesso tempo                
   
 
 
 
   
 
 
possono essere attivi più processi nello stesso tempo                
possono essere attivi più processi nello stesso tempo                
possono essere attivi più processi nello stesso tempo                
possono essere attivi più processi nello stesso tempo                
 
 
 
possono essere attivi più processi nello stesso tempo                
possono essere attivi più processi nello stesso tempo                
Modello a livelli: gestione memoria La memoria di sistema (RAM) è una risorsa finita, quindi
Modello a livelli: gestione memoria

Modello a livelli: gestione memoria

Modello a livelli: gestione memoria La memoria di sistema (RAM) è una risorsa finita, quindi il
Modello a livelli: gestione memoria La memoria di sistema (RAM) è una risorsa finita, quindi il
Modello a livelli: gestione memoria La memoria di sistema (RAM) è una risorsa finita, quindi il
Modello a livelli: gestione memoria La memoria di sistema (RAM) è una risorsa finita, quindi il
La memoria di sistema (RAM) è una risorsa finita,

La memoria di sistema (RAM) è una risorsa finita,

quindi il sistema operativo (gestore della memoria) deve risolvere vari problemi:
quindi il sistema operativo (gestore della memoria) deve risolvere vari problemi:

quindi il sistema operativo (gestore della memoria)

deve risolvere vari problemi:

(gestore della memoria) deve risolvere vari problemi: • trovare spazio per i vari processi e quindi
(gestore della memoria) deve risolvere vari problemi: • trovare spazio per i vari processi e quindi
(gestore della memoria) deve risolvere vari problemi: • trovare spazio per i vari processi e quindi
• trovare spazio per i vari processi e quindi partizionare la memoria tra i processi

trovare spazio per i vari processi e quindi partizionare la memoria tra i processi che la

richiedono;

partizionare la memoria tra i processi che la richiedono;     • “ rilocare ” il
partizionare la memoria tra i processi che la richiedono;     • “ rilocare ” il
partizionare la memoria tra i processi che la richiedono;     • “ rilocare ” il
partizionare la memoria tra i processi che la richiedono;     • “ rilocare ” il
   

rilocare” il codice caricato in memoria;

 
 
   
 
 

ridurre la frammentazione.

 
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria

Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una

Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.

memoria dedicata.

Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.
Gli strati superiori del sistema operativo hanno così l’illusione che ogni processo abbia una memoria dedicata.
Modello a livelli: gestione memoria Funzioni del gestore della memoria: • Controllare la memoria centrale
Modello a livelli: gestione memoria

Modello a livelli: gestione memoria

Modello a livelli: gestione memoria Funzioni del gestore della memoria: • Controllare la memoria centrale •
Modello a livelli: gestione memoria Funzioni del gestore della memoria: • Controllare la memoria centrale •
Modello a livelli: gestione memoria Funzioni del gestore della memoria: • Controllare la memoria centrale •
Funzioni del gestore della memoria:
Funzioni del gestore della memoria:
Funzioni del gestore della memoria:
gestione memoria Funzioni del gestore della memoria: • Controllare la memoria centrale • Offrire ad ogni
gestione memoria Funzioni del gestore della memoria: • Controllare la memoria centrale • Offrire ad ogni
• Controllare la memoria centrale

Controllare la memoria centrale

gestore della memoria: • Controllare la memoria centrale • Offrire ad ogni processo uno spazio di
gestore della memoria: • Controllare la memoria centrale • Offrire ad ogni processo uno spazio di
• Offrire ad ogni processo uno spazio di memoria in cui operare

Offrire ad ogni processo uno spazio di memoria

in cui operare

ad ogni processo uno spazio di memoria in cui operare • Proteggere programmi e relativi dati
ad ogni processo uno spazio di memoria in cui operare • Proteggere programmi e relativi dati
ad ogni processo uno spazio di memoria in cui operare • Proteggere programmi e relativi dati
• Proteggere programmi e relativi dati caricati nella memoria di lavoro (evitando conflitti)

Proteggere programmi e relativi dati caricati nella memoria di lavoro (evitando conflitti)

dati caricati nella memoria di lavoro (evitando conflitti)           • Nascondere la
   
   
 

Nascondere la collocazione fisica dei dati

 
   
 
   
 
 

Offrire alle macchine di livello superiore la

possibilità di lavorare come se avessero a

 
 
superiore la possibilità di lavorare come se avessero a     disposizione una memoria a loro
superiore la possibilità di lavorare come se avessero a     disposizione una memoria a loro
superiore la possibilità di lavorare come se avessero a     disposizione una memoria a loro
disposizione una memoria a loro dedicata.

disposizione una memoria a loro dedicata.

superiore la possibilità di lavorare come se avessero a     disposizione una memoria a loro
superiore la possibilità di lavorare come se avessero a     disposizione una memoria a loro
 
 
superiore la possibilità di lavorare come se avessero a     disposizione una memoria a loro
Modello a livelli: gestione memoria Memoria Video/Tastiera Memoria di massa (terminale) di lavoro Interfaccia I/O
Modello a livelli: gestione memoria
Memoria
Video/Tastiera
Memoria
di massa
(terminale)
di lavoro
Interfaccia I/O
Interfaccia I/O
B
dati
indirizzi
U
controllo
S
CPU
CPU
CPU
CPU
virtuale
virtuale
virtuale
virtuale
processo
processo
processo
processo
Memoria
Memoria
Memoria
Memoria
Modello a livelli: gestione memoria Funzioni del LOADER (programma del kernel): • Caricare i programmi:
Modello a livelli: gestione memoria
Funzioni del LOADER (programma del kernel):
• Caricare i programmi: per poter essere eseguiti i
programmi (o almeno una parte) devono essere
caricati in memoria insieme ai dati utilizzati.
• Rilocare i programmi: i programmi in linguaggio
macchina fanno riferimento a degli indirizzi logici o
virtuali di memoria e non ad indirizzi assoluti (cioe'
fisici), quindi il caricatore deve rilocare i programmi,
cioè trasformare gli indirizzi logici in indirizzi fisici,
cioè indirizzi delle locazioni di memoria, ove il
programma viene effettivamente caricato.
Modello a livelli: gestione memoria Si hanno quindi due tipi di indirizzi: • logico :
Modello a livelli: gestione memoria
Si hanno quindi due tipi di indirizzi:
• logico : indirizzo virtuale, generato dalla CPU
• fisico : visto dall’unità di memoria.
Gli indirizzi logici e gli indirizzi fisici sono uguali
nella compilazione e nel caricamento ma, durante
l’esecuzione, quelli logici sono detti virtuali e
differiscono da quelli fisici.

Modello a livelli: gestione memoria

Swapping
Swapping
• Un processo può essere temporaneamente riportato (swapped) su disco (backing store) e poi riportato
Un processo può essere temporaneamente
riportato (swapped) su disco (backing store) e
poi riportato in memoria per riprendere
l’esecuzione.

Roll out, roll in : operazioni di swapping usate per algoritmi basati su priorità quando un processo a più bassa priorità viene rimosso dalla

memoria per far posto ad uno con alta priorità. •
memoria per far posto ad uno con alta priorità.

Il tempo di swap è per lo più il tempo di trasferimento. E’ proporzionale alla dimensione

dell’area di memoria sottoposta a swap.
dell’area di memoria sottoposta a swap.
Modello a livelli: gestione memoria Swapping tra due processi
Modello a livelli: gestione memoria
Swapping tra due processi
Modello a livelli: gestione memoria Partizione singola   La RAM è usualmente divisa in due
Modello a livelli: gestione memoria

Modello a livelli: gestione memoria

Modello a livelli: gestione memoria Partizione singola   La RAM è usualmente divisa in due partizioni:
Modello a livelli: gestione memoria Partizione singola   La RAM è usualmente divisa in due partizioni:
Partizione singola  
Partizione singola
Partizione singola
 
a livelli: gestione memoria Partizione singola   La RAM è usualmente divisa in due partizioni:  
a livelli: gestione memoria Partizione singola   La RAM è usualmente divisa in due partizioni:  
La RAM è usualmente divisa in due partizioni:  

La RAM è usualmente divisa

in due partizioni:

 
La RAM è usualmente divisa in due partizioni:   • Partizione del sistema operativo.   •
La RAM è usualmente divisa in due partizioni:   • Partizione del sistema operativo.   •
La RAM è usualmente divisa in due partizioni:   • Partizione del sistema operativo.   •
• Partizione del sistema

Partizione del sistema

operativo.  

operativo.

 
  • Partizione del sistema operativo.   • Partizione per i processi utente.    
  • Partizione del sistema operativo.   • Partizione per i processi utente.    
• Partizione per i processi utente.

Partizione per i processi

utente.

  • Partizione per i processi utente.                
  • Partizione per i processi utente.                
   
   
   
 
 
 
 
   
 
   
 
 
 
 
utente.                              
utente.                              
utente.                              
utente.                              
utente.                              
utente.                              
 
 
utente.                              
Modello a livelli: partizione singola
Modello a livelli: partizione singola
Modello a livelli: partizione singola
Modello a livelli: partizione singola
Modello a livelli: partizione singola

Modello a livelli: partizione singola

Modello a livelli: partizione singola
• Allocazione con partizione singola • Registro di rilocazione è usato per proteggere i processi
• Allocazione con partizione singola
• Registro di rilocazione è usato per
proteggere i processi utente tra loro e il
sistema operativo dai processi utente.
• Registro di rilocazione contiene l’indirizzo
fisico più piccolo e il registro limite
contiene l’intervallo degli indirizzi logici:
ogni indirizzo logico deve essere minore
del registro limite.
limite contiene l’intervallo degli indirizzi logici: ogni indirizzo logico deve essere minore del registro limite.
Modello a livelli: partizione singola • Calcolo indirizzi con registro limite e di rilocazione
Modello a livelli: partizione singola
Calcolo indirizzi con registro limite e di rilocazione
Modello a livelli: allocazione contigua • Allocazione con partizioni multiple • Buco : blocco di
Modello a livelli: allocazione contigua
• Allocazione con partizioni multiple
• Buco : blocco di memoria disponibile;
buchi di dimensione diverse sono
distribuiti nella memoria.
• Quando un processo arriva, viene
allocato in una partizione di memoria
disponibile (buco) abbastanza
grande per contenerlo.
Modello a livelli: allocazione contigua • Il sistema operativo mantiene informazioni su: a) partizioni allocate
Modello a livelli: allocazione contigua
• Il sistema operativo mantiene informazioni su:
a) partizioni allocate
b) partizioni libere (buchi)
SO
SO
SO
SO
processo 5
processo 5
processo 5
processo 5
processo 9
processo 9
processo 8
processo 10
processo 2
processo 2
processo 2
processo 2

Modello a livelli: allocazione dinamica

Come soddisfare una richiesta di dimensione n data una lista di

buchi liberi ?

• First-fit: Alloca il primo buco libero sufficiente. • Best-fit: Alloca il più piccolo buco
• First-fit: Alloca il primo buco libero sufficiente.
• Best-fit: Alloca il più piccolo buco libero
sufficiente; ricerca sull’intera lista e produce i più
piccoli buchi inutilizzati.
• Worst-fit: Alloca il più grande buco; ricerca
sull’intera lista e produce i più grandi buchi
inutilizzati (ma più utili).
First-fit e Best-fit sono migliori del Worst-fit in
termini di velocità e uso di memoria.

Problema della frammentazione

•
Problema della frammentazione • Frammentazione Esterna – esiste uno spazio totale di memoria disponibile per

Frammentazione Esterna esiste uno spazio totale di memoria disponibile per soddisfare una richiesta, ma non è contiguo.

per soddisfare una richiesta, ma non è contiguo. • Frammentazione Interna – la memoria allocata può
• Frammentazione Interna – la memoria allocata può essere un po’ più grande di quella
• Frammentazione Interna – la memoria allocata può essere
un po’ più grande di quella richiesta; la parte in eccesso è
interna alla partizione, ma non è usata.
• La compattazione riduce la frammentazione esterna:
• La memoria libera viene compattata in un unico blocco
spostando i blocchi usati.
• La compattazione è possibile solo se la rilocazione è
dinamica a tempo di esecuzione.
• Metodi semplici richiedono tempi più lunghi.

Allocazione non contigua: paginazione

• Lo spazio degli indirizzi logici di un processo possono essere non contigui; la memoria
• Lo spazio degli indirizzi logici di un processo possono
essere non contigui; la memoria da allocare è presa da
dove essa è disponibile.
PAGINAZIONE
• La memoria fisica è divisa in blocchi di dimensione fissa
chiamati frame (la dimensione è una potenza di 2, tra 512
e 8192 byte).
• La memoria logica è divisa in blocchi di dimensione fissa
chiamati pagine.
una potenza di 2, tra 512 e 8192 byte). • La memoria logica è divisa in

Allocazione non contigua: paginazione

• •
Si tiene traccia di tutti i frame liberi.
Si tiene traccia di tutti i frame liberi.
• • Si tiene traccia di tutti i frame liberi. Per eseguire un programma che richiede

Per eseguire un programma che richiede n pagine, bisogna trovare n frame liberi.

che richiede n pagine, bisogna trovare n frame liberi. • Esiste una tabella delle pagine che
• Esiste una tabella delle pagine che contiene l’indirizzo iniziale di ogni pagina nella memoria
• Esiste una tabella delle pagine che contiene
l’indirizzo iniziale di ogni pagina nella memoria
fisica.
• Si evita la frammentazione esterna.
• Si può avere frammentazione interna.
Allocazione non contigua: paginazione
Allocazione non contigua: paginazione

Schema di traduzione degli indirizzi

• Un indirizzo generato dalla CPU è diviso in: • Numero di pagina (p) usato
Un indirizzo generato dalla CPU è diviso in:
• Numero di pagina (p)
usato come un indice nella tabella delle pagine
che contiene l’indirizzo di base di ogni pagina
nella memoria fisica.
• Offset di pagina (d)
usato insieme all’indirizzo base per definire
l’indirizzo fisico di memoria da inviare all’unità
di memoria.
Architettura di traduzione degli indirizzi
Architettura di traduzione degli indirizzi
Esempio di paginazione
Esempio di paginazione
Esempio di paginazione Ogni pagina è composta da 4 byte e la memoria è composta
Esempio di paginazione
Ogni pagina è composta da 4 byte
e la memoria è composta da 32 byte
Implementazione della tabella delle pagine • La tabella delle pagine sta in memoria centrale. •
Implementazione della tabella delle pagine
• La tabella delle pagine sta in memoria
centrale.
• Il Page-table base register (PTBR) punta alla
tabella.
• Il Page-table length register (PRLR) indica la
dimensione della tabella.
• Con questo schema l’accesso a dati/istruzioni
richiede due accessi alla memoria. Prima alla
tabella e poi in memoria.

Pagine condivise

• Usando la paginazione si può condividere codice comune. • Codice condiviso • Una singola
• Usando la paginazione si può condividere codice comune.
• Codice condiviso
• Una singola copia di codice a sola lettura (rientrante)
condivisa tra i processi (i.e., text editor, compilatore,
browser).
• Il codice condiviso deve apparire nella stessa locazione
nello spazio degli indirizzi logici di tutti i processi.
• Codice privato e dati
• Ogni processo mantiene una copia del codice privato e dei
dati.
• Le pagine possono stare in uno qualunque degli indirizzi
logici.
Esempio pagine condivise
Esempio pagine condivise

Segmentazione con paginazione

• Il S.O. ha risolto i problemi della frammentazione esterna e dei tempi lunghi di
• Il S.O. ha risolto i problemi della frammentazione
esterna e dei tempi lunghi di ricerca tramite la
paginazione dei segmenti.
• Un segmento viene realizzato tramite un insieme
di pagine.
• La soluzione differisce dalla segmentazione “pura”,
poiché una entry nella tabella dei segmenti non
contiene l’indirizzo base di un segmento, ma
l’indirizzo base della tabella delle pagine di quel
segmento.
Memoria virtuale • • Solo una parte del programma sta in memoria per l’esecuzione. •
Memoria virtuale
Solo una parte del programma sta in memoria per
l’esecuzione.
Permette una più efficiente creazione dei processi.
La memoria virtuale può essere implementata tramite:
Paginazione su richiesta
Segmentazione su richiesta

Memoria Virtuale separazione della memoria logica dalla memoria fisica.

Lo spazio degli indirizzi logici è quindi più grande dello spazio degli indirizzi fisici. Lo spazio degli indirizzi può essere diviso tra più processi.

è quindi più grande dello spazio degli indirizzi fisici. Lo spazio degli indirizzi può essere diviso
Memoria virtuale maggiore della memoria fisica
Memoria virtuale maggiore della
memoria fisica

Page fault

• •

Se si tenta di accedere ad una pagina non in memoria page fault.

Il S.O. controlla in una tabella interna del processo: • se il riferimento non è
Il S.O. controlla in una tabella interna del processo:
• se il riferimento non è valido  abort.
• Se il riferimento è valido occorre caricare la
pagina.
• Si trova un frame libero.
• Si carica la pagina nel frame.
• Si aggiorna la tabella, bit di validazione = 1.
• Viene riavviata l’esecuzione: la pagina diventa quella
aggiorna la tabella, bit di validazione = 1. • Viene riavviata l’esecuzione: la pagina diventa quella

più recente.

Passi della gestione di un page fault
Passi della gestione di un page fault
Se non c’è un frame libero?
Se non c’è un frame libero?
Se non c’è un frame libero?

Se non c’è un frame libero?

Se non c’è un frame libero?
Se non c’è un frame libero?
Se non c’è un frame libero?
• Sostituzione delle pagine si trova una pagina in memoria che non è usata e
• Sostituzione delle pagine
si trova una pagina in memoria che non è
usata e si porta sul disco (swap out).
• Algoritmo
• prestazioni:
si vuole un algoritmo che dia il numero
minimo di page fault.
• Alcune pagine possono essere portate in
memoria varie volte.

Sostituzione delle pagine

• Quando occorre caricare una pagina e non c’è un frame libero si può usare
• Quando occorre caricare una pagina e non c’è un frame
libero si può usare la sostituzione delle pagine.
• Il meccanismo di gestione dei page fault deve essere
modificato per gestire questa possibilità.
• Uso di un modify (dirty) bit per ridurre il costo del
trasferimento delle pagine – solo le pagine modificate
vengono scritte sul disco.
• La sostituzione delle pagine completa la separazione tra
memoria logica e memoria fisica: una grande memoria
virtuale si può realizzare su una piccola memoria fisica.

Sostituzione delle pagine

• Operazioni per la sostituzione: • Trova la locazione della pagina richiesta sul disco. •
• Operazioni per la sostituzione:
• Trova la locazione della pagina richiesta sul disco.
• Trova un frame libero
• Se esiste usalo;
• Se non c’è un frame libero seleziona un frame
vittima secondo un algoritmo di sostituzione;
• Scrivi la pagina vittima sul disco e aggiorna le
tabelle;
• Leggi la pagina richiesta nel frame liberato e aggiorna
le tabelle
• Riavvia il processo.

Algoritmo First In First Out (FIFO) • Si sostituisce la pagina più vecchia. • Stringa: 1, 2, 3, 4, 1, (FIFO) • Si sostituisce la pagina più vecchia. • Stringa: 1, 2, 3, 4, 1,
Algoritmo First In First Out

(FIFO)Algoritmo First In First Out • Si sostituisce la pagina più vecchia. • Stringa: 1, 2, Algoritmo First In First Out • Si sostituisce la pagina più vecchia. • Stringa: 1, 2,

Algoritmo First In First Out (FIFO) • Si sostituisce la pagina più vecchia. • Stringa: 1,
• Si sostituisce la pagina più vecchia. • Stringa: 1, 2, 3, 4, 1, 2,
• Si sostituisce la pagina più vecchia.
• Stringa: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
• 3 frame (3 pagine possono essere in memoria per
processo)
9 page fault
1
1 4
5
2
2 1
3
3
3 2
4
1
1 5
4
10 page fault
4 frame
2
2
1
5
3
3
2
4
4
3

Algoritmo ottimale

• Sostituisce la pagina che non verrà usata per il periodo di tempo più lungo.
• Sostituisce la pagina che non verrà usata per il
periodo di tempo più lungo.
• Esempio: 4 frame stringa: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3,
4, 5
1
4
6 page fault
2
3
4
5
Come predire il futuro (uso delle pagine) ?
Usato come paragone per valutare altri algoritmi.
Algoritmo Least Recently Used (LRU) • Sostituisce la pagina che non è stata usata per
Algoritmo Least Recently Used
(LRU)
Sostituisce la pagina che non è stata
usata per il periodo di tempo più
lungo.
1
5
2
3
5
4
4
3
Stringa:
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4,
Modello a livelli: gestione I/O L’accesso alle periferiche di I/O viene gestito dal sistema operativo
Modello a livelli: gestione I/O
L’accesso alle periferiche di I/O viene gestito dal
sistema operativo insieme ai driver di periferica.
Questi sono programmi specifici
per ciascun dispositivo che si
colleghi all’elaboratore
(stampanti, scanner,
tastiera…).

Modello a livelli: gestione I/O

L’interazione tra un programma e una periferica è standardizzata. Un programma di elaborazione

testi, ad esempio, può inviare un comando di

stampa senza curarsi del tipo di stampante

collegata al computer.

senza curarsi del tipo di stampante collegata al computer. Spetta al sistema operativo smistare la richiesta
senza curarsi del tipo di stampante collegata al computer. Spetta al sistema operativo smistare la richiesta
senza curarsi del tipo di stampante collegata al computer. Spetta al sistema operativo smistare la richiesta

Spetta al sistema operativo smistare la richiesta al driver della stampante.

del tipo di stampante collegata al computer. Spetta al sistema operativo smistare la richiesta al driver
Modello a livelli: gestione I/O • Componente fisica Dispositivo di I/O (inclusi dischi e nastri)
Modello a livelli: gestione I/O
• Componente fisica
Dispositivo di I/O (inclusi dischi e
nastri)
Scheda di I/O (collegata al bus)
• Componente “logica” (software)
Programma driver
• Installazione
• Manuale
• Plug&Play (PnP)

Modello a livelli: gestione I/O

• I driver logici sono programmi del S.O. • driver “standard” • driver forniti da
I driver logici sono programmi del S.O.
• driver “standard”
• driver forniti da costruttori di
periferiche
Nascondono la struttura fisica
comandi di I/O
•
Nascondono la struttura fisica • comandi di I/O • • Standardizzano l’interazione • • stampante laser

Standardizzano l’interazione

• •
stampante laser e stampante inkjet floppy, hard disk e CD ROM
stampante laser e stampante inkjet
floppy, hard disk e CD ROM
di I/O • • Standardizzano l’interazione • • stampante laser e stampante inkjet floppy, hard disk
di I/O • • Standardizzano l’interazione • • stampante laser e stampante inkjet floppy, hard disk
di I/O • • Standardizzano l’interazione • • stampante laser e stampante inkjet floppy, hard disk

Modello a livelli: tecnica di spool

Problema: cosa succede se più processi (o più utenti)

Mandano “contemporaneamente” in stampa documenti

sulla stessa stampante?

in stampa documenti sulla stessa stampante? Computer 1 Computer 2 Processo1 Processo2 Processo3 Come
in stampa documenti sulla stessa stampante? Computer 1 Computer 2 Processo1 Processo2 Processo3 Come
in stampa documenti sulla stessa stampante? Computer 1 Computer 2 Processo1 Processo2 Processo3 Come

Computer 1

Computer 2

Processo1

Processo2

stampante? Computer 1 Computer 2 Processo1 Processo2 Processo3 Come evitare che i dati escano nello stesso
stampante? Computer 1 Computer 2 Processo1 Processo2 Processo3 Come evitare che i dati escano nello stesso

Processo3

Computer 1 Computer 2 Processo1 Processo2 Processo3 Come evitare che i dati escano nello stesso ordine

Come evitare che i dati escano nello stesso ordine

in cui vengono eseguiti i comandi di uscita?

Modello a livelli: spool di stampa Processo1 Processo2 Processo3 Processo di spool Driver
Modello a livelli: spool di stampa
Processo1
Processo2
Processo3
Processo
di spool
Driver

Modello a livelli: gestione I/O

Funzioni del sottosistema di I/O Definire lo spazio dei nomi con cui identificare i dispositivi. Definire un’interfaccia uniforme per i dispositivi, con diverse implementazioni per le differenti categorie (dispositivi a caratteri, a

blocchi, di rete)

(dispositivi a caratteri, a • • blocchi, di rete) • Realizzare la sincronizzazione tra l’attività di

Realizzare la sincronizzazione tra l’attività di un dispositivo e quella del processo che lo ha attivato (driver del dispositivo)

Gestire i malfunzionamenti.

Modello a livelli: gestione file Il file system è il modo in cui il sistema
Modello a livelli: gestione file Il file system è il modo in cui il sistema
Modello a livelli: gestione file Il file system è il modo in cui il sistema
Modello a livelli: gestione file Il file system è il modo in cui il sistema

Modello a livelli: gestione file

Modello a livelli: gestione file Il file system è il modo in cui il sistema operativo

Il file system è il modo in cui il sistema

operativo organizza i file (documenti) sulle unità

operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
operativo organizza i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione
di memorizzazione.  

di memorizzazione.

 
i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione che rappresenta un
i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione che rappresenta un
i file (documenti) sulle unità di memorizzazione.   Un file è un’astrazione che rappresenta un
Un file è un’astrazione che rappresenta un logicamente collegati.  

Un file è un’astrazione

che rappresenta un

logicamente collegati.

 
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
insieme di byte

insieme di byte

  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
 
 
 
 
 
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    
  Un file è un’astrazione che rappresenta un logicamente collegati.   insieme di byte    

Modello a livelli: gestione file

Ogni “entità referenziabile ” su disco è un

• file • un programma • un insieme di dati utilizzati da un programma
file
• un programma
• un insieme di dati utilizzati da un
programma
• una base di dati (o un archivio) • un grafico • I file sono
• una base di dati (o un archivio)
• un grafico
• I file sono identificati da un nome
(filename)
• nome
• estensione
• I file sono identificati da un nome (filename) • nome • estensione Esempi: tesi.doc, sort.pas,
• I file sono identificati da un nome (filename) • nome • estensione Esempi: tesi.doc, sort.pas,
• I file sono identificati da un nome (filename) • nome • estensione Esempi: tesi.doc, sort.pas,

Esempi: tesi.doc, sort.pas, game.exe

Modello a livelli: gestione file

La lunghezza del filename può avere delle limitazioni

Nell’ MS-DOS (uno dei primi sistemi operativi) aveva

una lunghezza massima per il filename di 11 caratteri (8

per il nome e 3 per l’estensione)

Windows XP o Unix (altri sistemi operativi) non hanno

questa limitazione

Ad ogni file sono, inoltre, associate le seguenti

informazioni:

grandezza del file

data e ora della creazione

data di ultima modifica

informazioni che vengono utilizzate direttamente dal

modifica • informazioni che vengono utilizzate direttamente dal sistema operativo (per esempio eventuali protezioni)
modifica • informazioni che vengono utilizzate direttamente dal sistema operativo (per esempio eventuali protezioni)
modifica • informazioni che vengono utilizzate direttamente dal sistema operativo (per esempio eventuali protezioni)

sistema operativo (per esempio eventuali protezioni)

Modello a livelli: gestione file Il file system deve mettere a disposizione diverse funzioni per
Modello a livelli: gestione file Il file system deve mettere a disposizione diverse funzioni per
Modello a livelli: gestione file

Modello a livelli: gestione file

Modello a livelli: gestione file Il file system deve mettere a disposizione diverse funzioni per la
Modello a livelli: gestione file Il file system deve mettere a disposizione diverse funzioni per la
Modello a livelli: gestione file Il file system deve mettere a disposizione diverse funzioni per la
Il file system deve mettere a disposizione
Il file system deve mettere a disposizione

Il file system deve mettere a disposizione

diverse funzioni per la manipolazione dei file:
diverse funzioni per la manipolazione dei file:
diverse funzioni per la manipolazione dei file:

diverse funzioni per la manipolazione dei file:

disposizione diverse funzioni per la manipolazione dei file: • creazione/eliminazione •
disposizione diverse funzioni per la manipolazione dei file: • creazione/eliminazione •
• creazione/eliminazione

creazione/eliminazione

per la manipolazione dei file: • creazione/eliminazione • lettura/scrittura/esecuzione • coordinamento
per la manipolazione dei file: • creazione/eliminazione • lettura/scrittura/esecuzione • coordinamento
• lettura/scrittura/esecuzione

lettura/scrittura/esecuzione

creazione/eliminazione • lettura/scrittura/esecuzione • coordinamento accessi contemporanei • controllo
• coordinamento accessi contemporanei

coordinamento accessi contemporanei

• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)
• controllo degli accessi (nei sistemi multiutente)

controllo degli accessi (nei sistemi

multiutente)

• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
 
 
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  
• coordinamento accessi contemporanei • controllo degli accessi (nei sistemi multiutente)  

Modello a livelli: gestione file

•
Struttura ad albero (file system gerarchici)
Struttura ad albero (file system gerarchici)

Radice dell’albero

ad albero (file system gerarchici) Radice dell’albero Nodo interno • Ai nodi e alle foglie possono
ad albero (file system gerarchici) Radice dell’albero Nodo interno • Ai nodi e alle foglie possono
ad albero (file system gerarchici) Radice dell’albero Nodo interno • Ai nodi e alle foglie possono

Nodo interno

• Ai nodi e alle foglie possono essere associate informazioni
• Ai nodi e alle foglie possono essere
associate informazioni

Foglia

dell’albero Nodo interno • Ai nodi e alle foglie possono essere associate informazioni Foglia Organizzazione logica

Organizzazione logica

Modello a livelli: gestione file

• Struttura ad albero • La radice è un’unità disco (o una partizione di unità)
• Struttura ad albero
• La radice è un’unità disco (o una
partizione di unità)
• I nodi interni sono cartelle (directory)
• Le foglie sono file
• Una cartella può contenere file e/o altre
cartelle
 percorso di identificazione di un file
o path
c:\Paola\Scuola\Seconda\ISistOper.ppt

Modello a livelli: gestione file

Modello a livelli: gestione file C: Windows Programmi Paola Esempio Scuola Bollette Personale Seconda Quinta
Modello a livelli: gestione file C: Windows Programmi Paola Esempio Scuola Bollette Personale Seconda Quinta
Modello a livelli: gestione file C: Windows Programmi Paola Esempio Scuola Bollette Personale Seconda Quinta

C:

Windows

Programmi

Paola

Esempio

livelli: gestione file C: Windows Programmi Paola Esempio Scuola Bollette Personale Seconda Quinta

Scuola

Bollette

Personale

Programmi Paola Esempio Scuola Bollette Personale Seconda Quinta Isistoper.ppt Hardware.ppt

Seconda

Quinta

Paola Esempio Scuola Bollette Personale Seconda Quinta Isistoper.ppt Hardware.ppt Software.ppt

Isistoper.ppt