Administración de memoria

El Administrador De Memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.

Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.

Las técnicas que existen para la carga de programas en la memoria son: partición fija, que es la división de la memoria libre en varias partes (de igual o distinto tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso.

Entre las principales operaciones que desarrolla la administración de memoria se encuentran la reubicación, que consiste en trasladar procesos activos dentro y fuera e la memoria principal para maximizar la utilización del procesador; la protección, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de códigos y datos, con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.

Características de la memoria real o física y de la memoria virtual

Memoria real o física:

  • Capacidad, que representa el volumen global de información (en bits) que la memoria puede almacenar.
  • Tiempo de acceso, que corresponde al intervalo de tiempo entre la solicitud de lectura/escritura y la disponibilidad de los datos.
  • Tiempo de ciclo, que representa el intervalo de tiempo mínimo entre dos accesos sucesivos.
  • Rendimiento, que define el volumen de información intercambiado por unidad de tiempo, expresado en bits por segundo.
  • No volatilidad, que caracteriza la capacidad de una memoria para almacenar datos cuando no recibe más electricidad.
  • Existen dos tipos de memorias RAM: SRAM Y DRAM.

Memoria virtual:

  • Es una combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador.
  • Este método es invisible a los procesos.
  • Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU.
  • La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los      fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este esquema.
  • La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo  programa se ejecute en cualquier posición de la memoria física.
  • La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones      mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria.

Ventajas y desventajas de la memoria virtual

Ventajas:

  • Permite optimizar uso de memoria
  • Mantiene más procesos en memoria principal
  • Mantiene en disco partes del proceso poco usadas (rutinas de atención a errores poco frecuentes, funciones de uso esporádico, datos no usados, …) .
  • Permite que un proceso sea más grande que toda la memoria principal
  • Se encarga el Sistema Operativo: evita al usuario la preocupación por programar con superposición.
  • Con respecto a la performance del sistema: Se cuenta con una memoria virtualmente más extensa con la misma memoria real. Se utiliza mucho más eficientemente la memoria real.
  • Con respecto al desarrollo de aplicaciones: Al eliminar las restricciones de memoria permite diseñar los sistemas más fácilmente, en menor tiempo y a menos costo. Hace más sencillo el mantenimiento y la ampliación de los programas. Hace más justificable el diseño e implementación de algunas aplicaciones, cuyos requerimientos de memora varíen bastante en su ejecución de acuerdo al volumen y complejidad de las transacciones. con respecto a la operación del computador: Permite que un equipo de una memoria real menor pueda ser usado sin dificultad como back-up en caso de necesidad. Hace innecesario efectuar ciertos procedimientos cuyo único propósito es un mejor aprovechamiento de la memoria real. Simplifica las actividades de planificación

Desventajas

  • Sobrecarga por gestión compleja de memoria
  • Costo asociado a la transformación de direcciones;
  • Memoria adicional que requiere para almacenar las tablas que debe mantener el sistema operativo (memoria real de la parte residente del sistema operativo)para indicar: la cantidad de memoria real implementada, las secciones que están presente en la memoria real y sus direcciones de ubicación, y elementos de juicio para determinar qué secciones se tratarán de dejar en memoria real y cuáles no, o que sección será desplazada cuando otra sección de memoria virtual deba ser llevada a memoria real; pequeño desperdicio de memoria que se produce en la última página de un programa (ya que rara vez el tamaño del programa es múltiplo del tamaño de las páginas); merma en el rendimiento del computador si es incorrectamente utilizada; posible incremento del tiempo de ejecución de cada programa como consecuencia de la paginación (operaciones de entrada/salida que demorarán la ejecución del programa).
  • La memoria virtual puede ser una herramienta poderosa para incrementar la performance del computador. Pero ello depende de ciertos factores, tales como:
  • Velocidad de los dispositivos que contendrán la memoria virtual: La actividad de paginación afecta adversamente a la performance del equipo cuando el procesador real está frecuentemente esperando que termine una operación de entrada/salida de paginación; por tanto se debe procurar que los requerimientos de operaciones de paginación estén por debajo de lo necesario para aprovechar convenientemente la multiprogramación. En caso contrario se incrementarán los tiempos ociosos del órgano de comando. Velocidad del procesador: Una relación desbalanceada entre la velocidad del procesador y la del dispositivo de paginación puede alterar el rendimiento. Tamaño de la memoria real y virtual: La cantidad de memoria real de la CPU (en relación con el tamaño de la memoria virtual) afectará el número de páginas faltantes que deberán ser traídas del dispositivo de paginación. Si el tamaño de la memoria real es igual al de la virtual que están usando los programas en ejecución no habrá páginas faltantes ya que todas estarán en memoria real. En cambio cuando la memoria real sea menor, la cantidad de páginas faltantes estará dada por la razón de la memoria virtual usada por la memoria real disponible. Estructura de los programas: La cantidad de memoria virtual que usa un programa no es un factor tan significativo en la performance del equipo como la forma en que la usa. Algunas formas para incrementar el rendimiento del equipo son:
  • Usar áreas de entrada/salida más largas: Reduce el tiempo en que las páginas del programa estarán en memoria real. Sin embargo un aumento muy significativo podría afectar negativamente el rendimiento en equipos con poca memoria real.
  • Aumentar la capacidad de manejo de páginas faltantes cuando la actividad de paginación causa frecuentes desactivaciones de programas: Esto puede ser realizado:
  • Usando un dispositivo de mayor velocidad; estableciendo más dispositivos de paginación; reduciendo o eliminado archivos del dispositivo de paginación; reduciendo la actividad del canal que corresponde al dispositivo de paginación; o aumentando un poco la memoria real.

En qué consiste la paginación

El término memoria virtual se asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas.

Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas en la memoria principal, se crea y carga en la memoria principal una tabla de páginas. Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal. Puesto que sólo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la página correspondiente está presente (P) en la memoria principal o no. Si el bit indica que la página está en la memoria, la entrada incluye también el número de marco para esa página.

Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargó en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.

La paginación permite que la memoria de un proceso no sea contigua, y que a un proceso se le asigne memoria física donde quiera que ésta esté disponible.

La paginación evita el gran problema de acomodar trozos de memoria de tamaño variable en el almacenamiento auxiliar.

Cuando es necesario intercambiar fragmento de códigos o datos que residen en la memoria principal, hay que encontrarles espacio en el almacenamiento auxiliar. Por sus ventajas la paginación es de uso común en muchos SO.

En qué consiste la segmentación

La segmentación es un esquema de administración de memoria que apoya la perspectiva que el usuario tiene de la memoria. Un espacio de direcciones lógicas se compone de un conjunto de segmentos, cada uno de los cuales tiene un nombre y una longitud. Las direcciones especifican el nombre del segmento y el desplazamiento dentro de él, de manera que el usuario especifica cada dirección con dos cantidades: el nombre del segmento y un desplazamiento.

Implicaciones de la memoria virtual

La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:

1. Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuán larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.

2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.

3. Se presta a la compartición entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.

4. Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrá asignar los permisos de acceso de la forma adecuada.

PROFESOR:

BRACAMONTES OROZCO RUBÉN ALFONSO

INTEGRANTES:

CERVANTES GARCÍA ABRAHAM FRANCISCO

JUÁREZ SANDOVAL ESTEFANÍA

OSUNA JESSICA HERMELINDA

PORTILLO MARES YADIRA MONSERRATE

Anuncios