Sie sind auf Seite 1von 9

REPBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN UNIVERSITARIA


UNIVERSIDAD DR. JOS GREGORIO HERNNDEZ
FACULTAD DE INGENIERA
CARRERA COMPUTACIN

ADMINISTRACIN DE MEMORIA

AUTOR:
Mrquez Yorelys
C.I.: 17085466
Ctedra: Lenguaje y Compilador
Grupo: 3
Prof. Zulma Revilla

Maracaibo, Abril de 2015

ADMINISTRACIN DE MEMORIA
La administracin de memoria se refiere a los distintos mtodos y operaciones
que se encargan de obtener su mxima utilidad, organizando los procesos y
programas que se ejecutan de manera tal que se aproveche de la mejor forma el
espacio disponible. Para poder lograrlo, la operacin principal que realiza es la de
trasladar la informacin que deber ser ejecutada por el procesador, a la memoria
principal. Actualmente esta administracin se conoce como Memoria Virtual ya que
no es la memoria fsica del procesador sino una memoria virtual que la representa.
Entre algunas ventajas, esta memoria permite que el sistema cuente con una
memoria ms extensa teniendo la misma memoria real, con lo que esta se puede
utilizar de manera ms eficiente. Y por supuesto, que los programas que son
utilizados no ocupen lugar innecesario.

Por tal motivo, el administrador de memoria tiene como objetivos, ubicar,


reemplazar, cargar y descargar procesos en la memoria principal, para as,
proteger la memoria de acceso indeseados, permitiendo la comparticin de zonas
de memoria (indispensable para lograr la cooperacin de procesos). Todos estos
procesos son flexibles y dependen del uso y propsito del ordenador por parte del
usuario para optimizar su rendimiento. Con frecuencia, la ejecucin de estas
operaciones brindar mayor espacio disponible para el almacenamiento de
informacin y proporcionar una mayor agilidad en la gestin de procesos de
diversa ndole y nivel.

Las tcnicas que existen para la carga de programas en la memoria son:


particin fija, que es la divisin de la memoria libre en varias partes (de igual o
distinto tamao) y la particin dinmica, que son las particiones de la memoria en
tamaos que pueden ser variables, segn la cantidad de memoria que necesita
cada proceso. Entre las principales operaciones que desarrolla la administracin
de memoria se encuentran la reubicacin, que consiste en trasladar procesos
activos dentro y fuera de la memoria principal para maximizar la utilizacin del
procesador; la proteccin, mecanismos que protegen los procesos que se ejecutan
de interferencias de otros procesos; uso compartido de cdigos y datos, con lo
que el mecanismo de proteccin permite que ciertos procesos de un mismo
programa que comparten una tarea tengan memoria en comn.

TCNICAS DE ADMINISTRACIN DE LA MEMORIA:


Segmentacin
La segmentacin es una forma de administrar la memoria que permite que el
usuario vea la memoria como una coleccin de segmentos, cada uno de los
cuales tiene un nombre y un tamao (que, adems, puede variar dinmicamente).
Las direcciones lgicas se especifican como un par (segmento, desplazamiento).

Implementacin
Su implementacin es similar a la paginacin, solo que en vez de tabla de
pginas, son tabla de segmentos; para cada segmento, hay que saber su tamao
y dnde comienza (base). Una direccin lgica (s,d), se traduce a base(s)+d. Si d
es mayor que el tamao del segmento, entonces ERROR.
Ventajas:

Al usuario se le simplifica el manejo de estructuras de datos de tamao


dinmico.

Se facilita el que los procesos compartan memoria.

Los segmentos pueden estar protegidos segn la semntica de su contenido.

Por ejemplo, un segmento que contiene cdigo, puede especificarse como


slo para ejecucin (y nadie puede copiarlo ni sobreescribirlo); un arreglo puede

especificarse como read/write but not execute. Esto facilita enormemente la


deteccin de errores en el cdigo. Libreras compartidas de enlace dinmico
(DLLs).
Pero la memoria sigue siendo, fsicamente, un slo arreglo de bytes, que debe
contener los segmentos de todos los procesos. A medida que se van creando y
eliminando procesos, se va a ir produciendo, inevitablemente fragmentacin
externa. Si consideramos cada proceso como un slo gran segmento, tenemos el
mismo caso que el de las particiones variables. Como cada proceso tiene varios
segmentos, puede que el problema de la particin externa se reduzca, pues ya no
necesitamos espacio contiguo para todo el proceso, sino que slo para cada
segmento. Para eliminar completamente el problema de la fragmentacin interna,
se puede usar una combinacin de segmentacin y paginacin, en la que los
segmentos se paginan.
Paginacin:
Tanto las particiones de tamao fijo como las de tamao variable hacen un uso
ineficiente de la memoria; las primeras generan fragmentacin interna, mientras
que las segundas originan fragmentacin externa. Supngase, no obstante, que la
memoria principal se encuentra particionada en trozos iguales de tamao fijo
relativamente pequeos y que cada proceso est dividido tambin en pequeos
trozos de tamao fijo y del mismo tamao que los de memoria. En tal caso, los
trozos del proceso, conocidos como pginas, pueden asignarse a los trozos libres
de memoria, conocidos como marcos o marcos de pgina. En este apartado se
ver que el espacio malgastado en memoria para cada proceso por fragmentacin
interna consta slo de una fraccin de la ltima pgina del proceso. Adems, no
hay fragmentacin externa.
Las pginas de un programa necesitan estar contiguamente en memoria, aunque
el programador lo observe de esta forma. Los mecanismos de paginacin permiten
la correspondencia correcta entre las direcciones virtuales (dadas por los
programas) y las direcciones reales de la memoria que se reverencien.
El espacio de direcciones de cada proceso se divide en bloques de tamao
uniforme llamados pginas, los cuales se pueden colocar dentro de cualquier para
pgina marco disponible en memoria. Cuando las tablas de pginas son muy
grandes se puede utilizar un esquema de paginacin de varios niveles para que
las pginas se paginen a s mismas.
MEMORIA ESTTICA Y DINMICA:

En la memoria principal el sistema operativo intercambia programas o procesos


enteros o particiones de memoria. En la memoria virtual el sistema operativo
maneja segmentos y paginas entre la memoria real y los dispositivos secundarios.
Particin fija: Se refiere al manejo de bloques de tamao fijo en la memoria
virtual y la conversin de estas pginas a memoria real. Para tal conversin, el
sistema operativo requiere de 2 elementos: nmero de pgina y desplazamiento
dela pgina. Un proceso puede ejecutarse si su pgina actual est en el
almacenamiento primario. Las pginas se transfieren del almacenamiento virtual al
primario en bloques llamados marcos de pginas que tienen el mismo tamao que
las pginas.
Particin variable: Se refiere al manejo de bloques de tamao variable en
memoria virtual y la conversin de estos segmentos a memoria real. Se utilizan
dos conceptos para tal conversin: nmero de segmento y desplazamiento dentro
del segmento.
El tamao de los segmentos y el tipo de informacin de ese segmento lo
determinan las polticas del sistema operativo, como por ejemplo:
a) Que un solo segmento lo ocupe una sola aplicacin.
b) Que el segmento vaya creciendo segn las necesidades del programa.
c) Que un segmento sea compartido por varios programas.
Esttica:
Es el espacio en memoria que se crea al declarar variables de cualquier tipo de
dato (primitivas [int, char...] o derivados [struct, matrices, punteros...]). La memoria
que estas variables ocupan no puede cambiarse durante la ejecucin y tampoco
puede ser liberada manualmente.
Las tcnicas de asignacin de memoria esttica son sencillas y puede hacerse
en tiempo de compilacin y los objetos estn vigentes desde que comienza la
ejecucin del programa hasta que termina. En los lenguajes que permiten la
existencia de subprogramas, y siempre que todos los objetos de estos
subprogramas puedan almacenarse estticamente se aloja en la memoria esttica
un registro de activacin correspondiente a cada uno de los subprogramas.
Estos registros de activacin contendrn las variables locales, parmetros
formales y valor devuelto por la funcin.
Consideraciones

Error en tiempo de ejecucin de ndice fuera del rango.

Se debe conocer con anticipacin el tamao de la estructura.

Se guardan en memorias adyacentes.

Vectores, matrices, cubos, registros, archivos.

Ventajas

La velocidad de acceso es alta.

Para retener los datos solo necesita estar energizada.

Lgica simple.

Son ms fciles de disear.

Desventajas:

No se puede modificar el tamao de la estructura en tiempo de ejecucin.

No es ptimo con grandes cantidades de datos.

Desperdicio de memoria cuando no se utiliza en su totalidad del


tamao v[100] .

Menor capacidad, debido a que cada celda de almacenamiento requiere


ms transistores.

Mayor costo por bit y consumo de Potencia.

Dinmica:
La memoria dinmica es un espacio de almacenamiento que se solicita en
tiempo de ejecucin. De esa manera, a medida que el proceso va necesitando
espacio para ms lneas, va solicitando ms memoria al sistema operativo para
guardarlas. El medio para manejar la memoria que otorga el sistema operativo, es
el puntero, puesto que no podemos saber en tiempo de compilacin dnde nos
dar huecos el sistema operativo (en la memoria de nuestro PC).
Ventajas:

Es posible disponer de un espacio de memoria arbitrario que dependa de


informacin dinmica (disponible slo en ejecucin): Toda esa memoria
que maneja es implementada por el programador cuando fuese necesario.

Otra ventaja de la memoria dinmica es que se puede ir incrementando


durante la ejecucin del programa. Esto permite, por ejemplo, trabajar con
arreglos dinmicos.

Es memoria que se reserva en tiempo de ejecucin. Su tamao puede


variar durante la ejecucin del programa y puede ser liberado mediante la
funcin free.

Desventajas:

Es difcil de implementar en el desarrollo de un programa o aplicacin y la


estructura de datos compleja como son los tipos recursivos (rboles,
grafos, etc.).

Una desventaja de la memoria dinmica es que es ms difcil de manejar.

La memoria dinmica puede afectar el rendimiento. Puesto que con la


memoria esttica el tamao de las variables se conoce en tiempo de
compilacin, esta informacin est incluida en el cdigo objeto generado.
Cuando se reserva memoria de manera dinmica,

Se tienen que llevar a cabo varias tareas, como buscar un bloque de


memoria libre y almacenar la posicin y tamao de la memoria asignada,
de manera que pueda ser liberada ms adelante. Todo esto representa
una carga adicional, aunque esto depende de la implementacin y hay
tcnicas para reducir su impacto.

ACCESO A NOMBRES NO LOCALES


Los accesos a Nombres no Locales, estn definidos por las reglas de alcance del
lenguaje, los cuales determinan que declaracin aplica a un nombre, examinando
el programa (el texto) y el en tiempo de ejecucin, de acuerdo con los
procedimientos activos. Ellos estn delimitados por marcas que sealan su inicio y
final.
La propiedad de cada bloques que definen el acceso a ellos, son independientes
uno del otro. La estructura de bloques se puede implementar con una pila y su
alcance lxico es global (esttico) y se implementa fcilmente, el paso de
procedimientos como parmetros, o el retorno de estos como resultado.

PROCESOS DE COMPILACIN Y EJECUCIN EN MEMORIA y que Que


tcnicas de Administracin es ms aplicable:
La tcnica para el Proceso de compilacin y ejecucin de memoria es la
siguiente:
1. Cuando un cdigo es ledo por un compilador este entra al anlisis lxico
donde se verifica dnde empieza y termina cada instruccin, esto se hace
tomando como referencia los espacios en blanco.
2. Una vez hecho esto el analizador sintctico llama de manera repetida al
analizador lxico para que este le envi cada lnea de cdigo para ser verificada si
est bien escrita en el lenguaje. Para realizar esta verificacin se realiza por medio
de un estructura llamada rbol gramatical. Ejemplo:

3. Despus entra en la etapa del analizador semntico, esta se encarga de la


construccin de las instrucciones del lenguaje, revisando que sean iguales a las
definidas.
4. Luego entramos al proceso de sntesis, donde se generas el cdigo
intermedio, este para ser utilizado en la memoria de forma temporal.
5. Ahora este cdigo generado pasa por el optimizador para ser ejecutado de
forma ms rpida.
4. En esta ltima etapa se genera un cdigo que sea entendible por la mquina
para ser ejecutado por la computadora.

Das könnte Ihnen auch gefallen