Un aspecto importante de los sistemas operativos, la memoria virtual se implementa mediante paginación bajo demanda. La paginación por demanda requiere el desarrollo de un algoritmo de reemplazo de página y un algoritmo de asignación de tramas . Los algoritmos de asignación de tramas se utilizan si tiene varios procesos; ayuda a decidir cuántos marcos asignar a cada proceso.
Hay varias restricciones a las estrategias para la asignación de tramas:
- No puede asignar más que el número total de marcos disponibles.
- Se debe asignar al menos un número mínimo de tramas a cada proceso. Esta restricción está respaldada por dos razones. La primera razón es que, a medida que se asignan menos marcos, aumenta la tasa de fallas de página, lo que disminuye el rendimiento de la ejecución del proceso. En segundo lugar, debe haber suficientes marcos para contener todas las diferentes páginas a las que puede hacer referencia una sola instrucción.
Algoritmos de asignación de tramas:
los dos algoritmos comúnmente utilizados para asignar tramas a un proceso son:
- Asignación equitativa: en un sistema con x fotogramas e y procesos, cada proceso obtiene el mismo número de fotogramas, es decir, x/y. Por ejemplo, si el sistema tiene 48 marcos y 9 procesos, cada proceso obtendrá 5 marcos. Los tres marcos que no están asignados a ningún proceso se pueden usar como un grupo de búfer de marco libre.
- Desventaja: en sistemas con procesos de diferentes tamaños, no tiene mucho sentido dar a cada proceso marcos iguales. La asignación de una gran cantidad de tramas a un proceso pequeño conducirá eventualmente al desperdicio de una gran cantidad de tramas no utilizadas asignadas.
- Asignación proporcional: los marcos se asignan a cada proceso de acuerdo con el tamaño del proceso.
Para un proceso p i de tamaño s i , el número de tramas asignadas es a i = (s i /S)*m , donde S es la suma de los tamaños de todos los procesos y m es la cantidad de tramas en el sistema . Por ejemplo, en un sistema con 62 cuadros, si hay un proceso de 10 KB y otro proceso de 127 KB, entonces al primer proceso se le asignará (10/137)*62 = 4 cuadros y al otro proceso se le asignarán (127/137 )*62 = 57 fotogramas.- Ventaja: Todos los procesos comparten los marcos disponibles según sus necesidades, no por igual.
Asignación global frente a local:
la cantidad de marcos asignados a un proceso también puede cambiar dinámicamente dependiendo de si ha utilizado el reemplazo global o el reemplazo local para reemplazar páginas en caso de una falla de página.
- Reemplazo local: cuando un proceso necesita una página que no está en la memoria, puede traer la nueva página y asignarle un marco de su propio conjunto de marcos asignados únicamente.
- Ventaja: las páginas en la memoria para un proceso en particular y la proporción de fallas de página se ven afectadas por el comportamiento de paginación de solo ese proceso.
- Desventaja: un proceso de baja prioridad puede obstaculizar un proceso de alta prioridad al no poner sus marcos a disposición del proceso de alta prioridad.
- Reemplazo global: cuando un proceso necesita una página que no está en la memoria, puede traer la nueva página y asignarle un marco del conjunto de todos los marcos, incluso si ese marco está actualmente asignado a algún otro proceso; es decir, un proceso puede tomar un marco de otro.
- Ventaja: no obstaculiza el rendimiento de los procesos y, por lo tanto, da como resultado un mayor rendimiento del sistema.
- Desventaja: la proporción de errores de página de un proceso no puede controlarse únicamente por el propio proceso. Las páginas en memoria para un proceso también dependen del comportamiento de paginación de otros procesos.
Publicación traducida automáticamente
Artículo escrito por aganjali10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA