Marcos sistemas operativos
¿Cómo asignamos la cantidad fija de memoria libre a los distintos procesos? Si tenemos 93 marcos libres y dos procesos, ¿cuántos marcos obtiene cada proceso? El caso más sencillo de memoria virtual es el sistema mono-usuario.
Existen varias restricciones para las estrategias de asignación de marcos, existe un número mínimo de marcos que pueden asignarse. Si se reduce elnúmero de marcos asignados a cada proceso, aumenta la tasa de fallas de página, haciendo más lenta la ejecución de los procesos.
El número mínimo de marcos está definido por la arquitectura del computador, mientras que el número máximo está definido por la cantidad de memoria física disponible.
Existe el caso donde ciertas arquitecturas permiten varios niveles de indirección. En teoría, una sencillainstrucción de carga puede hacer referencia a una dirección indirecta que puede hacer referencia a una dirección indirecta (en otra página), que a su vez podría referirse a otra dirección indirecta (en otra página), etc., hasta alcanzar cada una de las páginas de la memoria virtual. Por lo tanto, en el peor de los casos, toda la memoria virtual debe estar en memoria física. Para superar esteobstáculo debemos poner un límite en los niveles de indirección.
ALGORITMOS DE ASIGNACIÓN
La manera más sencilla de dividir m marcos entre n procesos es otorgar a cada proceso una parte igual, m/n. Por ejemplo, si hay 93 marcos y 5 procesos, cada uno recibirá 18 marcos. Los 3 marcos sobrantes pueden usarse como depósito de marcos libres. A este esquema se le llama asignación equitativa.
Unaalternativa es reconocer que los diversos procesos requieren cantidades distintas de memoria. Para ello podemos usar la asignación proporcional. Asignamos la memoria disponible a cada proceso de acuerdo al tamaño de éste. Sea vi el tamaño de la memoria virtual para el proceso pi y definamos
V=vi
Entonces si el total de marcos disponibles es m, asignamos ai marcos al proceso pi dónde:
ai=viV*m
Porsupuesto, debemos ajustar los ai para que sean enteros, mayores al número mínimo de marcos requerido por el conjunto de instrucciones y que sumados no excedan de m.
Como ejemplo dividamos 62 marcos entre dos procesos, uno de 10 páginas y otro de 127.
10137*62≈4 , 127137*62≈57 De tal manera, ambos comparten marcos de acuerdo con sus necesidades en vez de hacerlo equitativamente.
Sinembargo, en ambos tipos de asignación es necesario considerar el nivel de multiprogramación. Además, en estas asignaciones hemos tratado de igual manera a un proceso de alta prioridad y a uno de baja prioridad. Una estrategia consiste en usar un esquema de asignación proporcional donde la tasa de marcos no dependa del tamaño relativo del proceso, sino de sus prioridades o una combinación de tamaño yprioridad.
2.1 ASIGNACIÓN GLOBAL O LOCAL
Cuando varios procesos compiten por marcos podemos clasificar los algoritmos de reemplazo de páginas en dos categorías: reemplazo global y reemplazo local. El reemplazo global permite que un proceso seleccione un marco para reemplazar de entre todo el conjunto de marcos, incluso si ese marco está asignado a otro proceso; un proceso puede quitar un marco aotro. El reemplazo local requiere que cada proceso selecciones sólo de su propio conjunto de marcos asignados.
Los algoritmos locales corresponden efectivamente a asignar a cada proceso una fracción fija de memoria. Los algoritmos globales reparten dinámicamente marcos de página entre los procesos ejecutables. Por tanto, el número de marcos de página asignados a cada proceso varía con el tiempo.En general, los algoritmos globales funcionan mejor, sobre todo cuando el tamaño del conjunto de trabajo puede variar durante la vida de un proceso. Si se emplea un algoritmo local y el conjunto de trabajo crece, habrá trashing, incluso si hay muchos marcos de páginas libres. Si el conjunto de trabajo se reduce, los algoritmos locales desperdician memoria. Si se emplea un algoritmo global,...
Regístrate para leer el documento completo.