Conceptos básicos de gestión de memoria

GESTIÓN DE MEMORIA.

Este punto corresponde al aptdo. 3 del tema Funciones de un Sistema Operativo de ISO

 

  • Conceptos básicos.

La parte del sistema operativo que administra la memoria se le conoce como “administrador de memoria” entre otras tiene las siguientes funciones:

  • llevar un registro de las zonas de memoria libres y de las que se están utilizando
  • reservar espacio en memoria para nuevos procesos.
  • Liberar espacio en memoria de los procesos terminados.
  • Gestionar el intercambio de datos entre memoria y disco.

 

  • Memoria virtual.

La memoria principal de un pc es limitada y en muchos casos insuficiente. Al principio los programadores debían diseñar los programas para que se fueran ejecutando en trozos o capas, de forma que estos cupieran en la memoria RAM.

Con el tiempo, los sistemas operativos realizaron esto de forma transparente (sin necesidad de intervención del programador).

De esta forma solo el diseñador del sistema operativo es el encargado de realizar la carga y descarga de estas capas en memoria.

La memoria virtual es una técnica que consiste en considerar el espacio libre en disco como si se tratase de memoria RAM, es decir, se carga en la RAM  la parte del programa que se está ejecutando y el resto permanece temporalmente en el disco duro hasta que sea necesario. Con esto se consigue tener más memoria RAM libre para ejecutar otros procesos. Cada sistema operativo gestiona la memoria virtual de distinta forma.

 

– SWAPPING: es una técnica similar a la de la memoria virtual.

Consiste en reservar una partición del disco donde tenemos el sistema operativo y las aplicaciones para realizar los intercambios con la memoria principal. Estos intercambios se realizan con las técnicas:

  • swap-in  pasa de la zona de swapp a la memoria RAM.
  • Swap- out  pasa de la RAM a la zona de swap.

Esta técnica es muy usada por sistemas UNIX y LINUX.

La principal diferencia entre la técnica de memoria virtual y la de swapping. Es que en la primera puede llegar a ocurrir que el disco este tan lleno que sea casi imposible realizar los intercambios, sin embargo en el swapping esto no ocurrirá nunca al encontrarse en un dispositivo o partición independiente.

 

  • Técnicas de gestión de memoria.
    • Paginación.

Es una técnica que consiste en dividir la memoria interna o RAM en zonas iguales denominadas marcos o frames, y los programas en partes del mismo tamaño denominadas páginas.

Para ubicar un programa en memoria el sistema operativo busca los frames libres, que no tienen que están necesariamente contiguos.

 

  • Segmentación.

Es una técnica similar a la paginación que permite definir bloques de memoria de tamaño variable denominados segmentos.

La paginación difiere de la segmentación en que las páginas son de tamaño fijo y los segmentos de tamaño variable.

El uso de uno y de otra técnica dependerá del sistema operativo, de la maquina en el que la usemos y de las necesidades del software.

 

  • Técnicas mixtas.

Veremos una mezcla de las 2 anteriores en concreto de la llamada segmentación paginada.

Aprovecha las ventajas de la segmentación y la paginación, concretamente con esta técnica se elimina el problema de la fragmentación y los intercambios son más sencillos, aunque por otra parte se necesita más tiempo de cálculo para localizar las direcciones de memoria.

(Explicados en la libreta PAGINACIÓN, SEGMENTACIÓN)

  • Programas reubicables.

Los programas o procesos reubicables son aquellos que una vez cargados en RAM para ejecutarse pueden variar de situación dependiendo de que  la zona de memoria RAM que utiliza sea necesaria para ejecutarse otro proceso.

Los reentrantes son aquellos programas o procesos que si no se están ejecutando dejan la memoria libre para otros procesos almacenándose temporalmente en el disco duro.

Los procesos del programa o procesos residentes son aquellos que una vez cargados en memoria RAM permanecerán en ella hasta que apaguemos el PC y normalmente no cambian su ubicación en ningún momento.

Normalmente son programas de análisis del sistema de monitorización, antivirus (centinelas).

Los programas o procesos reutilizables son aquellos que normalmente son utilizados por varios usuarios a la vez pero que se ubican en una sola zona de memoria.

 

  • Protección de memoria.

Es la labor que realiza el sistema operativo para que en ningún momento un proceso pueda interferir en la zona de memoria de otro proceso. Esta protección se realiza por hardware (utilizando registro frontera y dirección límite) o bien por software más lento que el anterior.