Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre...

81
1 Sommario Sommario Il sistema operativo Il sistema operativo Introduzione Introduzione Scopo del sistema operativo Scopo del sistema operativo Funzioni del sistema operativo Funzioni del sistema operativo Gestione dei processi Gestione dei processi Gestione della memoria centrale Gestione della memoria centrale Gestione delle periferiche Gestione delle periferiche Gestione dei file Gestione dei file

Transcript of Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre...

Page 1: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

1

SommarioSommario

Il sistema operativoIl sistema operativoIntroduzioneIntroduzione

Scopo del sistema operativoScopo del sistema operativo

Funzioni del sistema operativoFunzioni del sistema operativoGestione dei processiGestione dei processi

Gestione della memoria centraleGestione della memoria centraleGestione delle perifericheGestione delle perifericheGestione dei fileGestione dei file

Page 2: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

2

IntroduzioneIntroduzione

Il software può essere diviso in due grandi classi:i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del sistema di calcoloi programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti

L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema OperativoSistema Operativo (SO)

DefinizioneDefinizioneUn sistema operativosistema operativo è un programma che controlla controlla l’esecuzione dei programmi applicativil’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardwareinterfaccia fra le applicazioni e l’hardware del calcolatore

Page 3: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

3

Scopo del sistema operativoScopo del sistema operativo

Gestione EFFICIENTE delle risorse del sistema di elaborazioneGestione EFFICIENTE delle risorse del sistema di elaborazione

Creazione di un’interfaccia AGEVOLE tra l’uomo e la macchinaCreazione di un’interfaccia AGEVOLE tra l’uomo e la macchina

Page 4: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

4

Il SO come macchina estesa – 1Il SO come macchina estesa – 1

Visione a strati delle componenti hardware/software che compongo un elaboratore

Page 5: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

5

Il SO come macchina estesa – 2Il SO come macchina estesa – 2

Il SO può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dell’hardware, offrendo all’utente la visione di una macchina astrattamacchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibileIn questa visione, un SO…

…nasconde a programmatori/utenti i dettagli dell’hardware e fornisce un’interfaccia conveniente e facile da usare…agisce come intermediario tra programmatore/utente e hardware

Il S.O. fornisce quindi all’utente:Indipendenza dall’hardwareComodità d’usoProgrammabilità a diversi livelli

Page 6: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

6

Funzioni del Funzioni del sistema operativosistema operativo

Page 7: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

7

Il sistema operativo ̶ 1Il sistema operativo ̶ 1

Il SO rende totalmente disponibile all’utente l’hardware del calcolatore

Il sistema operativo sistema operativo è uno strato software che opera direttamente sull’hardware...

...isola gli utenti dall’architettura sottostante e fornisce un insieme di funzionalità di alto livello...permette lo svolgimento di operazioni quali la copia di un file o l’esecuzione di un programma; opera le azioni necessarie a caricare i programmi in memoria centrale, eseguirli, leggere e/o scrivere dati da/su memoria di massa e periferiche

Page 8: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

8

Il sistema operativo ̶ 2Il sistema operativo ̶ 2

Il SO può essere......monomonoutenteutente (tipicamente nei PC), se l’intero sistema hw/sw è dedicato ad un singolo utente...multimultiutenteutente, quando diversi utenti condividono lo stesso sistema hw/sw; il SO nasconde a ciascun utente la presenza degli altri, dando l’impressione che il sistema (unità di elaborazione, memoria, periferiche, etc.) gli sia interamente dedicato

Il SO è un insieme di programmi molto complesso ed articolato, soprattutto in contesto multiutentePer facilitarne il progetto, ed isolarne le varie componenti, il SO è organizzato per strati funzionalistrati funzionali, con una struttura cosiddetta “a cipolla”

Page 9: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

9

Il sistema operativo ̶ 3Il sistema operativo ̶ 3

Ciascuno strato funzionale realizza una macchina virtualemacchina virtuale, che maschera le caratteristiche della macchina hardware e offre all’utente un insieme di funzionalitàStruttura modulare: ciascun modulo esporta funzionalità verso l’esterno e mantiene al suo interno i propri meccanismi implementativi

Hardware

Sy

stems software

Applications software

Ogni macchina virtuale “sembra” più potente della corrispondente macchina fisica, perché offre ai suoi utenti l’illusione di una macchina dedicata

Page 10: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

10

Funzioni del sistema operativo Funzioni del sistema operativo

Macchina fisicaMacchina fisica

Allocazione e gestione della memoriaAllocazione e gestione della memoriaGestione della memoriaGestione della memoria

Gestione di ingresso/uscita da perifericaGestione di ingresso/uscita da perifericaGestione delle perifericheGestione delle periferiche

Controllo e gestione degli accessi a fileControllo e gestione degli accessi a fileFile systemFile system

Attivazione programmi utente o di sistemaAttivazione programmi utente o di sistemaInterprete dei comandiInterprete dei comandi

Gestione dei processi e degli interruptGestione dei processi e degli interruptGestione dei processiGestione dei processi

Programmi utenteProgrammi utente

Architettura a “cipolla” del sistema operativo;

ciascuno strato corrisponde ad una macchina virtuale

Page 11: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

11

Gestore dei processiGestore dei processi

È responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione

In caso di SO multiutente, deve garantire l’esecuzione concorrente di processi multipli, decidendo a quale di essi assegnare l’accesso e l’uso dell’unità di elaborazione

Gestisce gli interrupt provenienti dalle periferiche

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

Page 12: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

12

Esecuzione di un programma

Quando un programma utente è stato attivato il processore esegue una dopo l’altra le istruzioni assembler che lo compongono

Un programma in esecuzione viene detto ‘processo’

Problema : Come fa il Sistema Operativo a riprendere il controllo del processore dopo l’attivazione di un processo? Terminazione (normale o erronea) Interruzione (interrupt)

Page 13: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

13

Gestione dei processori

Gestione del/i processore/i:

• in un certo istante la CPU è assegnata ad un solo programma;

• assegnazione nel tempo della CPU ai vari programmi in attesa di essere eseguiti;

• gestione della cooperazione tra diverse CPU

(virtualizzazione dei processori)

Page 14: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

14

Gestione dei processi e dei processori

Gestione dei processi:

gestione dell’avvicendamento dei processi in esecuzione sul

processore (o sui processori).

Gestione dei processori:

gestione dell’assegnazione dei processori ai processi.

Page 15: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

15

S.O. multi-tasking

Obiettivo: sfruttare l’attesa per il compimento di

operazioni di I/O (anche l’80-90% del tempo di

elaborazione)

Mentre il processo i attende per un’op. di I/O viene

mandato in esecuzione il processo j.

Page 16: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

16

Tempo

Elapsed time: tempo trascorso tra l’inizio

della vita del processo e la sua terminazione

CPU time: tempo in cui il processo è stato

realmente in esecuzione

Page 17: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

17

Massimizzare l’uso della CPU.

Massimizzare il numero di processi eseguiti

nell’unità di tempo.

Minimizzare il tempo di risposta.

Obiettivi

Page 18: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

18

Processi Concorrenti

Nei sistemi attuali sono in esecuzione più processi

‘contemporaneamente’.

La CPU esegue comunque una sola istruzione per volta.

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

esecuzione: assegna la CPU ai vari processi istante dopo

istante.

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

processi e dei processori

Page 19: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

19

La gestione dei processi La gestione dei processi 1 1

ProcessoProcesso — un programma in esecuzione

Il processo è un oggetto dinamico, che evolve nel tempo, in contrapposizione al programma, un oggetto statico ed invariante nel tempo

L’unità di elaborazione che esegue i processi prende il nome di processoreprocessore

La corrispondenza tra programma e processo non è necessariamente biunivoca: uno stesso programma eseguibile può essere associato a più processi, ciascuno dei quali svolge uno dei compiti richiesti dal programma

Page 20: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

20

Il gestore dei processigestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell’interruzione e della riattivazione dei programmi in esecuzione

Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato schedulerscheduler

Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema

La gestione dei processi – 2La gestione dei processi – 2

Page 21: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

21

Stato dei processi Stato dei processi 1 1Mentre viene eseguito, un processo cambia statostato:

NewNew: Il processo viene creatoRunningRunning: Il processo viene eseguitoWaitingWaiting: Il processo è in attesa di un eventoReadyReady: Il processo è in attesa di essere assegnato al processoreTerminatedTerminated: Il processo ha terminato la propria esecuzione

Page 22: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

22

Stato dei processi Stato dei processi 2 2

Nell’ipotesi di un unico processore, uno solo dei processi può essere in esecuzione ad un certo istante, cioè in stato di running

Gli altri processi sono pronti (ready) o in attesa (waiting)I processi pronti possono venir eseguiti immediatamente: sarà lo scheduler della CPU, in base alla politica di gestione dei processi, a decidere quale dei processi pronti sarà il prossimo ad accedere alla CPUI processi in attesa attendono il verificarsi di un evento esterno (per esempio l’immissione di dati tramite un dispositivo di I/O) per passare in stato di pronto

Page 23: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

