ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Administracion De Memorias


Enviado por   •  16 de Octubre de 2012  •  1.324 Palabras (6 Páginas)  •  391 Visitas

Página 1 de 6

Administración de Memorias

La memoria puede representarse como una extensa tabla de palabras que se referencian mediante una dirección de carácter único. Es prácticamente como un almacén de datos que comparte el CPU y los dispositivos E/S y en donde podemos tener rápidos accesos, sin embargo, es volátil y pierde información al momento de fallar el sistema.

El sistema operativo tiene diversas funciones y entre ellas están:

• Saber que partes de la memoria están siendo utilizadas y por quien.

• Decidir cual de todos los procesos será cargado en memoria una vez y haya espacio disponible.

• Asignar y retirar memoria según se necesite.

La memoria, de igual manera cuenta con niveles, y se conocen como “jerarquía de memoria” y su objetivo es el de obtener un mejor rendimiento de memoria, gran velocidad y con bajo costo, basados en el principio “cercanía de direcciones”. La jerarquía de memoria se presenta de la siguiente manera:

• Registros

• Memoria Caché

• Memoria principal

• Disco Duro

• Memorias de masas o auxiliares

Una dirección de memoria identifica la localización de memoria con la cual un programa o dispositivo puede trabajar y almacenar información para su próximo uso.

