Clasificación de la memoria, tipos de algoritmos de administración, definición y pseudocódigos de cada algoritmo
click to edit
Clasificación de la memoria
Tipos de algoritmos de administración
Memoria real
Memoria virtual
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso
La memoria virtual es una técnica de gestión de la memoria que se encarga de que el sistema operativo disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria que esté disponible físicamente. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad.
intercambio o paginación.
Segmentación
En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.
La memoria virtual que hemos analizado hasta ahora es unidimensional, puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás.
Una memoria segmentada tiene otras ventajas como hacer mas sencilla la administración de las estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento independiente con la posición inicial cero el ligado independiente de los procesos compilados es mucho mas sencillo.
Bit que se activa si se hace referencia a la página en cuestión
Bit que se activa si se modifica la página
Algoritmo de reemplazo de páginas optimo:
Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la práctica.
Al momento de ocurrir un fallo de página cierto conjunto de páginas se encuentran en la memoria, en la siguiente instrucción se hará referencia a una de estas páginas, otras páginas no se utilizaran sino hasta mucho después, cada página puede ejecutarse con el número de instrucciones ejecutadas antes de la primera referencia a esa página, el algoritmo dice que se elimine la página con la mayor etiqueta; si una página no va a utilizase sino hasta mucho después que otra la eliminación de la primera retrasa el fallo de página lo mas posible, el único problema de este algoritmo es que es irrealizable. Al momento del fallo de página el S.O. no tiene forma de saber a qué página se hace referencia.
Algoritmo de página de uso no muy reciente:En un fallo de página, el sistema operativo inspecciona todas las páginas y las divide en cuatro categorías según los valores actuales de los bits R y M Clase 0: No se ha hecho referencia ni ha sido modificada, Clase 1: No se ha hecho referencia pero ha sido modificada, Clase 2: Se ha hecho referencia pero no ha sido modificada Clase 3: Se ha hecho referencia y ha sido modificada. El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una página modificada sin referencias al menos por lo general un intervalo de reloj, este algoritmo es fácil de comprender, de implantación eficiente y con un rendimiento que, aún sin ser el óptimo si es adecuado en muchos casos.
Algoritmo de reemplazo " primero en entrar, primero en salir FIFO" El sistema operativo tiene una lista de todas las páginas que se encuentran en memoria, siendo la primera página la mas antigua y la última la mas reciente, en un fallo de página, se elimina la primera página y se añade la nueva al final de la lista.
Algoritmo de reemplazo de páginas de la segunda oportunidad Una modificación simple del FIFO que evita deshacerse de una página de uso frecuente inspecciona el bit R de la página mas antigua, busca una página antigua sin referencias durante el anterior intervalo de tiempo.
Algoritmo de reemplazo de páginas del reloj Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las páginas en una lista circular con la forma de un reloj, una manecilla apunta hacia la mas antigua. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la nueva página en su lugar en el reloj y la manecilla avanza una posición, si R=1 la manecilla avanza una posición y el bit se limpia, esto continua hasta encontrar una página con R=0.
Algoritmos de Ubicación Mejor ajuste Elige el bloque de tamaño mas próximo al solicitado, proporcionando en general los peores resultados, puesto que este algoritmo busca el hueco mas pequeño para el proceso, garantiza que el fragmento que se deja es lo mas pequeño posible y por esto se debe compactar mas frecuentemente
Algoritmo Optimo El algoritmo óptimo tiene la menor tasa de fallos ƒy esto lo hace reemplazando las páginas que no se va a usar durante más tiempo. Es decir no se puede realizar ya que no se conoce a la utilización de memoria de instrucciones futuras
Algoritmos de Vaciado 1. Se define el vaciado por demanda cuando se escribe una página en la memoria secundaria sólo cuando haya sido elegida para reemplazarse 2. 2. Podemos definir el vaciado previo al momento en que se escriben las páginas modificadas antes de que se necesiten sus marcos, de forma que las páginas pueden escribirse por lotes.
pseudocódigos
Paginación
El espacio de direcciones físicas de un proceso puede ser no contiguo
La memoria física se divide en bloques de tamaño fijo, denominados marcos de página. El tamaño es potencia de dos, de 0.5 a 8 Kb
El espacio lógico de un proceso se divide en bloques del mismo tamaño, denominados páginas
Las direcciones lógicas, que son las que genera la CPU se dividen en número de página (p) y desplazamiento dentro de la página (d)
Las direcciones físicas se dividen en número de marco (m, dirección base del marco donde está almacenada la página) y desplazamiento (d)
Cuando la CPU genere una dirección lógica será necesario traducirla a la dirección física correspondiente, la tabla de páginas mantiene información necesaria para realizar dicha traducción. Existe una tabla de páginas por proceso
Algoritmo del reloj
Cada página tiene asociado un bit de referencia R (lo pone a 1 el hardware)
Los marcos de página se representan por una lista circular y un puntero a la página visitada hace más tiempo
Selección de una página: 1. Consultar marco actual 2. ¿Es R=0? – No: R=0; ir al siguiente marco y volver al paso 1 – Si: seleccionar para sustituir e incrementar posición
Algoritmo FFP
(Frecuencia de Falta de Página)
Para ajustar el conjunto de páginas de un proceso, usa los intervalos de tiempo entre dos faltas de página consecutivas:
» Si intervalo de tiempo grande, mayor que λ, todas las páginas no referenciadas en dicho intervalo son retiradas de MP
» En otro caso, la nueva página es simplemente incluida en el conjunto de páginas residentes
t c = instante de tº de la actual falta de página
t c-1 = instante de tº de la anterior falta de página
Z = conjunto de páginas referenciadas en un intervalo de tº
R = conjunto de páginas residentes en MP