martes, 26 de mayo de 2015

Geston de memoria

Adjunto URL con la presentación de gestion de memoria

https://drive.google.com/file/d/0B71htTOSvDMeN0FYVVh0Z2lZVVE/view?usp=sharing

viernes, 22 de mayo de 2015

Particiones Fijas

Carga de Programas

MP

El SGM, incorpora los programas a la memoria principal para su ejecución en el proceso, utilizando los métodos:
-Asignación Contigua.
-Asignación No Contigua

Asignación Contigua: Para la asignación de Espacio Contiguo, la técnica usada en los sistemas operativos tradicionales; consiste en dividir el espacio de memoria disponible en:
-Particiones Fijas o Estáticas.
-Particiones Variables o Dinámicas.

Asignación de Memoria: La asignación de memoria consiste en la asignación de memoria para propósitos específicos, ya sea en tiempo de compilación o tiempo de ejecución



Particiones Fijas

DEFINICIÓN:
Consiste en dividir la memoria libre en varias partes de igual tamaño o de diferentes tamaños

Un programa puede ser demasiado grande para caber en la partición. En este Caso , el programador debe diseñar el programa mediante superposiciones, para que sólo una parte del programa esté en memoria principal

En las Particiones de Igual Tamaño, si todas las particiones estuvieran ocupadas con procesos que no están listos para ejecutar y necesita cargarse un nuevo proceso, debe determinarse qué partición expulsarse de memoria.


-El tamaño de la partición se especifica al encender el sistema.
-Cada partición se puede reconfigurar al volver a encender o reiniciar el sistema.
-Una vez asignada una partición a una tarea, no se permitía que ninguna otra tarea entrara en sus fronteras.
Este esquema de partición es mas flexible que la de usuario único, pues permite que varios programas estén en memoria al mismo tiempo

Asignación de Memoria con Particiones Fijas

Asigna memoria en tiempo de compilación antes de que el programa asociado sea ejecutado

Una aplicación de esta técnica conlleva a que un módulo de programa declare datos estáticos de forma local, de forma que estos datos son inaccesibles desde otros módulos a menos que se les pasen referenciados como parámetros o le sean devueltos por la función



Particiones Dinámicas

DEFINICIÓN:
Consiste en particiones de memoria de tamaño variable, es decir, a cada proceso se le asigna la cantidad de memoria que necesita. Deben utilizarse algunos algoritmos para la ubicación de procesos en las particiones


Algoritmos:
Mejor Ajuste(Best-fit): Se elige el bloque con el tamaño mas parecido al del proceso entrante.

Primer Ajuste(First-fit): Comienza recorriendo la memoria desde el comienzo y escoge el primer bloque disponible en el que entre el proceso entrante.

Siguiente Ajuste(Next.fit): Recorre la memoria desde el lugar de la ultima ubicación y elige el siguiente bloque disponible que sea suficientemente grande.

Peor Ajuste(Worst-fit): Elije el Bloque mas grande posible.

Estrategia de la Partición

Solicitud: Por Demanda.
Ubicación:
Primer Ajuste: El primer bloque disponible que ubique. (Parte del inicio).
Siguiente Ajuste: El siguiente bloque disponible que ubique. (Parte desde la Ubicación actual).
Mejor Ajuste: El bloque disponible que deje menor espacio libre.(Búsqueda exhaustiva).
Remplazo:

Uno de los procesos se saca según el planificador.

En Cuanto a los Algoritmos…..

Primer Ajuste. Es bueno con baja compactación. Puebla el inicio de la memoria.

Siguiente Ajuste. Puebla el final de la memoria, el siguiente bloque libre esta al final de la memoria.

Mejor Ajuste. Tiene peores resultados, dado que busca la partición que deje el hueco más pequeño, la memoria se llena de huecos pequeños. Se compacta con mas frecuencia.

Conclusiones

Con Particiones Dinámicas surgen dificultades como:
-Producto de la entrada y salida de procesos en la memoria, se van generando porciones cada vez más pequeñas de la memoria sin utilizar, lo que se conoce como fregmentación externa.
-Para solucionar el problema mencionado anteriormente, se debe recurrir a la compactación de la memoria de manera de eliminar espacios (huecos) existentes entre procesos. Esto significa que los procesos deben ser reubicados en memoria en forma dinámica.

