logo

Gestió de memòria al sistema operatiu (SO)

En aquest article, entendrem detalladament la gestió de la memòria.

Què entens per gestió de la memòria?

La memòria és la part important de l'ordinador que s'utilitza per emmagatzemar les dades. La seva gestió és fonamental per al sistema informàtic perquè la quantitat de memòria principal disponible en un sistema informàtic és molt limitada. En qualsevol moment, molts processos competeixen per això. A més, per augmentar el rendiment, s'executen diversos processos simultàniament. Per a això, hem de mantenir diversos processos a la memòria principal, per la qual cosa encara és més important gestionar-los de manera eficaç.

Gestió de la memòria

Paper de la gestió de la memòria

A continuació es mostren les funcions importants de la gestió de la memòria en un sistema informàtic:

  • El gestor de memòria s'utilitza per fer un seguiment de l'estat de les ubicacions de memòria, tant si està lliure com si està assignada. Aborda la memòria primària proporcionant abstraccions perquè el programari percebi que s'hi assigna una gran memòria.
  • El gestor de memòria permet als ordinadors amb una petita quantitat de memòria principal executar programes més grans que la mida o la quantitat de memòria disponible. Ho fa movent la informació d'anada i tornada entre la memòria primària i la memòria secundària utilitzant el concepte d'intercanvi.
  • El gestor de memòria és l'encarregat de protegir la memòria assignada a cada procés perquè no es corrompi per un altre procés. Si això no està garantit, el sistema pot mostrar un comportament impredictible.
  • Els gestors de memòria haurien de permetre compartir l'espai de memòria entre processos. Així, dos programes poden residir a la mateixa ubicació de memòria encara que en moments diferents.

Tècniques de gestió de la memòria:

Les tècniques de gestió de la memòria es poden classificar en les següents categories principals:

  • Esquemes de gestió de memòria contigua
  • Esquemes de gestió de memòria no contigua
Gestió de la memòria

Esquemes de gestió de memòria contigua:

En un esquema de gestió de memòria contigua, cada programa ocupa un únic bloc contigu d'ubicacions d'emmagatzematge, és a dir, un conjunt d'ubicacions de memòria amb adreces consecutives.

java priorityqueue

Esquemes de gestió de memòria contigua única:

L'esquema de gestió de memòria contigua única és l'esquema de gestió de memòria més senzill utilitzat en la primera generació de sistemes informàtics. En aquest esquema, la memòria principal es divideix en dues àrees o particions contigües. Els sistemes operatius resideixen permanentment en una partició, generalment a la memòria inferior, i el procés de l'usuari es carrega a l'altra partició.

Avantatges dels esquemes de gestió de memòria contigua única:

  • Fàcil d'implementar.
  • Fàcil de gestionar i dissenyar.
  • En un esquema de gestió de memòria contigua única, un cop carregat un procés, se li dóna el temps complet del processador i cap altre processador l'interromprà.

Desavantatges dels esquemes de gestió de memòria contigua única:

  • Malbaratament d'espai de memòria a causa de la memòria no utilitzada, ja que és poc probable que el procés utilitzi tot l'espai de memòria disponible.
  • La CPU roman inactiva, esperant que el disc carregui la imatge binària a la memòria principal.
  • No es pot executar si el programa és massa gran per adaptar-se a tot l'espai de memòria principal disponible.
  • No admet multiprogramació, és a dir, no pot gestionar diversos programes simultàniament.

Particions múltiples:

L'esquema únic de gestió de memòria contigua és ineficient, ja que limita els ordinadors a executar només un programa alhora, provocant un malbaratament d'espai de memòria i temps de CPU. El problema de l'ús ineficient de la CPU es pot superar mitjançant la multiprogramació que permet que més d'un programa s'executi simultàniament. Per canviar entre dos processos, els sistemes operatius han de carregar tots dos processos a la memòria principal. El sistema operatiu ha de dividir la memòria principal disponible en diverses parts per carregar diversos processos a la memòria principal. Així, diversos processos poden residir a la memòria principal simultàniament.

Els múltiples esquemes de particions poden ser de dos tipus:

  • Particionament fix
  • Particionament dinàmic

Particionament fix

La memòria principal es divideix en diverses particions de mida fixa en un esquema de gestió de memòria de partició fixa o particions estàtiques. Aquestes particions poden ser de la mateixa mida o de diferents mides. Cada partició pot contenir un sol procés. El nombre de particions determina el grau de multiprogramació, és a dir, el nombre màxim de processos a la memòria. Aquestes particions es fan en el moment de la generació del sistema i es mantenen fixades després.

Avantatges dels esquemes de gestió de memòria de particions fixes:

  • Fàcil d'implementar.
  • Fàcil de gestionar i dissenyar.

Desavantatges dels esquemes de gestió de memòria de particions fixes:

  • Aquest esquema pateix una fragmentació interna.
  • El nombre de particions s'especifica en el moment de la generació del sistema.

Particionament dinàmic

La partició dinàmica es va dissenyar per superar els problemes d'un esquema de partició fix. En un esquema de particions dinàmiques, cada procés ocupa només la quantitat de memòria que necessita quan es carrega per al processament. Els processos sol·licitats s'assignen memòria fins que s'esgota tota la memòria física o l'espai restant és insuficient per contenir el procés sol·licitant. En aquest esquema, les particions utilitzades són de mida variable i el nombre de particions no està definit en el moment de la generació del sistema.

Avantatges dels esquemes de gestió de memòria de partició dinàmica:

  • Fàcil d'implementar.
  • Fàcil de gestionar i dissenyar.

Desavantatges dels esquemes de gestió de memòria de partició dinàmica:

  • Aquest esquema també pateix una fragmentació interna.
  • El nombre de particions s'especifica en el moment de la segmentació del sistema.

Esquemes de gestió de memòria no contigua:

En un esquema de gestió de memòria no contigua, el programa es divideix en diferents blocs i es carrega en diferents parts de la memòria que no necessàriament han d'estar adjacents entre si. Aquest esquema es pot classificar segons la mida dels blocs i si els blocs resideixen a la memòria principal o no.

Què és la paginació?

La paginació és una tècnica que elimina els requisits d'assignació contigua de la memòria principal. En això, la memòria principal es divideix en blocs de mida fixa de memòria física anomenats fotogrames. La mida d'un marc s'ha de mantenir igual que la d'una pàgina per maximitzar la memòria principal i evitar la fragmentació externa.

Avantatges de la paginació:

  • Les pàgines redueixen la fragmentació externa.
  • Fàcil d'implementar.
  • Memòria eficient.
  • A causa de la mida igual dels fotogrames, l'intercanvi es fa molt fàcil.
  • S'utilitza per a un accés més ràpid a les dades.

Què és la segmentació?

La segmentació és una tècnica que elimina els requisits d'assignació contigua de la memòria principal. En això, la memòria principal es divideix en blocs de mida variable de memòria física anomenats segments. Es basa en la manera com segueix el programador per estructurar els seus programes. Amb l'assignació de memòria segmentada, cada treball es divideix en diversos segments de diferents mides, un per a cada mòdul. Funcions, subrutines, pila, matriu, etc., són exemples d'aquests mòduls.