La memoria cache contiene las direcciones a las que se accede con más frecuencia, cuando usamos caches, se le denomina “tiempo efectivo de acceso (TAE al tiempo medio de acceso a una de las celdas de memoria”.

La memoria física podría representarse común conjunto de celdas que se pueden direccionar, para la ejecución de un programa este debe estar cargado en la memoria, cuando se trata de sistemas multiprocesos, la memoria deberá repartirse entre los diferentes procesos.

Se dará el caso en que la memoria principal no cuente con el suficiente espacio para ejecutar todos los procesos requeridos y es cuando acudimos al uso de la memoria virtual (simulación de memoria auxiliar en donde pueden ejecutarse procesos que son mucha carga para la memoria principal).

Cuando el sistema operativo asigna memoria a los procesos, se garantiza protección (un proceso no entra en la memoria de otro), compartición de datos entre procesos y reubicación (en sistemas multiprogramados para que lo programa logren ejecutarse en diferentes zonas de memoria).

Existen 2 niveles de gestión de memoria:

• Gestor de memoria del SO (asigna memoria).

• Gestor de memoria del proceso (gestiona las partes de memoria).

Los objetivos de la gestión de memoria es para expandir la posibilidad de ejecutar varios procesos a la vez sin ponerlos en conflicto y aprovechando todo el espacio que se encuentre disponible.

Los compiladores y ensambladores contienen direcciones reubicables y referencias externas en sus salidas, los enlazadores resuelven las referencias externas de subrutinas externas y los cargadores ligan direcciones (correspondencia entre datos del programa con los datos de la memoria) es tanto reubicables como absolutas.

Debido a que los procesos sufren intercambios, estos se mueven por entre las memorias mientras se esté ejecutando, puede descargarse en disco y volver a la memoria principal pero en una ubicación distinta (reubicación). Existen 2 tipos de reubicación:

• Estática: se lleva a cabo durante la carga el programa y no se mueve después de esta acción (direccionamiento indirecto).

• Dinámica: se lleva a cabo durante la ejecución del programa y se reproduce según las referencias a memoria, pudiendo ser desplazado el programa en cualquier momento.

Debido a que el sistema operativo debe conocer la ubicación de los datos de control de proceso de ejecución, la asignación de memoria en cada segmento recae en los hombros del sistema operativo y va por etapas que representan el ciclo de vida de un programa:

•Compilación: Se genera código absoluto al saber en que lugar específicamente residirá el programa.

•Carga: Se genera código reubicable en caso de no saber en que parte de la memoria residirá el proceso.

•Ejecución: Se genera cuando la ejecución de procesos cambia de segmento.

Para lograr ejecutar la gestión de memoria con éxito, es crucial aplicar el espacio de direcciones lógicas con el espacio de direcciones físicas:

• Dirección Lógica (la genera el proceso).

• Dirección física (la percibe la unidad de memoria).

Contamos con una unidad de gestión de memoria, hablamos del Memory Management Unit (MMU), que es un hardware que traduce las direcciones lógicas en físicas, implementando protección.

Algunos programas no necesitan cargarse por completo en memoria, sino que se divide por faces (recubrimientos), cada una de estas partes se carga en memoria y borra el anterior que se encontraba cargado, esta acción es responsabilidad del programa de usuario.

Habrá veces en las que un programa se bloquee en la espera de un evento o por haber perdido la CPU y se necesite liberar el espacio de memoria (liberar la imagen) y ubicarse en la memoria secundaria (swap in), y una vez se reanude el proceso la imagen de nuestro proceso que se encuentra en disco es recuperada (swap in).

¿Qué pasa con la memoria cuando tenemos un sistema multitarea? La respuesta es “compartición de memoria”. Consiste en permitir el acceso controlado de varios procesos (cooperantes) a la misma copia del programa (en el cual se esta trabajando) en lugar de que cada uno de ellos tenga el propio ahorrando espacio.

Para lograr la compartición de memoria es necesario que los programas se dividan en módulos que se compilen de manera independiente, se otorguen grados de protección (solo lectura o ejecución), convirtiéndose la compartición de módulos entre programas con un ideal.

La memoria tiene su propia forma de organizarse, formando una jerarquía de niveles, ya que esto previene la insuficiencia de espacio durante la ejecución de procesos y libera al cargador la carga de enfrentarse a este problema.

Las divisiones de la memoria son:

• Registros.

• Cache.

• Memoria Principal.

• Cache de Disco.

• Discos magnéticos.

• Cintas magnéticas, discos ópticos.

De igual manera, la memoria se divide en particiones, ocupando el sistema operativo una parte de ella y el resto se reparte entre los procesos de forma:

• Estática (numero igual de particiones, que son del mismo tamaño).

• Dinámica (numero “n” de particiones de tamaño variable).

Como en todo proceso, es necesario aplicar protección reubicando los procesos, para ello, necesitamos contar con dos tipos de registros: la base y el límite. Para obtener la dirección física durante la reubicación necesitamos la dirección lógica mas el registro base, la función de la protección es comprobar si la dirección cae en el rango de base y limite. Definiendo de manera más concreta cada una de los tipos de direcciones:

• Direcciones Físicas: Dirección real a la memoria principal.

• Direcciones Lógicas: Referencia de una posición de memoria independiente a la asignación actual de datos de memoria.

• Dirección Relativa: Recae en los tipos de direcciones lógicas, se diferencia por ser una posición relativa un punto conocido.

Hay diferentes métodos para la administración de la memoria, entre los más utilizados encontramos:

• Paginación: Consiste en dividir los procesos en páginas del mismo tamaño y ubicarlos en marcos de memoria, igual del mismo tamaño.

• Segmentación: Resulta ser una esquematización de particiones de memoria, pueden ser de diferente tamaño.

• Fragmentación: Representa todo aquel espacio desperdiciado que quedo al hacer intercambio entre procesos, estos huecos (no contiguos) de memoria no pueden soportar ningún proceso en espera.

1. Externa: Se tiene el espacio requerido de memoria, pero no es contigua.

2. Interna: Se tiene un poco más de la memoria requerida, pero es interna a la partición y no se utiliza.

• Memoria virtual: Es la simulación de una memoria auxiliar (reside en disco), habrá procesos más grandes que la memoria principal pueda soportar y requiera un espacio más grande para ejecutarse.

Conclusión

Años atrás, se pensaba que un programa no podría superar cierto limite en cuanto a su peso, sin embargo, con el desarrollo de las tecnologías, estos se han vuelto mas complicados y por consiguiente, pesados. En la actualidad, se ha optado por implementar técnicas que faciliten y mejoren el trabajo que desempeña la memoria, ya sea dividiéndola en jerarquías o aplicando métodos de asignación de memorias. En estos métodos, los procesos pueden ser divididos en partes para que sea más sencilla la carga de estas piezas a memoria y su ejecución sea pronta y precisa. El administrar la memoria tiene como objetivo principal es obtener su máxima utilidad, organiza procesos y programas de tal forma que el espacio disponible en ella sea aprovechado de la manera más eficiente posible.

...

Descargar como  txt (8.8 Kb)  
Leer 5 páginas más »
txt