Algunas ventajas y desventajas

Ventajas:
-No existe Fragmentación Interna
Desventajas:
-Existe Fragmentación Externa. Se debe compactar la memoria. El compacto toma tiempo.
-
-El uso de la memoria es muy ineficiente, se generan muchos huecos entre las particiones, cada vez mas pequeñas, se genera la fragmentación externa.
-Cada cierto tiempo se debe compactar los segmentos libres, para que estén contiguos.




Fuentes Bibliográficas













FUNCIÓN DE INTERCAMBIO






La necesidad de atender diferentes procesos en formas concurrente fomento el desarrollo de la función de intercambio.

FUNCIÓN DE INTERCAMBIO





Consiste en extraer del procesador un proceso que está en ejecución haciendo un registro del estado del proceso y guardándolo en memoria secundaria, para poder ser retomado desde el punto hasta donde fue ejecutado.

Principales consideraciones del Swapping
1.El estado en el que se encuentra el proceso.

2.La prioridad del proceso.

3.El tamaño del programa.

4.El tiempo que lleva el programa en memoria.


Algoritmo de ubicación
Un proceso que sale de memoria principal es ubicado en memoria secundaria en la partición más pequeña que pueda albergarlo.

Un proceso que estaba en memoria secundaria y sube a memoria principal puede volver a la memoria secundaria en una posición diferente a la que se encontraba alojado.

Es el utilizado para decidir que proceso sale de memoria cuando llega un nuevo proceso y no hay marcos de página libres.

Es el encargado de determinar cuando se debe escribir en memoria secundaria una pagina que ya ha sido modificada.





Segmentación Paginada

Conceptos a tener en cuenta

nPaginación y segmentación son dos técnicas diferentes.
n
nEl espacio de direcciones se divide en segmentos, los cuales corresponden a una rutina (procedimiento o función),un programa o un conjunto de datos, y contiene todo aquello que corresponde con un sub-espacio de direcciones independientes.

nLa Paginación es un espacio virtual de direcciones, su unidad de medición se denomina pagina, todas las páginas son de un mismo tamaño donde a cada marco de pagina se le asigna un proceso que no necesariamente debe ser contiguo para generar proceso en memoria.


El controlador DMA descarga las entradas y salidas de datos en periféricos rápidos, ya que el uso de interrupciones se vuelve inadecuado en estos casos.

La CPU programa al controlador de DMA, indicando las direcciones de memoria que deben emplear y el tipo de transferencia.

Cuando un periférico solicita transferencia de datos mediante DMA, el controlador se lo hace saber al procesador para que dé el visto bueno y acceda a la transferencia usando los buses d
el sistema. 







nDebido a que los espacios de memorias son segmentados, se garantiza la facilidad de implantar la comparición y enlace.
n
nComo los espacios de memoria son paginados, se simplifican las estrategias de almacenamiento
n
nSe elimina el problema de la fragmentación externa y la necesidad de compactación.

nLas tres componentes de la dirección y el proceso de formación de direcciones hace que se incremente el costo de su implantación. El costo es mayor en el caso de segmentación puro o paginación pura
n
nSe hace necesario mantener un numero mayor de tablas en memoria, lo que implica un mayor costo de almacenamiento



La segmentación paginada intenta combinar lo mejor de los dos esquemas anteriores. La segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual.
 
  con esta técnica un segmento esta formado por un conjunto de paginas que se pueden usar y no tienen que estar contiguos en memoria para su uso.
 
  La MMU utiliza una tabla de segmentos, tal que cada entrada de la tabla apunta a una tabla de paginas.

Los segmentos son usualmente múltiplos de páginas en tamaño, y no es necesario que todas las páginas se encuentren en memoria principal a la vez; además las páginas de un mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan estarlo en memoria real.

El direccionamiento es tridimensional con una dirección de almacenamiento virtual de tres componentes.



V=(S,P,D)
S = Número Segmento
P = Número Página
D = Desplazamiento

nSMT (Tabla de mapas de segmentos): Una para cada proceso. En cada entrada de la SMT se almacena la información descrita bajo segmentación pura, pero en el campo de dirección se indicara la dirección de la PMT que describe a las diferentes paginas de cada segmento.
nPMT (Tabla de mapas de paginas):Una por cada segmento. Cada entrada de la PMT describe una pagina de un segmento; en la forma que se presento la pagina pura.
nTBM (Tabla de bloques de memoria): Para controlar asignación de paginas por parte del sistema operativo
nJT (Tabla de Jobs): Contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan en memoria.























POLITICAS DE REUBICACION Y REEMPLAZO

Politica de Reubicacon 

La re ubicación de un programa, se refiere a la capacidad de cargar y ejecutar un programa determinado en una posición arbitraria de memoria, en contraposición a un conjunto fijo de posiciones especificas durante la compilación de dicho programa.

Las instrucciones de un proceso cargado en memoria contendrán referencias a posiciones de memoria de dos tipos.


Referencias a posición de memoria

Tipo 1.  Referencias a datos empleados en instrucciones de carga, almacenamiento y algunas instrucciones aritmetico-logicas.
Tipo 2.  Referencias a otras instrucciones empleadas fundamentalmente en bifurcaciones de control de flujo o en instrucciones de llamadas.

Tipos de Direcciones

Tipo 1.  Una dirección lógica o virtual es un identificador utilizado para referenciar información dentro del espacio de direcciones de un programa y, por tanto, es independiente de la asignación actual de datos a memoria, debiéndose realizar una traducción a dirección física, antes de poder realizar un acceso a memoria.
Tipo 2.  Una dirección física o absoluta designa una posición real de memoria física, donde se almacena información en tiempo de ejecución.

Tipos de Esquemas

Dependiendo de como y cuando, tenga lugar la traduccion del espacio de direcciones virtuales al espacio de direcciones fisicas, en un esquema de reubicacion determinado, pueden considerarse dos tipos de estrategias:
Tipo 1.  Reubicación estática.
Tipo 2.  Reubicación Dinámica.

Reubicacion Estatica 

Implica generalmente que la reubicación es realizada, antes o durante la carga del proceso en memoria.
Las constantes(valores literales), los desplazamientos relativos al PC, no dependen de esta condición y no necesitan ser ajustados durante la reubicación.

Reubicacon Dinamica 

Implica que la correspondencia entre el espacio de direcciones virtuales y el espacio de direcciones físicas se efectúan en tiempo de ejecución. Normalmente con asistencia de hardware.
Cuando el proceso en cuestión esta siendo ejecutado, todas sus referencias a memoria son reubicadas durante la ejecución antes de acceder realmente a la memoria.


Politcas de Reemplazo 

Cuando todos los marcos de memoria principal están ocupados y es necesario traer a memoria una nueva pagina para atender un fallo de pagina.
La política se encarga de seleccionar la pagina a reemplazar de entre las que se encuentren actualmente en memoria.
<



Política de Reemplazo 

Algunos de los marcos de memoria principal pueden estar bloqueados, cuando un marco se encuentra bloqueado, la pagina cargada actualmente en el no puede ser reemplazada.
La mayoria de nucleo del SO asi como las estructuras de control son albergados en marcos bloqueados.

Política de Reloj 

La forma mas simple de esta política requiere asociar un bit adicional a cada marco, denominado bit de uso. Cuando se cargue una pagina por primera vez, este bit se pone a 0 y cuando se hace referencia posteriormente a la pagina el bit de uso se pone a 1. Para el algoritmo de reemplazo de paginas, el conjunto de marcos candidatos a ser reemplazado se considera como un buffer circular con un puntero asociado.

El alcance es local si los candidatos son de un solo proceso y global si procede de toda la memoria.

Cuando llega el momento de reemplazar una pagina, el SO recorre el buffer buscando un marco con el bit de uso a 0, eligiendo para reemplazar el primero que encuentre. Cada vez que se encuentra un marco con el bit de uso a 1, se pone a 0.