La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 

Presentazioni simili


Presentazione sul tema: " Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale "— Transcript della presentazione:

1

2  Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale  Durante lo scheduling della CPU, essa viene associata ciclicamente a più processi.  Per essere efficiente il sistema di elaborazione, i processi devono risiedere contemporaneamente in memoria centrale  È compito opportuno di un modulo di gestire la memoria centrale

3 Le problematiche relative alla gestione della memoria sono le seguenti:  Differente velocità di accesso della CPU ai propri registri interni o all’esecuzione di una istruzione. Ciò provoca un rallentamento del processore. L’utilizzo di una memoria cache rende più veloce l’accesso ai dati  Più processi possono invadere la memoria dedicata a processi di sistemi o ad altri; il sistema operativo gestisce gli spazi affinchè ciò non avvenga  Nel corso di esecuzione un processo può essere spostato dalla memoria centrale ad una memoria di massa. Il sistema operativo deve fare in modo che il processo possa comunque avanzare

4  Lo swapping è una operazione di caricamento e scaricamento di un processo  Avviene quando nella memoria centrale ci sono troppi processi in coda  Alcuni processi vengono caricati in una memoria ausiliaria  Gli scheduler che decidono di portare a termine un processo nella memoria ausiliaria, affidano al dispatcher il compito di reperire i processi interessati.  Il dispatcer però cerca i processi prima tra i pronti e poi, nella memoria ausiliaria

5  Gli indirizzi simbolici sono quelli cui fanno riferimento le applicazioni e sono generalmente indici, contatori, etichette  Gli indirizzi rilocabili sono gli indirizzi di partenza delle applicazioni ma non si riferiscono alla collocazione assoluta in memoria.  Gli indirizzi assoluti vengono generarti in fase di caricamento del processo o di compilazione o, come nella maggior parte dei sistemi operativi, in fase di esecuzione  Gli indirizzi logici sono quelli generati da un programma. L’insieme degli indirizzi logici è detto spazio degli indirizzi logici  Gli indirizzi fisici sono la locazione fisica vera e propria di un programma all’interno della memoria. L’insieme degli indirizzi fisici è detto spazio degli indirizzi fisici  Ad ogni indirizzo logico, viene attribuito un indirizzo fisico, sommando l’indirizzo logico con l’indirizzo di locazione

6

7

8

9  Con l’avvento del multitasking più processi possono essere caricati contemporaneamente e la memoria deve essere ripartita.  Le partizioni non sono tutte della stessa dimensione; l’estensione viene stabilita a priori  Appena si libera una partizione, viene selezionato un nuovo processo  Un processo va ad occupare solo la porzione di memoria che realmente gli occorre. Se avanzano degli spazi di memoria si creano dei buchi. Il sistema operativo mette a disposizione una tabella di partizioni fisse.  Partizione variabile :è una tecnica più moderna della precedente; il frazionamento della memoria viene stabilito volta per volta dal sistema operativo. Le dimensioni delle partizioni non sono fisse ma vengono stabilite volta per volta.

10  Si assegna al primo processo la prima area libera sufficientemente grande da contenerlo; al secondo processo la seconda area libera sempre sufficientemente grande da contenerlo e così via.  Sia allora la seguente tabella dei processi con le rispettive dimensioni e la tabella delle partizioni di memoria:  Le assegnazioni sono le seguenti: Processidimensioni P1250 kB P2400 kB P3150 kB P450 kB P5125 kB Areedimensioni A200 kB B140 kB C250 kB D500 kB E450 kB processiAree P1C P2D P3A P4B P5E

11  Per migliorare la tecnica precedente, si associa ad ogni processo l’area di memoria più piccola ma sufficientemente grande da contenere ogni processo.  Si ordina allora la tabella della memoria per ordine crescente.  In base all’esempio precedente, la tabella dei processi e delle aree di memoria sarà la seguente : ProcessiAree P1C P2E P3A P4B P5D

12  Con tale tecnica si associa ai processi l’area più grande possibile. Si ordina la tabella per ordine decrescente e, la relazione tra processi e aree di memoria sarà: ProcessiAree P1D P2E P3C P4A P5B

13  In ognuno dei metodi precedenti lascia delle aree di memoria libere dando vita alla frammentazione esterna  Riordinando le aree di memoria e riunendole insieme, si effettua la compattazione rendendo i residui aree disponibili.

14  Metodo molto efficace utilizzato nei s.o. per la gestione della memoria  Consiste nel dividere lo spazio logico del processo in parti uguali detti pagine; la memoria fisica viene divisa in parti della stessa dimensione delle pagine e sono detti frame  Ogni pagina viene posta in un frame  Le pagine non occupano spazi adiacenti di memoria per cui, c’è bisogno di una tabella delle pagine

15 Memoria logica Pag. 0 Pag. 1 Pag. 2 Pag. 3 Pag.Frame 03 15 20 31 Mem fisica 2 3 0 1 0 1 2 3 4 5 Il numero di frame in cui può essere divisa una memoria è dato da dimensione memoria/dimensione pagina

16  Lo spazio logico di un processo viene diviso in un numero m di pagine di k byte ciascuna  Lo spazio fisico della memori viene diviso in n frame di k1 byte  La tabella delle pagine mette in relazione il numero di pagine con il numero di frame  Es nella gestione della memoria in DOS, si effettua la divisione in quattro segmenti: segmento codice, segmento dati, segmento stack e segmento extra  All’interno di un segmento si può accedere indicando lo scostamento, cioè la distanza dall’inizio  Ogni indirizzo logico è quindi individuato dal nome del segmento s dallo scostamento d

17

18  Un programma può essere suddiviso in procedure e funzioni  Lo spazio logico può essere diviso in segmenti ognuno dei quali contiene un modulo o una struttura dati diversi

19  Un processo per essere eseguito può risiedere in memoria centrale ma anche in memoria di massa  Quando i programmi sono molto ampi possono prevedere una parte del codice utilizzato raramente  Conviene allora non caricare tutto il codice in memoria ma solo in parte. Risulta più utile caricare solo il codice che serve  La memoria di massa e quella centrale sono viste come un’unica memoria detta virtuale e lo spazio degli indirizzi è detto spazio degli indirizzi virtuali

20  Tecnica che permette di caricare in memoria centrale solo le pagine necessarie e le altre le altre in memoria di massa  Il paginatore è un modulo del sistema operativo che carica le pagine utili nella memoria centrale

21


Scaricare ppt " Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale "

Presentazioni simili


Annunci Google