23

Interruzioni interne Interruzioni interne 1 1

Nel corso della sua evoluzione, il processo in esecuzione può richiedere lo svolgimento di un’operazione di ingresso/uscita che coinvolge una periferica

L’esecuzione del processo si interrompe ed il kernel del SO diviene attivo (si esegue un processo di sistema)

La sospensione del processo in esecuzione si dice interruzione interruzione internainterna: il processo passa dallo stato ready allo stato waiting

L’esigenza di sospendere il processo all’atto di una richiesta di un servizio di I/O risponde ad una logica di buona amministrazione delle risorse

Page 24: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

24

Interruzioni interne Interruzioni interne 2 2

E’ notevole la differenza fra i tempi di esecuzione delle istruzioni in memoria centrale (dell’ordine delle decine di nanosecondi) ed i tempi di esecuzione delle istruzioni di I/O (qualche millisecondo per accesso alla memoria di massa, qualche secondo per comandi da terminale)La sospensione avviene in modo tale che il processo possa riprendere la propria attività, dopo l’interruzione, esattamente dallo stesso punto e con gli stessi dati

Occorre salvare il contestosalvare il contesto, cioè copiare il contenuto dei registri del processore in una zona particolare di memoria, il descrittore descrittore del processodel processoPrima di riprendere l’esecuzione del processo interrotto, occorre eseguire l’operazione inversa, cioè ricopiare il contenuto del descrittore nei registri del processore, per ripristinare il ripristinare il contestocontesto

Page 25: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

25

Interruzioni interne Interruzioni interne 3 3

Dopo il salvataggio del contesto del processo interrotto, lo scheduler della CPU seleziona uno dei processi pronti e gli alloca il processore

Molti processi possono essere nello stato di pronto allo stesso tempoIl contesto del processo selezionato, in base alla politica di scheduling, viene ripristinato, e la sua esecuzione può proseguire dall’istruzione successiva a quella che ne aveva provocato l’interruzione (quella puntata dal registro program program countercounter )

L’operazione complessiva di interruzione di un processo, salvataggio del contesto, scelta di un nuovo processo dalla ready queueready queue (coda dei processi pronti), e ripristino del suo contesto, prende il nome di cambiamento di contestocambiamento di contesto o context switchcontext switch

Page 26: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

26

Interruzioni esterne Interruzioni esterne 1 1

Le interruzioni esterne sono eventi asincroni, cioè non regolati dal clock del processore: le operazioni dell’elaboratore si coordinano con il mondo esterno attraverso le periferiche

Quando si verifica un’interruzione esterna, il kernel......salva il contesto del processo attivo, che passa dallo stato di esecuzione allo stato di pronto...richiama un proprio modulo, il gestore delle interruzionigestore delle interruzioni, che esegue le operazioni necessarie per far fronte alla particolare interruzione

Page 27: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

27

Interruzioni esterne Interruzioni esterne 2 2

Esempio:Esempio: Se l’interruzione segnala la presenza di dati in ingresso da tastiera, a fronte di un’operazione di lettura richiesta dal processo P1, il gestore delle interruzioni...

...trasferisce i dati dal registro della periferica in memoria centrale...provvede a modificare lo stato del processo P1, da waiting a readyInoltre, al termine della gestione dell’interruzione, lo scheduler seleziona uno dei processi pronti (non necessariamente quello sospeso dall’interruzione appena servita) e lo manda in esecuzione

Page 28: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

28

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

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

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

Page 29: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

29

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

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

Infine, un processo in esecuzione può terminare regolarmente, o essere interrotto e terminato forzatamente dal nucleo (abortedaborted ) per il verificarsi di un errore

Ugualmente, lo scheduler seleziona un nuovo processo dalla ready queue

Page 30: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

30

Scheduling della CPU Scheduling della CPU 1 1

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

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

