• La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80...

31
75 Informatica di Base Informatica di Base -- -- R.Gaeta R.Gaeta Gestione della memoria centrale La memoria principale è una risorsa essenziale all'interno di un elaboratore Un programma per essere eseguito deve risiedere all'interno della memoria principale e lo stesso discorso vale per i dati su cui esso opera Anche nel caso della memoria principale esistono dei problemi di gestione Se molti processi devono essere eseguiti contemporaneamente, si dovrà trovare un meccanismo per permettere a questi processi di condividere l'uso della memoria principale

Transcript of • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80...

Page 1: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

75

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria centrale

• La memoria principale è una risorsa essenziale all'interno di unelaboratore

• Un programma per essere eseguito deve risiedere all'interno della memoria principale e lo stesso discorso vale per i dati sucui esso opera

• Anche nel caso della memoria principale esistono dei problemi di gestione

• Se molti processi devono essere eseguiti contemporaneamente, si dovrà trovare un meccanismo per permettere a questi processi di condividere l'uso della memoria principale

Page 2: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

76

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria centrale

• Esistono due aspetti fondamentali della gestione della memoria principale: – la gestione della memoria reale

– la gestione della memoria virtuale

• Nel primo caso si suddivide la memoria principale tra i processi; nel secondo caso si realizza una visione astratta della memoria principale che consente di estenderne le potenzialità

Page 3: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

77

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Data la memoria principale fisicamente esistente all'interno di un elaboratore, come dobbiamo allocarla ai processi che devono essere eseguiti?

• Consideriamo dapprima il caso, molto semplice, di un sistema mono-programmato in cui in ogni istante esiste un solo processo di utente

• In realtà abbiamo anche dei processi di sistema, e quindi dovremo destinare una parte della memoria alla parte residente del sistema operativo e una parte al processo utente

Page 4: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

78

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• La memoria è costituita da una sequenza di celle, tutte della stessa lunghezza

• Ogni cella è caratterizzata da un indirizzo che viene utilizzato per leggere/scrivere le informazioni

• Di solito si sceglie di destinare al sistema operativo le prime o le ultime celle della memoria

Sistema Operativo

processoutente

0

XX+1

N

S.O.

Page 5: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

79

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Veniamo ora al caso di un sistema multi-programmato in cui più programmi utente sono eseguiti in alternanza.

• Immagine di un processo: insieme di istruzioni e dati su cui le istruzioni operano

• Consideriamo il caso di due processi P1 e P2:– quando P1 è in esecuzione il programma ed i dati corrispondenti devono

essere in memoria principale e lo stesso discorso deve valere per P2

• Una prima possibilità per risolvere questo problema è quella di suddividere la memoria principale in modo da contenere simultaneamente le immagini dei due processi

Page 6: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

80

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Esistono due tecniche che permettono di raggiungere questo obiettivo, e si parla di:– sistemi a partizioni multiple con allocazione contigua– sistemi ad allocazione non contigua

• Nel primo caso la memoria viene suddivisa in partizioni che devono contenere le immagini dei processi; si parla di allocazione contigua perché ciascuna partizione deve contenere interamente l’immagine di un processo

• Nel secondo caso si divide l'immagine di un processo in più parti che possono essere caricate in memoria separatamente

Page 7: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

81

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Nel caso di un sistema con partizioni di memoria multiple sorgono nuovi problemi di gestione per il sistema operativo– Quante partizioni creare e di quali dimensioni?– Le partizioni sono create una volta per tutte al momento della

configurazione del sistema o possono essere modificate a secondadelle necessità correnti?

– Come si sceglie la partizione in cui caricare l'immagine di un processo?

– Come si tiene traccia di dove sono stati caricati i processi?– Come si proteggono i programmi tra di loro?

Page 8: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

82

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Per tener traccia delle zone di memoria in cui sono stati caricati i programmi è sufficiente mantenere nel descrittore di ciascun processo l'indirizzo iniziale della partizione in cui esso è caricato

• Quando si hanno più processi in memoria si deve fare in modo che nessuno di essi possa operare in una zona di memoria destinata ad un altro

• Ad ogni processo deve essere consentito di leggere e scrivere solo all'interno della sua partizione in modo da non danneggiarel'esecuzione degli altri

Page 9: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

83

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Si possono utilizzare due registri per delimitare la partizione di memoria del processo in esecuzione e, ogni volta che si vuolefare un accesso in memoria, si dovrà controllare che l’indirizzoprodotto sia valido, cioè all’interno della partizione in cui è caricata l’immagine del processo

Indirizzo iniziale partizioneSistema Operativo

processoutente

S.O.

Indirizzo finale partizione

Page 10: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

84

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria reale

• Suddivisione della memoria in partizioni fisse e partizioni variabili

S.O.

200KB

100KB100KB

S.O.

area libera400 KB

S.O.

area libera350 KB

50 KB

Page 11: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

85

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Uno degli obiettivi di un sistema operativo multi-programmato, in particolare in ambiente multi-utente, è quello di nascondere il più possibile a ciascun processo (a ciascun utente) la presenza degli altri processi (utenti) che stanno condividendo le risorsedi calcolo

• Compito del sistema operativo è quello di fornire ad ogni singolo processo una visione astratta in cui esso ha una macchina virtuale interamente a sua disposizione

Page 12: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

86

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Nel caso della gestione del processore abbiamo visto che la tecnica di alternare l'esecuzione fa sì che ogni utente abbia l'impressione che il suo programma sia sempre in esecuzione

• Per quanto riguarda la gestione della memoria, il problema è piùcomplesso. Si vuole che ogni utente possa, almeno in linea di principio, scrivere programmi grandi almeno quanto la memoria reale e che questi programmi possano essere eseguiti contemporaneamente ad altri

Page 13: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

87

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• In alcuni casi si vogliono addirittura nascondere agli utenti ledimensioni della memoria fisica e fare in modo che essi possano scrivere dei programmi di dimensione qualunque, anche molto più grandi dello spazio di memoria effettivamente esistente sulla macchina hardware

• In questo modo, tra l'altro, è possibile che un utente esegua i suoi programmi su macchine differenti, senza doversi preoccupare delle dimensioni delle loro memorie centrali

Page 14: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

88

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Questa visione astratta della memoria prende il nome di memoria virtuale e i programmi di sistema che la realizzano prendono il nome di gestori della memoria virtuale

• La tecnica fondamentale per la gestione della memoria virtuale consiste nel caricare le immagini dei processi nella memoria centrale a pezzi

Page 15: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

89

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Supponiamo di avere a disposizione una memoria principale (spazio utente) di 1 MByte e di voler eseguire simultaneamente due programmi che richiedono entrambi 1 Mbyte

• Le tecniche di gestione della memoria a partizioni fisse o variabili non ci permettono di eseguire contemporaneamente questi due programmi perché le loro immagini non potrebbero essere caricate nella memoria principale

• Vediamo come possiamo risolvere questo problema con la memoria virtuale

Page 16: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

90

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Si parte dalla considerazione che per eseguire un processo non è necessario caricare completamente in memoria la sua immagine

• È sufficiente caricare in memoria principale solo quelle parti del programma e dei dati che servono durante una certa fase dell'elaborazione; le altre parti possono essere tenute su un supporto di memoria secondaria

• In questo modo la memoria potrà essere condivisa da più processi in quanto, in ogni istante, solo una parte di ognuno diessi risiederà in memoria

Page 17: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

91

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Per realizzare il concetto di memoria virtuale, è necessario avere a disposizione:– La memoria principale in cui tenere solo i programmi, o i pezzi di

programmi, che servono in un certo istante.– Un supporto di memoria secondaria in cui mantenere tutte le

immagini dei processi che verranno caricate di volta in volta nella memoria principale (solitamente si utilizzano come supporti di memoria secondaria i dischi rigidi perché sono necessari dei supporti veloci e con accesso diretto, per fare in modo che il tempo richiesto per i caricare programmi dalla memoria secondaria a quella principale non sia troppo alto)

Page 18: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

92

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Consideriamo il caso di un programma di elaborazione di testi• Ad ogni istante non è necessario avere in memoria tutte le

parti del programma, ma solo quelle correntemente in uso• Ad esempio, la parte di programma che effettua la verifica

dell'ortografia non serve sempre, ma può essere caricata solo quando tale funzione viene richiesta

• Allo stesso modo non tutti i dati sono necessari. Durante la scrittura di un libro sarà sufficiente tenere in memoria i dati relativi al capitolo che si sta scrivendo; il resto potrà esserecaricato in memoria solo quando serve

Page 19: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

93

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Si possono tenere in memoria solo alcune parti delle immagini dei processi, purché si sia sempre in grado di caricare le altreparti quando servono. Questa è proprio l'idea che sta alla base delle tecniche di gestione a pezzi e, in particolare, della tecnica di paginazione a richiesta (demand paging)

• Nella paginazione l'immagine di un processo viene suddivisa in pagine, tutte della stessa dimensione, che vengono caricate all'interno della memoria principale in modo indipendentemente

Page 20: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

94

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Gestione della memoria virtuale

• Per avere un sistema di gestione della memoria basato sul demand paging anche la memoria principale dell'elaboratore deve essere suddivisa in un certo numero di blocchi, tutti dellestesse dimensioni (sono uguali alla dimensione della pagina)

Page 21: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

95

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Avviamento dell’elaboratore

• In genere il sistema operativo viene mandato in esecuzione al momento dell'accensione della macchina

• Questa fase iniziale prende il nome di bootstrap

