Gestione della memoria nel sistema operativo: contigua, swappingFrammentazione
โก Riepilogo intelligente
La gestione della memoria รจ il processo del sistema operativo che controlla e coordina la memoria del computer, assegnando blocchi ai programmi in esecuzione per ottimizzare le prestazioni. tracControlla ogni posizione di memoria, sposta i processi tra la memoria principale e il disco e protegge i processi l'uno dall'altro.

Cos'รจ la gestione della memoria?
Gestione della memoria รจ il processo di controllo e coordinamento della memoria del computer, assegnando porzioni note come blocchi a vari programmi in esecuzione per ottimizzare le prestazioni complessive del sistema.
ร la funzione piรน importante di un sistema operativo che gestisce la memoria primaria. Aiuta i processi a spostarsi avanti e indietro tra la memoria principale e il disco di esecuzione. Aiuta il sistema operativo a mantenere track di ogni posizione di memoria, indipendentemente dal fatto che sia allocata a qualche processo o rimanga libera.
Perchรฉ utilizzare la gestione della memoria?
Ecco i motivi per cui รจ utile utilizzare la gestione della memoria:
- Ti consente di verificare quanta memoria deve essere allocata ai processi che decidono quale processore dovrebbe ottenere memoria e in quale momento.
- Tracks ogni volta che l'inventario viene liberato o non allocato e aggiorna lo stato di conseguenza.
- Assegna lo spazio alle routine applicative.
- Inoltre, garantisce che queste applicazioni non interferiscano tra loro.
- Contribuisce a proteggere i diversi processi l'uno dall'altro.
- Mette i programmi in memoria in modo che la memoria venga utilizzata al massimo.
Tecniche di gestione della memoria
Ecco alcune delle tecniche di gestione della memoria piรน importanti:
Unica allocazione contigua
ร la tecnica di gestione della memoria piรน semplice. Con questo metodo, tutta la memoria del computer, ad eccezione di una piccola porzione riservata al sistema operativo, รจ disponibile per una singola applicazione. Ad esempio, il sistema operativo MS-DOS alloca la memoria in questo modo. Anche un sistema embedded funziona con una sola applicazione.
Allocazione partizionata
Questo metodo suddivide la memoria primaria in diverse partizioni, che sono per lo piรน aree di memoria contigue. Ogni partizione memorizza tutte le informazioni relative a un'attivitร o a un processo specifico. Il procedimento consiste nell'assegnare una partizione a un processo all'inizio della sua esecuzione e nel deallocarla al termine.
Gestione della memoria paginata
Questo metodo divide la memoria principale del computer in unitร di dimensione fissa note come frame di pagina. Questa unitร di gestione della memoria hardware mappa le pagine in frame che dovrebbero essere allocati in base alla pagina.
Gestione della memoria segmentata
La memoria segmentata รจ l'unico metodo di gestione della memoria che non fornisce al programma dell'utente uno spazio di indirizzi lineare e contiguo.
I segmenti necessitano di supporto hardware sotto forma di tabella di segmenti. Contiene l'indirizzo fisico della sezione in memoria, dimensione e altri dati come bit e stato di protezione dell'accesso.
Cos'รจ uno scambio?ping?
scambiareping ร un metodo in cui un processo viene temporaneamente trasferito dalla memoria principale alla memoria di supporto. Successivamente, verrร riportato in memoria per continuare l'esecuzione.
Il supporto di memorizzazione รจ un disco rigido o un altro dispositivo di archiviazione secondario sufficientemente capiente da contenere copie di tutte le immagini di memoria per tutti gli utenti. Deve inoltre essere in grado di offrire accesso diretto a queste immagini di memoria.
Vantaggi dello scambioping
Ecco i principali vantaggi/benefici dello scambioping:
- Offre un grado piรน elevato di multiprogrammazione.
- Consente la riallocazione dinamica. Ad esempio, se si utilizza il binding degli indirizzi in fase di esecuzione, i processi possono essere scambiati in posizioni diverse. Altrimenti, nel caso di binding in fase di compilazione e di caricamento, i processi devono essere spostati nella stessa posizione.
- Aiuta a ottenere un migliore utilizzo della memoria.
- Minimo spreco di tempo CPU durante il completamento, quindi puรฒ essere facilmente applicato a un metodo di pianificazione basato sulle prioritร per migliorarne le prestazioni.
Cos'รจ l'allocazione della memoria?
L'allocazione della memoria รจ un processo mediante il quale ai programmi del computer viene assegnata memoria o spazio.
Qui, la memoria principale รจ divisa in due tipi di partizioni:
- Poca memoria - L' Operasistema di ting risiede in questo tipo di memoria.
- Memoria alta โ I processi utente vengono mantenuti nella memoria principale.
Allocazione delle partizioni
La memoria รจ divisa in diversi blocchi o partizioni. Ogni processo viene assegnato in base ai requisiti. L'allocazione delle partizioni รจ un metodo ideale per evitare la frammentazione interna.
Di seguito sono riportati i vari schemi di allocazione delle partizioni:
- Prima prova: In questo tipo di allocazione, viene assegnata la partizione che corrisponde al primo blocco sufficiente a partire dall'inizio della memoria principale.
- migliore vestibilitร : Assegna il processo alla partizione che รจ la piรน piccola partizione sufficiente tra le partizioni libere.
- Peggiore adattamento: Assegna il processo alla partizione che รจ la piรน grande partizione sufficientemente libera disponibile nella memoria principale.
- Adattamento successivo: ร per lo piรน simile al First Fit, ma questo Fit cerca la prima partizione sufficiente a partire dall'ultimo punto di allocazione.
Cos'รจ il cercapersone?
La paginazione รจ un meccanismo di archiviazione che consente al sistema operativo di recuperare i processi dalla memoria secondaria e caricarli nella memoria principale sotto forma di pagine. Nel metodo di paginazione, la memoria principale viene suddivisa in piccoli blocchi di memoria fisica di dimensioni fisse, chiamati frame. La dimensione di un frame deve essere uguale a quella di una pagina per massimizzare l'utilizzo della memoria principale ed evitare la frammentazione esterna. Paging viene utilizzato per un accesso piรน rapido ai dati ed รจ un concetto logico.
Cos'รจ la frammentazione?
I processi vengono memorizzati e rimossi dalla memoria, creando spazi di memoria liberi troppo piccoli per essere utilizzati da altri processi.
Dopo un certo periodo di tempo, a causa delle dimensioni ridotte di questi processi, non รจ piรน possibile allocarli in blocchi di memoria, che rimangono quindi inutilizzati. Questo fenomeno รจ chiamato frammentazione. Questo tipo di problema si verifica nei sistemi di allocazione dinamica della memoria quando i blocchi liberi sono troppo piccoli per soddisfare qualsiasi richiesta.
Due tipi di metodi di frammentazione sono:
- Frammentazione esterna
- Frammentazione interna
- La frammentazione esterna puรฒ essere ridotta riorganizzando il contenuto della memoria per posizionare tutta la memoria libera insieme in un unico blocco.
- La frammentazione interna puรฒ essere ridotta assegnando la partizione piรน piccola, che sia comunque sufficiente a gestire l'intero processo.
Che cos'รจ la segmentazione?
Il metodo di segmentazione funziona in modo quasi identico alla paginazione. L'unica differenza tra i due รจ che i segmenti hanno lunghezza variabile, mentre nel metodo di paginazione le pagine hanno sempre una dimensione fissa.
Un segmento di programma include la funzione principale del programma, le strutture dati, le funzioni di utilitร , ecc. Il sistema operativo mantiene una tabella della mappa dei segmenti per tutti i processi. Include anche un elenco di blocchi di memoria liberi insieme alla loro dimensione, numeri di segmento e posizioni di memoria nella memoria principale o la memoria virtuale.
Cos'รจ il caricamento dinamico?
Il caricamento dinamico รจ una routine di un programma che non viene caricata finchรฉ il programma stesso non la richiama. Tutte le routine devono essere contenute su un disco in un formato di caricamento rilocabile. Il programma principale verrร caricato in memoria ed eseguito. Il caricamento dinamico offre inoltre un migliore utilizzo dello spazio di memoria.
Cos'รจ il collegamento dinamico?
Il collegamento รจ un metodo che consente al sistema operativo di raccogliere e unire diversi moduli di codice e dati in un unico file eseguibile. Il file puรฒ quindi essere caricato in memoria ed eseguito. Il sistema operativo puรฒ collegare librerie a livello di sistema in un programma, combinandole al momento del caricamento. Nel metodo di collegamento dinamico, le librerie vengono collegate in fase di esecuzione, consentendo cosรฌ di mantenere ridotte le dimensioni del codice del programma.
Differenza tra carico statico e dinamico
| Caricamento statico | Caricamento dinamico |
|---|---|
| Il caricamento statico viene utilizzato quando si desidera caricare il programma in modo statico. In questo modo, al momento della compilazione, l'intero programma verrร collegato e compilato senza la necessitร di moduli esterni o dipendenze da altri programmi. | In un programma caricato dinamicamente, i riferimenti vengono forniti e il caricamento avviene al momento dell'esecuzione. |
| Al momento del caricamento, l'intero programma viene caricato in memoria e inizia la sua esecuzione. | Le routine della libreria vengono caricate in memoria solo quando sono richieste nel programma. |
Differenza tra collegamento statico e dinamico
Ecco le principali differenze tra collegamento statico e collegamento dinamico:
| Collegamento statico | Collegamento dinamico |
|---|---|
| Il collegamento statico viene utilizzato per combinare tutti i moduli necessari a un programma in un unico codice eseguibile. Questo aiuta il sistema operativo a prevenire dipendenze in fase di esecuzione. | Quando si utilizza il collegamento dinamico, non รจ necessario collegare il modulo o la libreria effettivi al programma. Si utilizza invece un riferimento al modulo dinamico fornito in fase di compilazione e collegamento. |