{

{min

max

Page 31: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

31

Le politiche di scheduling sono raggruppabili in due grandi categorie:

PreemptivePreemptive: l’uso della CPU da parte di un processo può essere interrotto in un qualsiasi momento, e la risorsa concessa ad altro processo

Non preemptiveNon preemptive: una volta che un processo ha ottenuto l’uso della CPU, è unico proprietario della risorsa finché non ne decide il rilascio

Scheduling della CPU Scheduling della CPU 2 2

Page 32: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

32

Scheduling della CPU Scheduling della CPU 3 3

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

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

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

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

Page 33: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

33

Scheduling della CPU Scheduling della CPU 3 3

Esempio:Esempio: Scheduling Roundrobin, con quanto di tempo 20

Processo Tempo di CPU

P1 53

P2 17

P3 68

P4 24

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

P3P2 P4 P1

Page 34: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

34

Scheduling della CPU Scheduling della CPU 4 4

Il quanto di tempo assegnato a ciascun processo......deve essere molto maggiore del tempo di context switch...deve essere significativamente inferiore al tempo medio di esecuzione dei programmi, altrimenti l’effetto della politica di rotazione si annulla

Un quanto di tempo minore incrementa il numero di context switchUn quanto di tempo minore incrementa il numero di context switch

Page 35: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

35

Scheduling della CPU Scheduling della CPU 5 5

Utilizzando la politica Roundrobin, il tempo di esecuzione di ciascun programma diviene approssimativamente proporzionale alla “complessità in tempo” del programma stesso ed al numero di operazioni di ingresso/uscita

Inoltre, frazionare l’esecuzione dei processi ha l’effetto di favorire il completamento rapido dei più brevi, con conseguente massimizzazione del numero di processi terminati nell’unità di tempo: aumento del throughputthroughput del sistema

Page 36: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

36

Scheduling della CPU Scheduling della CPU 6 6

Possono essere utilizzate politiche di scheduling più complesse: per esempio, se i processi hanno differenti priorità, è possibile associare a ciascun livello di priorità una diversa coda di processi pronti, per prelevare il primo processo dalla coda (non vuota) a priorità più alta

Page 37: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

37

Scheduling della CPU Scheduling della CPU 7 7

Esempio:Esempio: In un sistema che comporta problemi di sicurezza, alcuni eventi (come la segnalazione di guasti ai motori di un aereo) sono molto più importanti di altri (come la segnalazione di difetti al sistema di intrattenimento)

Nella maggior parte delle applicazioni di elaborazione dati viene attribuita una priorità bassa ai cosiddetti processi batchbatch, che non necessitano interazione con l’utente

Problema:Problema: StarvationStarvation (blocco indefinito), i processi a bassa priorità potrebbero non venir mai eseguiti

Soluzione:Soluzione: AgingAging (invecchiamento), aumento graduale della priorità dei processi che si trovano in attesa nel sistema da lungo tempo

Page 38: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

38

Sincronizzazione dei processi Sincronizzazione dei processi 1 1

tA

B

C

T

Tempo di utilizzo della CPUTempo di attesa di eventi esterni

I processi devono sincronizzarsisincronizzarsi, devono cioè coordinare le loro attivitàLa modalità più semplice di coordinamento consiste nell’esecuzione sequenzialeesecuzione sequenziale : un processo termina invocando l’attivazione di un nuovo processo

Page 39: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

39

Sincronizzazione dei processi Sincronizzazione dei processi 2 2

Tecniche di sincronizzazione più complesse nascono dall’esigenza dei processi di competerecompetere per alcune risorse, o di cooperarecooperare fra loroEsempio:Esempio: Un processo che richiede un servizio di I/O può essere interrotto e la CPU passata a un altro programma

Tmulti-tasking

tA

B

C

Tmono-tasking

Tempo di utilizzo della CPU

Tempo di attesa di eventi esterni

Page 40: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

40

Sincronizzazione dei processi Sincronizzazione dei processi 3 3

Un esempio di competizionecompetizione si verifica quando due processi vogliono accedere simultaneamente ad una risorsa, detta risorsa criticarisorsa critica, sulla quale può operare un solo processo alla volta; nel caso di richieste contemporanee, uno solo dei processi richiedenti accede alla risorsa critica, mentre l’altro deve attendere il rilascio della risorsa per potervi accedere a sua volta

Un esempio di coordinazionecoordinazione si ha quando due processi sono tali per cui ciascuno di essi ha bisogno dell’altro per poter evolvere; nel classico problema del produttore/consumatoreproblema del produttore/consumatore, il primo processo produce dati (per esempio, acquisendoli da una periferica) mentre il secondo li utilizza (per esempio, svolgendo su di essi delle elaborazioni)

Page 41: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

41

Sincronizzazione dei processi Sincronizzazione dei processi 4 4

La sincronizzazione dei processi, necessaria sia nel caso di competizione sia nel caso di cooperazione, avviene tramite due meccanismi fondamentali...

...l’uso di variabili condivise (dette semaforisemafori), per l’accesso a parti critiche di codice...e la comunicazione esplicita fra processi (mediante scambio di messaggimessaggi)

Esempio:Esempio: L’accesso concorrente a dati condivisi può causare incoerenza nei datiPer garantire la coerenza dei dati occorrono meccanismi che assicurano l’esecuzione ordinata dei processi cooperanti

Page 42: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

42

Sincronizzazione dei processi Sincronizzazione dei processi 5 5

Problema della sezione critica:Problema della sezione critica:n processi competono per utilizzare dati condivisi; ciascun processo è costituito da un segmento di codice, detto sezione sezione criticacritica, in cui accede ai dati e li modificaIpotesi:Ipotesi:

Assicurarsi che, quando un processo esegue la sua sezione critica, a nessun altro processo sia concesso eseguire la propriaL’esecuzione di sezioni critiche da parte di processi cooperanti è mutuamente esclusivamutuamente esclusiva nel tempo

Soluzione: Soluzione: progettare un protocollo di cooperazione fra processiOgni processo deve chiedere il permesso di accesso alla sezione critica, tramite una entry section entry section (il semaforo diviene “rosso” ad opera del processo che trova il “verde” e si accinge ad accedere ai dati) La sezione critica è seguita da una exit section exit section (il semaforo “rosso” diviene “verde” ad opera del processo che ha terminato di utilizzare i dati condivisi); il rimanente codice è non critico

Page 43: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

43

Gestore della memoriaGestore della memoria

Alloca la memoria e la ripartisce fra i vari programmi che la richiedono

Nei SO multiutente, è opportuno che molti programmi siano contemporaneamente presenti in memoria centrale, per ottenere un’esecuzione “simultanea”

Lo strato del gestore di memoria offre agli strati superiori una Lo strato del gestore di memoria offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se macchina virtuale in cui ciascun programma opera come se avesse a disposizione una memoria dedicataavesse a disposizione una memoria dedicata

Page 44: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

44

Sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche

Ciascun driver è un modulo software dedicato a “guidare” una periferica specifica: ne conosce (e ne occulta) le caratteristiche hardware

Lo strato del gestore delle periferiche offre all’utente una Lo strato del gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente ha a versione astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di alto livello disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su periferiche, che “percepisce” come per leggere/scrivere da/su periferiche, che “percepisce” come dedicatededicate

Driver di dispositivoDriver di dispositivo

Page 45: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

45

È responsabile della gestione dei filefile in memoria di massa; struttura i dati in file e li organizza in directorydirectory (cartelle nel linguaggio di MS WindowsMS Windows)

Fornisce all’utente un insieme di funzioni di alto livello per operare su file e directory, mascherando le operazioni realmente effettuate per allocare la memoria e per accedervi in lettura/scrittura

Tramite il file system, ciascun utente può organizzarsi la propria area di memoria e garantirne la protezione da accessi esterni

Consente la condivisione dei file

File systemFile system

Page 46: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

46

Consente all’utente di attivare i programmiAccede al programma, residente su memoria di massa, tramite il file systemAlloca memoria e vi carica il programma (tramite il gestore della memoria)Attiva il processo (sfruttando le funzionalità del nucleo)

Sfrutta l’organizzazione a strati del SO e può richiedere l’esecuzione di qualsiasi funzione implementata negli strati sottostanti

Interprete dei comandiInterprete dei comandi

Page 47: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

47

Ancora sul sistema operativo...Ancora sul sistema operativo...

I primi tre strati del SO, dedicati alla gestione dei processi, della memoria e delle periferiche, ne costituiscono il nucleonucleo, o kernelkernel

L’obiettivo del SO consiste nell’ottimizzare le prestazioni del sistema informatico, determinando le politiche migliori di gestione delle risorse sotto il suo controllo

Nei sistemi multiutente, ciascun utente risente della presenza degli altri in misura crescente con il carico complessivo del sistema, ovvero, al crescere del numero delle richieste di elaborazione, il sistema può diventare sovraccarico e fornire prestazioni percepibilmente scadenti

Page 48: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

48

La gestione della memoriaLa gestione della memoria

Page 49: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

49

Gestione della memoria centrale – 1Gestione della memoria centrale – 1

La memoria centrale……è un “array” di byte indirizzabili singolarmente…è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O

Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria principale:

Tenere traccia di quali parti della memoria sono usate e da chiDecidere quali processi caricare quando diventa disponibile spazio in memoriaAllocare e deallocare lo spazio di memoria quando necessario

Page 50: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

50

Gestione della memoria centrale Gestione della memoria centrale 2 2

Premessa indispensabile per la gestione concorrente di molti processi è la presenza di molti programmi in memoria centrale (multiprogrammazione)

La memoria centrale assume un ruolo simile all’unità di elaborazione: è una risorsa unica, spesso scarsa, da suddividere fra i vari processi/programmi

Per allocare i programmi in memoria centrale è necessario rilocarlirilocarli:

RilocareRilocare significa trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici, corrispondenti alle locazioni di memoria dove il codice eseguibile viene effettivamente caricatoD’altra parte, l’uso di indirizzi logici nei programmi è essenziale per consentirne il caricamento in differenti porzioni di memoria

ProblemaProblema: come allocare lo spazio in maniera ottimale

Page 51: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

51

Programma AProgramma A

Programma BProgramma B

Programma CProgramma C

Memoria0000x

Allocazione a partizioni multipleAllocazione a partizioni multiple

Programma AProgramma A

Programma EProgramma E

Memoria0000x

Programma DProgramma D

Programma CProgramma C

Istante T1 Istante T2

Page 52: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

52

Programma AProgramma A

Programma EProgramma E

Memoria0000x

Programma DProgramma D

Programma CProgramma C

Programma FProgramma F

PROBLEMA !!!!PROBLEMA !!!!

FRAMMENTAZIONEFRAMMENTAZIONE

Allocazione a partizioni multipleAllocazione a partizioni multiple

Page 53: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

53

PaginazionePaginazione

La memoria centrale è considerata dal gestore della memoria come partizionata in pagine, ciascuna delle quali è un’area di memoria contigua, di dimensione prefissataAnche i programmi vengono partizionati in pagine ed allocati in un numero intero di pagine, non necessariamente contigue

Un importante meccanismo di “suddivisione” della memoria centrale, e delle entità in essa memorizzate, è quello della paginazionepaginazione:

Tabella di mappa di pagina

Page 54: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

54

Tabella di mappa di pagina

Compito della Tabella di mappa di pagina è: - mettere in relazione le pagine di un programma e i blocchi di memoria - consentire al Sistema Operativo di sapere quali pagine sono realmente

presenti in memoria e in quali blocchi sono memorizzate (paginazione dinamica)

- generare un’interruzione quando un lavoro vuole accedere ad un indirizzo contenuto in una pagina non presente in memoria e quindi richiedere al Sistema Operativo di caricarla dal disco in memoria. 1) Se vi sono blocchi liberi, questa operazione consisterà nell'aggiornamento della tabella di mappa e nel caricamento effettivo nel blocco prescelto. 2) Se invece non vi sono blocchi disponibili, occorrerà scegliere tra le pagine presenti in memoria quale riportare sul disco, liberando così il relativo blocco di memoria.

Page 55: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

55

Programma DProgramma D

Memoria

0000x Programma AProgramma A

Programma AProgramma A

Programma AProgramma A

Programma BProgramma B

Programma BProgramma B

Soluzione: PaginazioneSoluzione: Paginazione

Memoria

0000x Programma AProgramma A

Programma AProgramma A

Programma AProgramma A

Programma DProgramma D

Programma EProgramma E

Programma FProgramma F

Programma FProgramma F

Page 56: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

56

SegmentazioneSegmentazione

Il gestore della memoria può utilizzare il partizionamento logico del programma per caricare segmenti di lunghezza variabile in maniera indipendente

NB:NB: Mentre le pagine hanno lunghezza fissa, i segmenti, essendo logicamente suddivisi, hanno lunghezza variabile

1

3

2

4

1

4

2

3

Spazio utente (Programma)Spazio utente (Programma) Spazio fisico di memoriaSpazio fisico di memoria

Segmento: parte di un programma che svolge una determinata funzione logica. (funzioni, array, ecc)

Segmenti logiciSegmenti fisici

Page 57: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

57

La Segmentazione

Definiamo segmento un insieme di istruzioni considerate come una unità logica ad esempio una routine, un array, un'area dati ecc.Uno spazio degli indirizzi di un programma si può quindi pensare composto da diversi segmenti di dimensioni variabili, ciascuno dei quali viene caricato in memoria all'occorrenza e collegato al resto del programma in modo dinamico (paginazione dinamica) ed utilizzato per l'esecuzione.

Page 58: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

58

Paginazione e Segmentazione

• Paginazione– la divisione in pagine eseguita dal S.O. – le pagine hanno dimensione fissa– le pagine possono contenere informazioni disomogenee (ad

es. sia codice sia dati)– una pagina ha un indirizzo di memoria– dimensione tipica della pagina: 4 KB

Page 59: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

59

Segmentazione e Paginazione

Segmentazione

– la divisione in segmenti spetta al programmatore.

– i segmenti hanno dimensione variabile

– un segmento contiene informazioni omogenee per tipo di accesso e permessi di condivisione (insieme di istruzioni)

– un segmento ha un nome.

– dimensione tipica di un segmento: 64KB - 1MB

Page 60: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

60

Segmentazione e paginazione non sono mutuamente esclusive: in molti SO vengono applicate contemporaneamente

In entrambi i casi, il gestore della memoria offre al programma applicativo la visione di una memoria virtualememoria virtuale, che può essere maggiore di quella fisica

Si possono gestire programmi caricandone effettivamente in memoria solo le pagine (o i segmenti) relative al codice attualmente in esecuzioneLe pagine (o i segmenti) che non sono al momento caricate in memoria rimangono disponibili sulla memoria di massa, all’interno di opportuni file

Memoria Virtuale (swap)Memoria Virtuale (swap)

Page 61: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

61

Programma DProgramma D

Memoria

0000x Programma A-1Programma A-1

Programma B-1Programma B-1

Programma A-2Programma A-2

Programma A-3Programma A-3

Programma B-2Programma B-2

Swap

La memoria virtuale La memoria virtuale

Page 62: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

62

La memoria virtuale La memoria virtuale

Programma DProgramma D

Memoria

0000x Programma A-2Programma A-2

Programma B-1Programma B-1

Programma A-1Programma A-1

Programma A-3Programma A-3

Programma B-2Programma B-2

Swap

Page 63: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

63

Memoria fisica e memoria virtuale

…...

0

1

2

3

4

5

DecimaleMem. virtuale o logica

4 Giga

…...

Mem. fisica

0

1

2

128 Mega

Il numero di indirizzi virtuali (o logici) è maggiore del numero di indirizzi fisici !!!

Page 64: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

64

Indirizzi logici e fisici

Mem. virtuale Mem. fisica

…...

148 148

…...

Se numero ind. logici = numero ind. fisici

abbiamo una corrispondenza uno a uno

Page 65: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

65

Indirizzi logici e fisici

Mem. virtuale

Mem. fisica

…...

148 300

- Poiché nella memoria virtuale: num. indirizzi logici > num. indirizzi fisici

allora più indirizzi logici vengono tradotti in un unico indirizzo fisico

132

56

…...

Page 66: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

66

Indirizzi logici e fisici Mem. virtuale

Mem. fisica

148 300132

56

......

Mem. virtuale

Mem. fisica

300

56

......

148132

Istante T1

Istante T2

N.B. Le celle con ind. logici tradotti in un unico ind. fisico non possono essere usate contemporaneamente.

Page 67: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

67

Traduzione degli indirizzi

La traduzione degli indirizzi logici in indirizzi fisici è effettuata dalla MMU (Memory Management Unit), componente HW nella CPU.

RAMCPU

MMU

Ind. logici

Ind. fisici

Address BUS

Data BUS

Control BUS

Page 68: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

68

Gestione della memoria centraleGestione della memoria centrale

La gestione di memoria e processi deve essere coordinata: • quando un processo viene eseguito, il codice relativo al

corrispondente programma deve essere almeno parzialmente residente in memoria

Le pagine (o i segmenti) attualmente in esecuzione o che contengono i dati attualmente indirizzati/elaborati devono risiedere in memoria centrale

• Se una pagina o un segmento necessario al processo non è presente in memoria centrale, il processo deve essere sospeso per consentire il caricamento, da parte del gestore della memoria, della pagina o del segmento di codice

• Il processo corrispondente passa da running a waiting; entrerà nuovamente nella ready queue quando saranno completate le operazioni necessarie a portare la pagina o il segmento in memoria

Page 69: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

69

Memoria di modo S ed U Memoria di modo S ed U 1 1

Ai programmi che realizzano le funzioni proprie del SO, ed alle strutture dati da esso usate, devono essere assegnate opportune zone di memoriaInoltre, i processi di sistema possono usare l’intero set di istruzioni del calcolatore (talune non disponibili per i programmi utente), possono venire allocati in memoria in maniera ottimale, e devono essere protetti da errori causati da altri programmi

La memoria viene suddivisa in memoria di modo Smemoria di modo S (supervisore) e memoria di modo Umemoria di modo U (utente)

Nella porzione di modo S vengono caricati i processi del SO e vengono create le strutture dati da esso utilizzateNella porzione di modo U vengono caricati i processi utente

Page 70: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

70

Memoria di modo S ed U Memoria di modo S ed U 2 2

Se il processore sta eseguendo un processo utente, lo si dice attivo attivo in modo utentein modo utente (modo Umodo U), se esegue un processo di sistema, cioè se è attivo il nucleo, lo si dice attivo in modo supervisoreattivo in modo supervisore (modo Smodo S)

Quando il processore è attivo in modo S può accedere a tutta la memoria (di modo U e di modo S) ed ha a disposizione un insieme più ricco di istruzioniIl processore attivo in modo U può accedere solo alle zone di memoria di modo U, ed in particolare a quelle riservate al solo processo in esecuzione

La suddivione della memoria protegge il codice e le strutture dati che il SO usa per garantire una gestione delle risorse corretta ed efficiente

Le istruzioni di codice utente non possono accedere a zone di memoria di modo S se non richiedendo l’intervento del SO

Page 71: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

71

La gestione delle perifericheLa gestione delle periferiche

Page 72: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

72

La gestione dei dispositivi di I/O La gestione dei dispositivi di I/O

La gestione dell’I/O richiede:Un’interfaccia comune per la gestione dei device driverdevice driverUn insieme di driver per dispositivi hardware specificiUn sistema di gestione di buffer per il caching delle informazioni

Il gestore dei dispositivi di I/Ogestore dei dispositivi di I/O è il modulo del SO incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi

Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema

Page 73: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

73

Driver di dispositivo Driver di dispositivo

I driver sono moduli software cui è affidato il compito di comunicare dati da e verso le periferichePermettono l’accesso alle periferiche tramite “primitive di alto livello”I device driver implementano le seguenti funzioni:

Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivoGestiscono la comunicazione dei segnali verso i dispositiviGestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo

I driver vengono scritti specificamente per ciascun dispositivo e sono normalmente forniti dal costruttore

Page 74: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

74

Il file systemIl file system

Page 75: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

75

Il file system Il file system 1 1

FileFile: Spazio di indirizzi logici contigui; è un insieme di informazioni correlate e registrate nella memoria secondaria, a cui è stato assegnato un nome

Dal punto di vista dell’utente......è la più piccola porzione di memoria secondaria indirizzabile logicamente e......i dati possono essere scritti nella memoria secondaria soltanto all’interno di un file

Dal punto di vista del SO......i file vengono mappati su dispositivi fisici di memorizzazione non volatili

Page 76: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

76

Il file system Il file system 2 2

Attributi del fileAttributi del file:NomeNome: identificativo del file LocazioneLocazione: puntatore al dispositivo ed alla posizione del file sul dispositivoDimensioneDimensione: dimensione attuale del fileProtezioneProtezione: parametri di controllo per l’accesso in lettura, scrittura ed esecuzione del fileOraOra, datadata, identificativo dell’utenteidentificativo dell’utente: dati necessari a protezione e sicurezza del sistema, e per il controllo d’uso

Page 77: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

77

Il file system Il file system 3 3

Il file systemfile system è responsabile della gestione dei file in memoria di massa

struttura i dati in file......li organizza in directory (o cartelle)realizza inoltre un insieme di funzioni di alto livello per operare su file e directory

Il file system garantisce una gestione dei file indipendente dalle caratteristiche fisiche dei dispositivi che costituiscono la memoria di massa: astrazione utile sia per l’utente sia per i programmi

Page 78: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

78

La gestione dei file La gestione dei file 1 1

Le infomazioni sui file sono conservate nella struttura di directorydirectory, che risiede sulla memoria secondariaLe directorydirectory hanno (nel caso più semplice) organizzazione ad alberoalbero; ciascuna directory può contenere file e sottodirectory

DirectoryDirectory

FileFile

Albero delle directoryAlbero delle directory

Page 79: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

79

La gestione dei file La gestione dei file 2 2

Ciascun file viene identificato da un pathnamepathname che include l’intero cammino, dalla radice dell’albero al file stessoTutti i file e sottodirectory presenti nella stessa directory devono avere nomi distinti ciascun pathname è unico

Il file system di WINDOWSIl file system di WINDOWS

Page 80: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

80

La gestione dei file La gestione dei file 3 3

Un utente che interagisce con il file system ha un proprio contesto, cioè una specifica posizione nel file system, corrispondente ad un nodo nell’albero

Per default, all’atto del collegamento al sistema, il contesto dell’utente è costituito dalla sua home directory

Il contesto può essere variato, muovendosi ovunque nell’albero delle directory (almeno in quelle accessibili all’utente)

Page 81: Nessun titolo diapositivasardegna2007.altervista.org/SistOperativo.pdf · hardware e offre all’utente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità

81

La gestione dei file La gestione dei file 4 4

Funzioni disponibili agli utenti del file system:

Creazione di file (operazione normalmente eseguita da software applicativo, come editor e word processor) e directory

Comandi per stabilire i parametri di protezione

Lista del contenuto di una directory

Comandi per cambiare il contesto

Copia, ridenominazione e visualizzazione di file

Cancellazione di file e rimozione di directory