Parte VI SISTEMI OPERATIVI - uniroma2.it · 12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio...

38
Parte VI SISTEMI OPERATIVI

Transcript of Parte VI SISTEMI OPERATIVI - uniroma2.it · 12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio...

Parte VISISTEMI OPERATIVI

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 2

Sistema OperativoOgni computer ha un sistema operativo necessario per eseguire gli altri programmiIl sistema operativo, fra l’altro, è responsabile di• riconoscere i comandi di input (da tastiera) e di inviarne una copia sullo schermo• gestire l’uscita dei dati (modem, rete, stampante ecc.)• gestire l’archivio dei file (dischi)• gestire le unità di memoria aggiuntiva (dischi, dvd, cd, ecc.)• gestire la sicurezza (autorizzazione all’utilizzo del sistema).

Nei sistemi di grandi dimensioni il sistema operativo èanche responsabile della gestione e del coordinamento fra i diversi utenti che utilizzano il sistema

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 3

Sistema Operativo• Non facile da definire esattamente• definizione informale

– Quello che nel sistema non è applicazione o hardware

– Software che permette alle applicazioni di utilizzare in modo conveniente l’hardware

Utenti

HardwareSistema Operativo

ApplicazioniWord processing, compilatori, basi dati....

dispositivi I/O,dischi, CPU, memoria....

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 4

Sistema Operativo• Definizione Formale : Il sistema operativo è un insieme

di programmi, invisibili all’utente, che si interpongono tra l’hardware e i programmi applicativi/utility visibili all’utente (interfaccia utente) per governare l’hardware nascondendo le diversità di hardware al software applicativo.

• Il sistema operativo quindi forma uno strato di software che opera direttamente sull’hardware, isolando i dettagli dell’architettura hardware (attraverso i driver che sono parti di sistema operativo adattate alle specifiche caratteristiche dell’hardware) e fornendo un insieme di funzionalità e di astrazioni ad alto livello.

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 5

Obiettivi del sistema operativo

• semplificare e ottimizzare l’accesso allerisorse dell sistema

• garantire la correttezza dell’esecuzioneconcorrente

• assicurare la portabilità delle applicazioni• indipendenza dalla piattaforma:

– stesso hardware sono possibili diversi SO– stesso SO può “girare” su piattaforme HW

diverse

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 6

Sistema operativo e CPU

Struttura a livelli• Il livello 2 è il più basso al quale un utente può programmare la

macchina• Normalmente la programma a livello 5

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 7

Sistema operativo e CPU• Le unità funzionali principali sono:

– Gestione dei processi ( ogni programma in corso nel computer )– Gestione della memoria centrale– Gestione delle periferiche– File system

• L’insieme di questi moduli costituisce il nucleo del sistema operativo, denominato anche kernel. Il sistema operativo possiede inoltre una interfaccia per l`interazione con l`utente che è formata dall’insieme dei programmi di utilità o utilities.

• Esempio: in DOS i comandi copy e rename permettono di copiare e ridenominare i file; comandi analoghi in altri sistemi;

• In Windows interfacce grafiche permettono di dare comandi con interazione diversa (ad esempio click con il mouse).

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 8

Virtualizzazione delle risorse• le applicazioni e i programmi (che poggiano sul SO) vedono risorse

virtuali– ignorano i dettagli– eventuali altri programmi in concorrenza

• risorse virtualizzate– CPU: Multiprogrammazione (più programmi sono eseguiti

concorrentemente)– memoria: ciascun programma vede uno spazio di memoria

autonomo– I/O: la memoria di massa (dischi) e periferiche di I/O sono viste

dai programmi tramite il SO

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 9

Sistema operativo e CPU

Funzioni Sistema operativo • Gestione dei processi• Memoria virtuale• I/O dei file

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 10

gestione dei processi• processi concorrenti

– elaborati in parallelo su architetture multiprocessore– elaborati a rotazione (time sharing) su architetture uniprocessore

• problemi:– sincronizzare l’utilizzo delle risorse comuni (memoria centrale e

di massa, I/O) – garantire accesso in mutua esclusione– garantire la correttezza della elaborazione

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 11

gestione dei processi

stati di un processo

• running: in esecuzione sulla CPU

• blocked: bloccato in attesa di un evento (fine I/O, ...)

• ready: pronto a riprendere la sua elaborazione

scheduler: processo del SO che decide quale fra i processi ready mandare in esecuzione

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 12

gestione dei processi

