Gestion de memoria virtual

Clasificado en Informática

Escrito el en español con un tamaño de 4,82 KB

GESTION DE MEMORIA VIRTUAL

Administracion de memoria: es responsable del uso eficiente de la memoria principal en un ambiente de multiprogramacion donde los procesos compiten por el recurso memoria.

Tipos de espacio de direcciones:

  • direcciones reales: la memoria principal o RAM de la maquina.
  • logica o virtual: la memoria k percibe o conoce el proceso. cada proceso tiene su espacio de direccion logico o virtual.

La idea central es almacenar los datos mas frecuentemente accesados en niveles de almacenamiento de menor capacidad y los menos frecuentemente accesados en dispositivos menos caros pero de mayor capacidad.

Evolucion de los sistemas de Administracion de memoria.

  • particiones fijas
  • particiones variables
  • segmentacion
  • paginacion
  • paginacion por demanda

Asignacion de memoria en sistemas segmentados

Estrategias de Asignacion de Memoria:

  • First-Fit: se recorre secuencial% la lista hasta encontrar el primer segmento o particion k sea mayor o = al solicitado.
  • Best-Fit: Se recorre toda la lista hasta encontrar el segmento o particion que se acerque mas a lo solicitado.
  • Worst-Fit: Se recorre toda la lista hasta encontrar el segmento o particion mas grande.

 SWAPPING

El espacio swap es una porcion del disco que se deja reservada para ser usada por el administrador de memoria virtual del kernel(VMM)

Hacer swap significa cambiar todo el proceso desde la memoria al swap space y vice versa.



SEGMENTACION

 Es un esquema para implementar espacios de direcciones virtuales . Cada proceso tiene su propio espacio de direccion virtual, independiente del resto de los procesos.

Segmentos: cada uno es una region contigua dentro de la memoria real del computador, con su longitud, numero de segmento y proteccion.

El SO mantiene una tabla de segmentos la tabla es propia de cada programa. Se guardan las direcciones base y limite del segmento...tb tipo de acceso.

Desde el punto de vista del usuario y compiladores, un proceso esta natural% dividido en secciones: texto, data, stack, heap. Dando a c/u de estas secciones espacios de direccionamiento distintos, simplificamos la tarea del compilador y mantenemos la division natural.

Ventajas:

  • Extension automatica de la pila en caso de desborde.
  • Extension explicita de los datos, es decir, del segmento de datos del proceso usando primitiva sbrk(int).
  • Implementacion de fork().
  • Swapping de procesos.
  • Implementacion de procesos semi-livianos.

Desventajas:

  • La implementacion del fork es ineficiente, debido a k copia inmediata y completamente los segmentos.
  • La compactacion introduce una pausa generalizada que es dificil de distinguir de una caida del sistema.
  • El tamaño del proceso no debe exceder el tamaño de la memoria real, puesto k un proceso debe estar residente completamente en la memoria.

 

Entradas relacionadas: