¿Cómo puedo calcular los fallos de página a partir de la cadena de referencia y los marcos disponibles?

Se produce un error de página cuando un programa en ejecución accede a una página de memoria que está asignada en el espacio de dirección virtual, pero que en realidad no está cargada en la memoria principal.

Aquí, la cadena de referencia es la secuencia de páginas que se solicitan ejecutando programas y los marcos de memoria es el espacio de memoria principal disponible para almacenar las páginas. Cada marco puede almacenar 1 página y tenemos 3 marcos disponibles.

Inicialmente, los marcos están vacíos y cuando se accede a la página 7, no está en los marcos de memoria, por lo tanto, se produce un error de página. (falla 1) Al manejar una falla de página, el sistema operativo hace que la página requerida sea accesible en los marcos de memoria. Entonces la página 7 se carga en cuadros. Luego aparece la página 0 y se produce un error (falla 2) y se cargan en el marco de memoria. Del mismo modo, llega la página 1 y se produce un error (error 3) y se carga en el marco de memoria. Ahora todos los cuadros están llenos teniendo las páginas 7, 0 y 1 respectivamente. Cuando se recibe una solicitud de página para dicha página (página 2) que no está en los marcos, se produce un error y debe cargarse en los marcos. Pero ahora todos los marcos ya están llenos y tenemos que hacer espacio para la nueva página eliminando la página cargada anteriormente. Pero qué página eliminar, aquí entran en acción las políticas de reemplazo como FIFO o LRU (hay muchos algoritmos). Suponga que nuestro sistema operativo usa FIFO, luego reemplazará la página que se carga primero, por lo tanto, elimine la página 7 y cargue la página 2 (falla 4) . Realice este proceso hasta que la cadena de referencia se atraviese por completo.

En primer lugar, intentemos entender por qué se produce un error de página. El concepto de paginación divide la memoria disponible para cada programa en segmentos de un tamaño fijo y cada uno de ellos se denomina página. El concepto de memoria virtual permite que una computadora compense la escasez de memoria transfiriendo temporalmente páginas de la memoria física al disco. Finalmente, el sistema operativo necesitará recuperar estas páginas del disco cuando el programa las necesite. Pero el sistema operativo eliminó estas páginas de la RAM porque se estaba quedando sin memoria. Entonces, para traer estas páginas nuevamente a la memoria, ahora necesita eliminar otras páginas en la memoria para facilitar el espacio para estas páginas. Este proceso se llama paginación.

Entonces, cada vez que un proceso en ejecución quiera acceder a una página y la página no esté presente en la memoria sino en el disco, se producirá un error de página. Para resolver un error de página, el sistema operativo seleccionará una página de las páginas presentes en la memoria y la reemplazará por la página a la que el programa desea acceder (presente en el disco). La forma en que elegimos la página que se reemplazará cuando se produce un error de página determina el algoritmo de paginación. La cantidad total de falla de la página depende del número de marcos de página, así como del algoritmo de paginación.

En caso de primero en entrar, primero en salir, elegimos la página que entró en la memoria antes que todas las demás páginas. Es decir, la página que aparece primero dejará la memoria primero cuando se llame el intercambio.

En el caso óptimo, elegimos la página que aparece en la cadena de referencia detrás de todas las demás páginas que están en la memoria o que no aparece en absoluto. Esto esencialmente significa elegir la página a la que llamará el programa en ejecución después de todas las demás páginas o que no se llamará en el futuro. El problema con este algoritmo es que requiere que sepamos la cadena de referencia de antemano. Pero la cadena de referencia no se puede conocer de antemano, especialmente para un programa que involucra ramas.

Finalmente, llegando a calcular el número de fallas de página. Tenemos que simular el algoritmo para calcular el número de fallas de página. La descripción general de la implementación es:

1. Para cada solicitud de página en la cadena de referencia,

2. Compruebe si está presente en uno de los marcos de memoria.

3. En caso afirmativo, continúe con otras páginas en la cadena de referencia.

4. De lo contrario, incremente el recuento de fallas de página.

5. Si hay un marco de página disponible en la memoria que es libre, traiga la página del disco a este marco libre.

6. De lo contrario, elija una de las páginas presentes en los marcos de memoria de acuerdo con el algoritmo de Paginación y reemplace esa página con la página que llama el programa. Pase a 1 y repita este procedimiento.

Espero que ésto sea útil para ti.

Saludos 🙂

Al usar el método FIFO, obtendremos un error de 15 páginas y mediante el Algoritmo óptimo 9. Se da correctamente en el libro.
Si el bit actual no está configurado, la página deseada no está en la memoria principal y hay un error de acceso a la memoria, llamado error de página.

Cuando hay un cambio en el marco, contamos como la falla de una página.

error de página: cuando hay un cambio en la página (cambios de valores), entonces se llama error de página.
golpe de página: cuando no hay cambio (se repiten los valores que ya están en la (s) página (s)), esto se llama golpe de página.
Sí, las respuestas anteriores y posteriores son correctas.

con LRU da 12.

Para esto tienes 3 opciones

1.LRU

2.FCFS- Primero en llegar, primer servicio.

3 rebanada de tiempo

Las opciones anteriores de Google pueden encontrar fácilmente una solución.

Buena Suerte ADSM