scheduler: processo del SO che decide quale fra i processi ready mandare in esecuzioneIn un computer ci possono essere molti programmi in corso di esecuzione (caricati in memoria centrale) dello stesso utente o di utenti diversi. E’ compito di un programma del sistema operativo (schedulatore) commutare l’attività della CPU tra i vari programmi in corso di esecuzione dedicando a ciascuno una piccola porzione del tempo di elaborazione in modo che si abbia la percezione che tutti i programmi avanzino contemporaneamente.

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 13

gestione dei processii Sistemi operativi possono essere classificati nel seguente modo: multi-user : multiutente (due o più utenti utilizzano il programma (anche migliaia nei casi più grandi)multiprocessing : permette la possibilità che un programma sia eseguito da più processori (CPU)multitasking : permette che uno o più programmi siano eseguiti concorrentemente (anche dello stesso utente) multithreading : permette che diversi parti di un unico programma siano eseguite concorrentemente.

Usano il time sharing, condivisione del tempo fra più utenti o più programmi•Il processore centrale è commutato velocemente da un programma ad un altro

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 14

gestione dei processi•Windows: è un prodotto di Microsoft con licenza commerciale adatto a qualsiasi hardware di tipo PC compatibile. In realtà è formato da varie famiglie di sistemi operativi diversi destinati a categorie diverse di computer. Gliesempi che seguono sono tutti caratterizzati dall’appartenere ad una unica famiglia di Windows chiamata genericamente “Win32” per indicare che sfruttano la capacità di indirizzamento a 32 bit offerta dalle CPU Intel o compatibili a partire dall’80386

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 15

gestione dei processi

•Windows:•Windows 95/98/ME/XP-HOME: sono sistemi operativi multiprocesso ( NON vuol dire multiprocessor !! ) e monoutente destinati all’utilizzo come workstation in un ambiente preferibilmente non di rete.•Windows NT-WKS/2000-WKS/XP-PRO: sono sistemi operativi multiprocesso e monoutente destinati all’utilizzo come workstation particolarmente adatti all’ambiente di rete.•Windows NT-SRV/2000-SRV/2003-SRV: sono sistemi operativi multiprocesso e multiutente destinati all’utilizzo come minicomputer (detti anche server) in ambiente di rete.•Windows CE: è una versione particolarmente alleggerita adatta ai computer palmari ma che può essere utilizzata anche negli embedded computer.

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 16

gestione dei processi

•Unix: è una ampia famiglia di sistemi operativi prodotti da varie aziende con licenza commerciale nel rispetto di standard comuni (Open Systems) e adatti a vari tipi di hardware compreso il tipo PC compatibile. Viene utilizzato sia per la realizzazione di server che di workstation. Gli standard Open Systems sono insiemi di norme pubbliche che specificano le regole che il software deve rispettare e differenziano questi sistemi operativi dai sistemi proprietari le cui regole di funzionamento invece non sono rese note dal produttore.

•Sono sistemi operativi multiprocesso e multiutente

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 17

gestione dei processi

Linux: è un sistema operativo che deriva da Unix ma è prodotto con licenza “Open Source” da vari produttori che in questo caso vengono

chiamati “distribuzioni”. E’ adatto all’ hardware PC compatibile, sfrutta la capacità di indirizzamento a 32 bit ed è multiprocesso e multiutente. Può essere usato sia come minicomputer (server), e in questo ruolo è stato un potente motore di sviluppo della rete Internet, sia come workstation non

utilizzando in questo caso la sua funzione di multiutenza. Le più famose distribuzioni sono Red Hat, Fedora, Mandrake, Suse,

Debian, Slackware, Knoppix …

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 18

gestione dei processiMac OS: è un prodotto di Apple con licenza commerciale adatto agli hardware di tipo MacIntosh. E’ stato il primo sistema operativo con

interfaccia utente grafica (1984). Sebbene sia molto meno diffuso dei precedenti riveste una grande importanza nel campo delle workstation per

usi specialistici (grafica, architettura …).

L’ultima versione ha una base UNIX di OpenStep completata con l'interfaccia grafica e le molte tecnologie ad alto livello del Mac OS

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 19

memoria virtuale– Ogni programma in corso di esecuzione (processo), compreso il

sistema operativo, occupa una parte della memoria centrale in cui risiedono le sue istruzioni codificate ed i suoi dati.

– Al crescere dei processi la memoria RAM diviene rapidamente insufficiente, per cui il sistema operativo fornisce ai processiun’area di memoria centrale “virtuale” ottenuta da un opportuno spazio riservato nella memoria di massa.

– Il sistema operativo fa in modo che questa memoria di massa sembri (per questo si chiama virtuale = finta) allocata al processo come se fosse memoria centrale ma questa apparenza è dovuta a continui “caricamenti” e “scaricamenti” fatti dal sistema operativo tra memoria centrale fisica e blocco di memoria virtuale della memoria di massa (hard disk).

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 20

memoria virtuale– L’operazione quindi è trasparente per il programma in corso di

esecuzione che non si accorge di non possedere tutta la memoria centrale che gli serve perché ogni volta che la utilizza il sistema operativo gliela copia dalla memoria di massa scaricandola quando non serve più ma le prestazioni complessive del sistema ne sono influenzate se si pensa ai tempi medi di accesso di un disco di media qualità (decine di mS).

– Questo meccanismo spiega perché uno dei fattori principali nelle prestazioni di un computer è la quantità della memoria centrale.

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 21

memoria virtuale• memoria virtuale:

– lo stesso spazio di memoria è diviso fra piùprogrammi

– ogni programma vede uno spazio diindirizzamento più ampio di quello effettivamentedisponibile

• spazio indirizzi: – virtuali: dipende dalle modalità di indirizzamento– fisico: dipende dalle dimensioni della memoria

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 22

memoria virtuale• programmi usano lo spazio virtuale• lo spazio virtuale è allocato in memoria secondaria

(dischi)• si mantiene in memoria solo un sottoinsieme dello

spazio virtuale (spazio logico)• si trasferiscono quando servono le parti dello spazio

virtuale alle quali il programma fa riferimento• la gestione è fatta dal SO (trasparente

all’utente/programmatore)• PROBLEMA: traduzione indirizzi; efficienza

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 23

memoria virtuale: paginazione

• modo semplice di organizzare la corrispondenza fra indirizzi virtualie fisici

• lo spazio di memoria (fisico e virtuale) è organizzato in pagine (0.25-4 KB), della stessa dimensione

• quando serve un dato in memoria si trasferisce tutta la pagina che lo contiene

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 24

memoria virtuale: paginazioneSpazio fisico in Memoria RAM, Memoria fisica del computer suddivisa in 8 pagine

Spazio logicosu disco

Spazio logico

Organizzazione logicadel processo 1

2 pagine logicheOrganizzazione logica

Del processo 24 pagine logiche.

Non trova 4 paginefisiche contigue

PL0PL1

PF1

PF2

PF3

PF5

PF4

PF6

PF7PF8

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 25

memoria virtuale: paginazione

• la struttura dello spazio virtuale si riflettenella struttura degli indirizzi– offset: lunghezza della pagina– k bit più significativi: numero della pagina

• indirizzi fisici hanno la stessa struttura

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 26

memoria virtuale: paginazione• Il programma viene suddiviso in un certo

numero di sezioni, di dimensioni fisse e uguali fra loro, dette pagine logiche, e in corrispondenza organizzando allo stesso modo anche la memoria fisica in pagine fisiche, della stessa dimensione delle pagine logiche.

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 27

memoria virtuale: paginazione

Spiazzamento relativo all’inizio della pagina specificata dai k bit iniziali, in pratica dice quanto èlunga la pagina

• i programmi specificano indirizzi virtuali• l’indirizzo fisico è diverso• prima di accedere in memoria bisogna tradurre l’indirizzo virtuale in

indirizzo fisicoNota Bene: l’indirizzo virtuale è fisso, quello fisico può cambiare nel

corso dell’esecuzione

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 28

memoria virtuale: paginazione• con la memoria a pagine

– posso avere uno spazio fisico piccolo ma uno spazio virtualegrande

– posso utilizzare la memoria (piccola) per più programmicontemporaneamente

• due pagine vicine (nello spazio logico) possono essere in postidiversi dello spazio fisico– una su disco e l’altra in memoria centrale– tutte e due su disco (o memoria centrale) ma con indirizzi fisici

diversi

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 29

memoria virtuale: traduzione indirizzi

• La traduzione degli indirizzi avviene a cura della CPU (prima diaccedere in memoria fisica)

• La corrispondenza tra pagine virtuali e pagine fisiche (page frames) viene mantenuta nella Tavola delle Pagine (nella CPU) e viene gestita dall’hardware aggiuntivo Memory Management Unit presente nella CPU

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 30

memoria virtuale: traduzione indirizzi

tavola dellepagine

contiene la corrispondenzafra indirizzovirtuale (o logico) e indirizzo fisico

Numero pagina logica(Due )

Numero pagina fisica ( Sei )

Lo spiazzamentorispetto all’inizio

della paginaè uguale sia per la pagina

logica chela pagina fisica

Pagina giàin memoria

si/no

4 bit

3 bit

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 31

memoria virtuale: come funziona

• se la pagina richiesta è in memoria: ok• altrimenti page fault.

– il SO interrompe l’esecuzione del programma– la pagina richiesta viene trasferita da disco a memoria centrale

(attesa) – una volta trasferita la pagina richiesta l’esecuzione del

programma può riprendere– a seguito di un page fault posso dover togliere una pagina dalla

memoria per fare spazio a quella nuova, questo implica che le pagine virtuali non hanno necessariamente lo stesso indirizzofisico

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 32

località dei programmi

• gli accessi in memoria rispettano un principio dilocalità– quando mi serve un dato che non è in

memoria trasferisco tutta la pagina checontiene quel dato

– quando devo togliere una pagina dallamemoria per fare spazio alla nuova paginatrasferisco pagine richieste indietro nel tempo (meno probabili che siano richieste nel futuro)

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 33

Gestione dei file: importanza I/O • Applicazioni hanno due componenti fondamentali:

– Elaborazione informazione– Input/Output (I/O) (esistono applicazioni senza I/O?)

• Dati sono nei dispositivi di memoria– diversi fra loro (velocità, modi di accesso, ...)

• Utente vede dati come una libreria standard– operazioni utente sono astratte: inserisci, cancella, duplica,...– non dipende dal tipo di dato o da dove è il dato

• Funzioni SO: fornire operazioni standard per accedere e modificare i dati– fornire protezioni ai dati (limitare le operazioni permesse)– semplificare accesso a utente– fornire interfaccia omogenea

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 34

Astrazione: File• Punto di vista utente

– Insieme di dati con un nome• tipo di dato (si usa spesso estenzione: txt - testo, exe - eseguibile,

gif - immagine, ....) • utilizzabile sempre in modo conveniente (utente non vuole sapere

dove si trova fisicamente il file)

• Punto di vista del sistema operativo– crea corrispondenza fra i byte che costituiscono il file su blocchi

di memoria non volatile • Dischi, nastri, CD, ....• Dati persistenti (assenza di corrente, riavvi del sistema,...)

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 35

Astrazione: Direttorio• Organizzare i file: una tabella contiene le informazioni su dove

ciascun file si trovi sul disco • Approccio semplice: ogni file ha un solo nome• In pratica:

– un direttorio per ogni utente, per specificare un file: • <nome utente, nome file>

– per ogni utente organizzazione ad albero del direttorio (es. cartelle diwindows)

Esempio: Mario/a/b.gifutentemario ha un direttorio a che contiene un file im magine b(Mario può averetantidirettori; a può conteneretantifile o direttori)

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 36

Meta-Dati di un file• Meta-dati: Informazioni addizionali associate ad ogni file

– Nome del file– Tipo del file– Puntatori (indirizzi) ai blocchi del disco che contengono i dati– Dimensione del file– Informazioni temporali: creazione, aggiornamento– Proprietario (utente, gruppo) – Bit di protezione (autorizzazione in lettura, scrittura)

• I Meta-dati sono memorizzati nel disco– parte del disco contiene le informazioni necessarie

• <nome file, indice sui metadati> (l’indice indica dove sono presenti i metadati nella memoria del disco)

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 37

Gestione del direttorio

• Direttorio contiene per ogni file una coppia<nome, indice>, (in cui il nome può essere un altro direttorio) – Direttorio è memorizzato e organizzato come un file – Indice indica dove sono le informazioni sui metadati associati al nome– Per indicare un file si specifica il nome del file indicando tutti i direttori a

partire dalla radice

Esempio: mkdir mario/a/b/ccrea direttorio c contenutoin b che a sua volta è contenutoin a

– Leggi i metadati associati a utente mario e cerchi “a”; ad esempio trovi <“a”, 5>– leggi le informazioni indicate da 5, e cerca “b”; ad esempio trovi <“b”, 9>– leggi le informazioni indicate da 9, verifichi che non esiste “c”; allochi c e aggiungi

“c” dove necessario

12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 38

Esercizio

• Illustrare i compiti del sistema operativo nella gestione dei file e dell’Input/Output.