Requisito previo: memoria virtual en el sistema operativo
Como sugiere el concepto de memoria virtual, no es necesario que todo el proceso se cargue en la memoria principal en un momento dado. El proceso se puede ejecutar de manera eficiente si solo algunas de las páginas están presentes en la memoria principal en un momento determinado. Ahora la pregunta que surge aquí es ¿cuál es la base de la selección de páginas que se cargarán en la memoria principal para la ejecución de un proceso de antemano?
La respuesta al problema que aquí se presenta es la paginación por demanda . De acuerdo con este concepto, ninguna página se carga en la memoria principal a menos que el proceso haga referencia a ella en cualquier etapa de la ejecución. Por el contrario, el concepto de Prepaginación presenta un enfoque diferente en el que el sistema operativo presenta una estimación de qué página requerirá el proceso y la carga previamente en la memoria.
El concepto de Prepaginación se usa como un intento de reducir la gran cantidad de fallas de página que ocurren al comienzo de un proceso donde la estrategia básica es llevar todas las páginas a la memoria que se necesitarán al mismo tiempo antes de que realmente se carguen . referenciado por el proceso.
La paginación previa se utiliza para superar un inconveniente importante de la paginación bajo demanda. Un inconveniente importante de la paginación por demanda es una cantidad significativamente grande de fallas de página que pueden ocurrir tan pronto como un proceso comienza a ejecutarse. La situación es el resultado de un esfuerzo por cargar la localidad inicial en la memoria. La misma situación puede presentarse repetidamente. Por ejemplo, cuando se reinicia un proceso después de haberlo intercambiado, todas sus páginas están presentes en el disco y, por lo tanto, cada una de las páginas debe volver a la memoria principal para la ejecución del proceso por su propia falla de página en el peor de los casos. caso.
Si un sistema utiliza un modelo de conjunto de trabajo, se mantiene una lista de páginas con cada proceso en su conjunto de trabajo. Si un proceso se suspende debido a la falta de marcos libres o una espera de E/S, el conjunto de trabajo del proceso no se pierde. Cuando se reanuda un proceso, todo el conjunto de trabajo vuelve a la memoria antes de que el proceso comience a ejecutarse nuevamente.
La principal ventaja de la Prepaginación es que puede ahorrar tiempo cuando un proceso hace referencia a direcciones consecutivas. En este caso, es fácil para el sistema operativo adivinar y cargar las páginas apropiadas y, dado que hay una alta probabilidad de que la suposición sea correcta para muchas páginas, se producirán menos fallas de página.
La preparación puede no ser siempre beneficiosa. La ventaja de la Prepaginación se basa en la respuesta a una simple pregunta de si el costo de implementar la Prepaginación es menor que el costo de reparar las fallas de página correspondientes. Tenga en cuenta aquí que puede darse el caso de que no se utilice una cantidad considerablemente grande de páginas traídas de vuelta a la memoria por Prepaging. La desventaja del concepto es que se desperdician recursos como tiempo y memoria si no se utilizan las páginas precargadas.
Diferencia entre demanda de paginación y prepaginación:
Paginación de demanda |
Prepaginación |
Ninguna página se carga en la memoria principal a menos que el proceso haga referencia a ella en el instante presente. | Todas las páginas se cargan en la memoria que se necesitará al mismo tiempo en un futuro cercano, pero antes de que el proceso las haga referencia. |
El número de fallas de página es significativamente alto. | El número de fallas de página puede reducirse en ciertos casos específicos. |
El tiempo de carga de las páginas no puede disminuir en ninguna situación. | El tiempo necesario para cargar las páginas disminuye cuando un proceso hace referencia a direcciones consecutivas. |
Seguramente se utilizan las páginas cargadas en la memoria principal. | Las páginas cargadas en la memoria principal pueden o no ser utilizadas. |
No hay desperdicio de recursos ya que una página se carga cuando se necesita. | Hay un desperdicio de recursos ya que existe una alta probabilidad de que las páginas no se utilicen. |
Supongamos que el número de páginas prepaginadas es: s, y la fracción de estas páginas realmente utilizadas por un proceso es: m, donde (0 ≤ m ≤ 1). Ahora verifique si las fallas de la página guardada s* m son mayores o menores que el costo de prepaginar s*(1-m) páginas innecesarias y continúe con el procedimiento que tiene un valor relativo menor.
Publicación traducida automáticamente
Artículo escrito por medha130101 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA