Está en la página 1de 12

UNIVERSIDAD NACIONALPEDRO RUIZ GALLO

FACULTAD DE INGENIERA CIVIL, SISTEMAS Y ARQUITECTURA

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

MEMORIA

Curso:
ARQUITECTURA DE COMPUTADORAS

Docente:
SANDOVAL JIMENEZ, Jos

Alumnos:
GUEVARA SALDAA, Eder
LACHIRA PEA, Arnold
SANCHEZ GOVEA, Giancarlo
URBINA GALLO, Jhonny
TELLO PAREDES, Angel

Ciclo:
2016 - II

LAMBAYEQUE, Febrero de 2017


MEMORIA ADMINISTRACIN
La gestin de memoria o administracin de memoria es el acto de gestionar
la memoria de un dispositivo informtico. El proceso de asignacin de memoria a los
programas que la solicitan.1 La gestin de la memoria principal de una computadora es
una tarea de suma importancia para el funcionamiento de la misma.

Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por
un proceso de las direcciones fsicas reales, permitiendo la separacin de procesos e
incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando
la paginacin. La calidad de la gestin de la memoria es crucial para las prestaciones
del sistema.

El recolector de basura es la asignacin y liberacin automtica de los recursos de


memoria para un programa. La implementacin suele ser a nivel del lenguaje de
programacin en contraposicin a la gestin manual de memoria, que asigna y libera
los recursos de memoria de una computadora de forma explcita.

La administracin de memoria se refiere a los distintos mtodos y operaciones que se


encargan de obtener la mxima 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 operacin principal que realiza es trasladar la informacin que
deber ser ejecutada por la unidad central de procesamiento o procesador, a
la memoria principal. Actualmente esta administracin se conoce como memoria
virtual, porque 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, por lo que esta se puede
utilizar de manera ms eficiente. Y por supuesto, que los programas que son utilizados
no ocupen lugar innecesario.

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.
Caractersticas

Los sistemas de gestin de memoria de sistemas operativos multitarea normalmente


tratan con las siguientes tareas.

Reasignacin

En los sistemas con memoria virtual, los programas durante su ejecucin pueden salir
por un tiempo de la memoria y luego regresar, de modo que no pueden colocarse en
el lugar que ocupaban previamente. Por ello debe ser posible que residan en diferentes
partes de la memoria en diferentes momentos. As, la gestin de memoria en el sistema
operativo debe ser capaz de trasladar los programas en memoria y manejar referencias
a la memoria y las direcciones en el cdigo del programa para que siempre apuntan a
la ubicacin correcta. La unidad de gestin de memoria virtual tambin debe hacer
frente a la concurrencia.

Proteccin

Los procesos no deberan poder referenciar la memoria de otros procesos sin permiso,
para evitarlo existe la proteccin de memoria, que evita que cdigo malicioso o
errneo de un programa interfiera con la operacin de otros programas en ejecucin.

Memoria compartida

Aunque la memoria utilizada por diferentes procesos suele estar protegida, algunos
procesos puede que s tengan que compartir informacin y, para ello, han de acceder la
misma seccin de memoria. La memoria compartida es una de las tcnicas ms rpidas
para posibilitar la comunicacin entre procesos.

Organizacin lgica

Los programas a menudo estn organizados en mdulos, algunos de los cuales pueden
ser compartidos por diferentes programas, algunos son de solo-lectura y otros
contienen datos que se pueden modificar. Se escriben y se compilan
independientemente. La gestin de memoria es responsable de manejar esta
organizacin lgica, que se contrapone al espacio de direcciones fsicas lineales. Una
forma de lograrlo es mediante la segmentacin de memoria.

Organizacin fsica

La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno


secundario de menor velocidad. La gestin de memoria del sistema operativo se ocupa
de trasladar la informacin entre estos dos niveles de memoria.
PAGINACIN DE MEMORIA
En sistemas operativos de computadoras, los sistemas
de paginacin de memoria dividen los programas en pequeas partes o pginas. Del
mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas
llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada por
un proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y
evita la externa.

En un momento cualquiera, la memoria se encuentra ocupada con pginas de


diferentes procesos, mientras que algunos marcos estn disponibles para su uso. El
sistema operativo mantiene una lista de estos ltimos marcos, y una tabla por cada
proceso, donde consta en qu marco se encuentra cada pgina del proceso. De esta
forma, las pginas de un proceso pueden no estar contiguamente ubicadas en
memoria, y pueden intercalarse con las pginas de otros procesos.

En la tabla de pginas de un proceso, se encuentra la ubicacin del marco que contiene


a cada una de sus pginas. Las direcciones lgicas ahora se forman como un nmero
de pgina y de un desplazamiento dentro de esa pgina (conocido comnmente
como offset). El nmero de pgina es usado como un ndice dentro de la tabla de
pginas, y una vez obtenida la direccin del marco de memoria, se utiliza el
desplazamiento para componer la direccin real o direccin fsica. Este proceso se
realiza en una parte del computador especficamente diseada para esta tarea, es decir,
es un proceso hardware y no software. De esta forma, cuando un proceso es cargado
en memoria, se cargan todas sus pginas en marcos libres y se completa su tabla de
pginas. Veamos un ejemplo:

Nmero de marco Programa.#pgina Direccin fsica

0 Programa A.0 1000:0000

1 Programa A.1 1000:1000

2 Programa A.2 1000:2000

3 Programa D.0 1000:3000

4 Programa D.1 1000:4000

5 Programa C.0 1000:5000

6 Programa C.1 1000:6000

7 Programa D.2 1000:7000


La tabla de la derecha muestra una posible configuracin de la memoria en un
momento dado, con pginas de 4Kb. La forma en que se lleg a este estado puede
haber sido la siguiente:

Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3


pginas.

- El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)


- El programa B se carga en memoria (se le asignan los marcos 3 y 4)
- El programa C se carga en memoria (se le asignan los marcos 5 y 6)
- El programa B termina, liberando sus pginas
- El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el
proceso B y el marco 7 que permaneca libre)

De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:

Ahora consideremos qu sucede cuando un programa quiere acceder a su memoria. Si


el programa A contiene una referencia a la memoria con direccin 20FE, se realizar el
siguiente procedimiento. 20FE es 0010000011111110 en notacin binaria (en un
sistema de 16 bit), y en el ejemplo se estn usando pginas de 4Kb de tamao. Cuando
la peticin de la direccin de memoria 20FE es realizada, la Unidad de Gestin de
memoria se ve de esta forma:

Al usar pginas de 4096 bytes, todas las ubicaciones dentro de una pgina pueden ser
representadas por 12 bits, en el sistema binario (212=4096), lo que deja 4 bits para
representar el nmero de pgina. Si las pginas hubieran sido de la mitad del tamao
(2048) se podran tener 5 bits para el nmero de pgina, lo que significa que a menor
tamao de pgina se pueden tener tablas con ms pginas.
Cuando el pedido de acceso a memoria es realizado, la MMU busca en la tabla de
pginas del proceso que realiz el pedido por la relacin en memoria fsica. En nuestro
ejemplo, la pgina nmero 2 del proceso A corresponde al marco nmero 2 en
memoria fsica, con direccin real 1000:2000, por lo tanto, la MMU devolver la
direccin del marco en memoria fsica, con el desplazamiento dentro de esa pgina:
1000:20FE.

SEGMENTACIN DE MEMORIA
La segmentacin es una tcnica de gestin de memoria que pretende acercarse ms al
punto de vista del usuario. Los programas se desarrollan, generalmente, en torno a un
ncleo central (principal) desde el que se bifurca a otras partes (rutinas) o se accede a
zonas de datos (tablas, pilas, etc.).

Desde este punto de vista, un programa es un conjunto de componentes lgicos de


tamao variable o un conjunto de segmentos, es decir, el espacio lgico de direcciones
se considera como un conjunto de segmentos, cada uno definido por un identificador,
y consistente de un punto de inicio y el tamao asignado.1

La segmentacin de un programa la realiza el compilador y en ella cada direccin


lgica se expresar mediante dos valores: Nmero de segmento (s) y desplazamiento
dentro del segmento (d).

Una de las implementaciones ms obvias y directas de un espacio de memoria


segmentado es asignar un segmento distinto a cada una de las secciones del espacio
en memoria de un proceso.

La segmentacin tambin ayuda a incrementar la modularidad de un programa: Es muy


comn que las bibliotecas enlazadas dinmicamente estn representadas en
segmentos independientes.

Hardware de segmentacin

Puesto que la memoria fsica se direcciona literalmente, ser necesario transformar


cada direccin lgica (s, d) en una direccin real (r). Esta conversin la realiza un
dispositivo especial de hardware, la unidad de gestin de memoria, consultando
la tabla de segmentos correspondiente.

Rendimiento

Esta tcnica permite reducir la fragmentacin interna de la memoria provocada por


la paginacin, ya que asigna a cada programa la cantidad de memoria que requiere.

La carga de un programa en memoria exige la bsqueda de los huecos adecuados a


sus segmentos, y puesto que stos son de tamao variable, se ajustarn el ms posible
a las necesidades, producindose huecos pequeos. En este caso se produce
fragmentacin externa. La eficiencia de la segmentacin requiere, de igual forma que la
paginacin, el uso de memorias cach para lograr unos tiempos de acceso adecuados.
De igual forma que en la paginacin, se pueden compartir segmentos entre varios
procesos.

Permisos

Una de las principales ventajas del uso de segmentacin es que nos permite pedir a
la unidad de gestin de memoria que cada uno de los segmentos tenga un
distinto juego de permisos2 para el proceso en cuestin: El sistema operativo puede
indicar, por ejemplo, que el segmento de texto (el cdigo del programa) sea de lectura
y ejecucin, mientras que la seccin de datos es de lectura y escritura. De este modo
podemos evitar que un error en la programacin resulte en que datos proporcionados
por el usuario o por el entorno modifiquen el cdigo que est siendo ejecutado.

Sin embargo, incluso bajo este esquema, dado que la pila de llamadas (stack) debe
mantenerse como escribible, es comn encontrar ataques que permiten modificar la
direccin de retorno de una subrutina.

Incluso, dado que el acceso de ejecucin est limitado a slo los segmentos cargados
del disco por el sistema operativo, el atacante no podr introducir cdigo ejecutable
tan fcilmente Tendra que cargarlo como un segmento adicional con los permisos
correspondientes.

Intercambio parcial

Un uso muy comn de la segmentacin, particularmente en los sistemas de los 1980s,


era el de permitir que slo ciertas regiones de un programa sean intercambiadas al
disco: Si un programa est compuesto por porciones de cdigo que nunca se
ejecutarn aproximadamente al mismo tiempo en sucesin, puede separar su texto (e
incluso los datos correspondientes) en diferentes segmentos.

A lo largo de la ejecucin del programa, algunos de sus segmentos pueden no


emplearse por largos periodos de tiempo. Estas pginas pueden ser enviadas al espacio
de intercambio (swap) ya sea a solicitud del proceso o por iniciativa del sistema
operativo.

PAGINACION SEGMENTADA
Esta consiste en tomar la memoria dividirla en pginas del mismo tamao y luego cada
pgina segmentarla dependiendo del uso que se le d a esta pgina, veamos un
ejemplo:

Como se ve en la grfica vemos la memoria dividida en pgina pero su pgina superior


se divide en segmentos para almacenar parte de algn procesos por ende se usa
una direccin de memoria que consta del nmero de pgina seguido del nmero de
segmento y a continuacin un desplazamiento dentro del segmento, bien sea para
ubicar una instruccin del proceso o algn valor que sea necesario para la ejecucin del
proceso.

SEGMENTACIN PAGINADA
Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca
brindar las ventajas enunciadas anteriormente.

Para la segmentacin se necesita que estn cargadas en memoria reas de tamaos


variables. Si se requiere cargar un segmento en memoria que antes estuvo en ella y fue
removido a memoria secundaria, se necesita encontrar una regin de la memoria lo
suficientemente grande para contenerlo, lo cual no es siempre factible. En cambio
recargar una pgina implica slo encontrar un marco de pgina disponible.

A nivel de paginacin, si quiere referenciar en forma cclica n pginas, estas debern ser
cargadas una a una, generndose varias interrupciones por fallas de pginas. Bajo
segmentacin, esta pgina podra conformar un slo segmento, ocurriendo una sola
interrupcin por falla de segmento. No obstante, si bajo segmentacin se desea
acceder un rea muy pequea dentro de un segmento muy grande, este deber
cargarse completamente en memoria, desperdicindose memoria. Bajo paginacin slo
se cargar la pgina que contiene los tems referenciados.

Puede hacerse una combinacin de segmentacin y paginacin para obtener las


ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, ste
puede dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de
pginas.

Las direcciones tienen tres componentes: (s, p, d), donde la primera indica el nmero
del segmento, la segunda el nmero de la pgina dentro del segmento y la tercera el
desplazamiento dentro de la pgina. Se debern usar varias tablas:

- SMT (tabla de mapas de segmentos): Una para cada proceso. En cada entrada de la
SMT se almacena la informacin descrita bajo segmentacin pura, pero en el campo de
direccin se indicara la direccin de la PMT (tabla de mapas de pginas) que describe a
las diferentes pginas de cada segmento.

- PMT (tabla de mapas de pginas): Una por segmento; cada entrada de la PMT
describe una pgina de un segmento, en la forma que se present la pgina pura.
- TBM (tabla de bloques de memoria): Para controlar asignacin de pginas por parte
del sistema operativo.

- JT (tabla de Jobs): Que contiene las direcciones de comienzo de cada una de las SMT
de los procesos que se ejecutan en memoria.

Ventajas y Desventajas de la segmentacin paginada

Ventajas de la segmentacin paginada:

- El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin


y la paginacin:
- Debido a que los espacios de memorias son segmentados, se garantiza la facilidad
de implantar la comparticin y enlace.
- Como los espacios de memoria son paginados, se simplifican las estrategias de
almacenamiento.
- Se elimina el problema de la fragmentacin externa y la necesidad de
compactacin.

Desventajas de la segmentacin paginada:

- Los tres componentes de la direccin y el proceso de formacin de direcciones


hacen que se incremente el costo de su implantacin. El costo es mayor que en el
caso de de segmentacin pura o paginacin pura.
- Se hace necesario mantener un nmero mayor de tablas en memoria, lo que
implica un mayor costo de almacenamiento.
- Sigue existiendo el problema de fragmentacin interna de todas -o casi todas- las
pginas finales de cada uno de los segmentos. Bajo paginacin pura se desperdicia
slo la ltima pgina asignada, mientras que bajo segmentacin paginada el
desperdicio puede ocurrir en todos los segmentos asignados.

MEMORIA VIRTUAL
Es la posibilidad de ejecutar un programa que no est totalmente en memoria. Tiene
sentido pues hay zonas del programa que puede que no sean referenciadas nunca:
condiciones de errores poco frecuentes
opciones poco usadas
variables sobredimensionadas
Ejecutar un programa que no est totalmente en memoria permite que:
Los programas puedan ser ms grandes que la memoria fsica instalada en la
maquina
Se pueda aumentar el grado de multiprogramacin
Sea necesaria menos e/s para intercambiar programas
La forma ms usual de implementarla es con paginacin bajo demanda. Puede
implementarse con segmentacin bajo demanda pero puede requerir hacer
compactaciones (IBM OS/2 hasta 1.3 lo haca).

PAGINACIN BAJO DEMANDA


Es un sistema paginado con intercambio en donde se intercambia pginas cuando no
son necesarias:

- El HARDWARE debe suministrar una tabla de pginas con un bit que indique la
presencia (o no) de la pgina en memoria de manera que:
Se referencia una pgina cuya entrada en la tabla de pginas tiene el bit de
presencia a 1: se accede normalmente
Se referencia una pgina cuya entrada en la tabla de pginas tiene el bit de
presencia a 0: se produce una excepcin

Si no se referencian pginas que no estn en memoria el proceso se ejecuta


normalmente. Cuando se produce la excepcin el control se transfiere a S.O.
El S.O. salva el estado de la CPU
Determina que la excepcin es un fallo de pagina
Asigna un marco libre, localiza la pgina en disco e inicia la transferencia
Cuando la transferencia se completa, el S.O. actualiza la tabla de pginas del
proceso
Cuando se reanuda el proceso, reintenta la instruccin que produjo el fallo de
pgina (pues no se lleg a ejecutar)
Hace falta tambin una zona de almacenamiento secundario donde almacenar las
pginas:
Hacerlo en un archivo es ms flexible, pero hay que sufrir las direcciones del
sistema de archivos
Hacerlo en una particin o en un disco dedicado es ms rpido, pero se pierde
flexibilidad

Se pueden ejecutar programas ms grandes que la memoria fsica a costa de una


merma en la velocidad. Dado que a menudo hay que traer paginas a memoria, surge el
problema de cuales reemplazar. Adems de los distintos algoritmos hay que considerar
si se hace reemplazo local o global. Otro aspecto a tener en cuenta son los criterios de
asignacin de marcos a los procesos.

Rendimiento de la paginacin bajo demanda

El servicio del fallo de pgina comprende las siguientes tareas

1. Servir excepcin del fallo de pagina


Trasferir el control al S.O.
Salvar estado del proceso
Determinar que la excepcin es un fallo de pagina
Localizar la pgina en el intercambio
Asignar marco libre

2. Transferencia de la pagina
Esperar en cola de dispositivo
Esperar tiempo de bsqueda y latencia
Transferir pgina al marco
Actualizar tabla de paginas

3. Reanudar proceso
Restablecer estado de proceso
Reanudar ejecucin
Rendimiento de la paginacin bajo demanda: ejemplo

Supongamos un sistema actual que opera a 2GHz, donde el tiempo de acceso a


memoria es del orden de 5 ns (valor tpico de una memoria DDR2), y donde el
dispositivo donde est el intercambio tiene un tiempo de bsqueda promedio de 9,5
ms y una velocidad de transferencia de 40Mb/segundo. En este caso podemos estimar
una cota superior de 10ms para servir el fallo de pgina (9,5 ms la bsqueda, 0,1 ms la
transferencia de una pgina de 4K y quedan 0,4 ms que son ms que suficientes para la
latencia y el resto de las tareas). Si la probabilidad de un fallo de pgina es de 10 6 (se
produce un fallo de pgina cada milln de referencias a memoria), el tiempo de acceso
efectivo a memoria pasara a ser t:a:e: = (1 10 6)x5ns + 10 610ms 5ns + 10ns = 15ns

SEGMENTACIN DE LA PAGINACIN BAJO


DEMANDA
Aumentar la memoria fsica del sistema hace disminuir la probabilidad de un
fallo de pagina
A medida que disminuye la probabilidad de un fallo de pgina disminuye el
tiempo de acceso efectivo y por tanto aumenta la velocidad aparente de
ejecucin
La memoria virtual permite ejecutar un proceso que no reside totalmente en
memoria a costa de una merma en la velocidad de ejecucin
Para que el funcionamiento de un sistema con memoria virtual sea optimo hay
que conseguir que el nmero de fallos de pgina sea mnimo

LINKOGRAFIA

http://tododemicroprocesadores.blogspot.pe/2012/08/gestion-de-memoria-
segmentacion-y.html

https://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_memoria

https://es.wikipedia.org/wiki/Paginaci%C3%B3n_de_memoria

http://eccisistemasoperativos.blogspot.pe/2012/11/corte-3-entrada-17-paginacion-y-
son.html

https://books.google.com.pe/books?id=wXzwFPaVku0C&pg=PA109&lpg=PA109&dq=
paginacion+segmentada&source=bl&ots=yBjixWu96p&sig=MRpoNRvS_1jCM9JcE9TlF
1nGoY0&hl=es&sa=X&ved=0ahUKEwjw8ui-
lf7RAhXKx1QKHZrdAlsQ6AEIOTAF#v=onepage&q=paginacion%20segmentada&f=fals
e

También podría gustarte