• In questa fase una parte del S. O. (ossia un insieme di programmi e un insieme di dati) viene caricata in memoria principale

Page 22: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

96

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Avviamento dell’elaboratore

• In genere questa parte del S. O. comprende:– i programmi per la gestione dei processi e del processore

– i programmi per la gestione della memoria

– i programmi per la gestione delle periferiche e dell'input/output

– i programmi per la gestione del file system

– un programma che crea l'interfaccia verso l’utente (che può essere sia di tipo testuale che di tipo grafico)

Page 23: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

97

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Avviamento dell’elaboratore

• Una parte del sistema operativo deve essere sempre mantenuta in memoria principale e deve essere sempre pronta per l’esecuzione

• Questo significa che parte della memoria principale dovrà essere dedicata a mantenere i programmi e i dati riguardanti il sistema operativo

• Durante la fase di bootstrap vengono inoltre effettuate operazioni di inizializzazione del sistema per tener conto delle risorse hardware collegate all'elaboratore

Page 24: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

98

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Avviamento dell’elaboratore

• Vengono identificati i dispositivi di memoria secondaria e le periferiche collegate e, per ciascuno di essi, viene inizializzatoil programma di gestione

• In alcuni sistemi vengono anche effettuate delle verifiche sullerisorse hardware, ad esempio, sullo stato dei dischi per scoprire se esistono inconsistenze che si sono create nel corso dell'uso dell'elaboratore

Page 25: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

99

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Avviamento dell’elaboratore

• Spesso durante questa fase sono eseguiti anche dei programmi che verificano l'eventuale presenza di virus annidati sul disco dell'elaboratore

• I virus sono dei programmi pirata che possono essere trasmessi da un elaboratore ad un altro quando si copiano dei programmi

• Un virus può danneggiare il funzionamento dell'elaboratore generando operazioni di disturbo o condizioni di errore (in alcuni casi i virus possono anche portare a danneggiamenti seri)

Page 26: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

100

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Sistemi Operativi: cenni storici

• Anni ‘50: Un programmatore (utente) aveva a sua disposizione il computer durante il periodo di uso

• Anni ‘60: Sistemi a batch– Motivazione: i computer erano abbastanza veloci ma erano costosi, quindi

era sprecato permettere l'accesso alla macchina ad una persona per volta.

– Soluzione: sottoporre le elaborazione a “lotti” di job (programmi)

Carico di job Esecuzione Raccolta dei risultati

Page 27: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

101

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Sistemi Operativi: cenni storici

• Anni ‘70: Sistemi time-sharing– Un gruppo di utenti, attraverso dei terminali, possono condividere il

computer avendo l'illusione di “essere completamente padroni” della macchina

• Anni ‘80:– Evoluzione tecnonologica– Personal computer, reti locali, workstation, ecc.

Page 28: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

102

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Sistemi Operativi: linee di evoluzione

• 50 -> 60 (avvento dei sistemi a batch)– I computer dispongono di risorse (memoria centrale, ecc.) tali da poter

caricare in memoria sia programmi applicativi che S. O.– Il costo dei computer è molto alto, quindi è auspicabile che la produttività

(quantità di lavoro che viene eseguito) sia la più alta possibile– La risposta a queste esigenze ha portato allo sviluppo dei sistemi a batch.

Page 29: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

103

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Sistemi Operativi: linee di evoluzione

• 60 -> 70 (avvento dei sistemi time sharing)– Computer sempre più potenti (velocità di esecuzione delle operazioni,

capacità della memoria centrale, quella di massa, ecc.)– Il costo dei computer decresce.– Necessità di aumentare la produttività dei programmatori.– La risposta a queste esigenze ha portato allo sviluppo dei sistemi time

sharing

Page 30: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

104

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Sistemi Operativi: linee di evoluzione

• 70 -> 80 (personal computer, reti locali, workstation)– Costo di computer in diminuzione– Prestazioni elevate– Il time sharing non è una tecnica soddisfacente. Per esempio le stazioni

grafiche (workstation) richiedono un feedback (risposta del sistema) che non può essere fornito da un sistema time sharing

– Le reti di comunicazione permettono il collegamento di vari computer in modo semplice ed economico

– Necessità gestire risorse distribuite– Servizi locali e remoti– Gestione di file allocati su differenti macchine– Tutte queste esigenze hanno portato allo sviluppo di sistemi distribuiti

Page 31: • La memoria principale è una risorsa essenziale …rossano/DIDATTICA/INF-0102/lezione12.pdf80 Informatica di Base -- R.Gaeta Gestione della memoria reale • Esistono due tecniche

105

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Sistemi Operativi: linee di evoluzione

• 80 -> 90 Quali sono stati gli sviluppi rilevanti nel decennio ’80/'90 ?– Continuo aumento delle prestazioni dei computer– Diminuzione dei costi– Reti– Popolarità di Internet