Código fuente del tema
# include & ltiostream & gt
Usar espacio de nombres std
int pagenum = 0 ///Número de páginas en la memoria
int total = 0; ///El número total de hojas a las que se accederá
int falta número = 0 ///El número total de páginas faltantes
void main; () p>
{
int array[20]; // Genera un espacio de memoria, asígnalo e inicialízalo en nulo -1, sin agregar 0 para la inicialización, debido a la espera. La secuencia se inicializa a 0.
for(int x = 0; x & lt20;x++)
{
array[x]=-1;
}
int sequee[20]= { 0 }; // Genera un espacio virtual e inicialízalo para vaciarlo, es decir, espera la cola.
cout & lt& lt"Ingrese el número de páginas en la memoria:"
CIN & gt;& gtpagenum
cout & lt& ltPor favor ingrese la página para acceder a la secuencia (ingrese -1 para finalizar):;
//Ingrese la secuencia de acceso a la página e ingrese a la cola de espera.
for(int I = 0;i<20;i++)
{
int num
CIN>>num
If (num!=-1)
{
sequee[I]= num;
total++; //Proceso de cálculo Total
}
Otro
{
sequee[I]= num;
Pausa;
p>
}
}
cout & lt& lt"El número total de páginas es"
cout & lt& lt"-< & lt; endl
int j = 0;
for(I = 0; i & ltpagenumI++) // La página vacía de pagenum acaba de ser reemplazada
{.
//Inicialmente, todas las páginas que no existen en la memoria se pierden
if (i<pagenum& array[i]!=sequence[i])
{
array[I]= sequee[I];
cout & lt& lt"Página"
cout & lt& lt"¡Falta página! En este momento, el contenido de la página es ";
for(int j = 0; j & ltpagenumj++)
{
cout & lt& ltarray[j] & lt; & lt" ";
}
cout & lt& lt"(-1 significa sin contenido)" < & ltendl
}
cout & lt& ltendl
}
//Comparación del contenido de la tabla de la cola y de la página entrante
int kk = 0;
for(I = pagenum; i<total; I++)// Si hay tres páginas de memoria, considere reemplazarlas o reemplazarlas
{
int flag = 0;/ /As. una bandera, si =0 significa que no existe, reemplácela, de lo contrario presione
for(int k = 0; k & ltpagenumK++)//Este bucle for implementa la comparación del número de páginas que se ingresarán la memoria y el número de páginas en la memoria para ver si hay una
{//Si es así, establezca la bandera en 1.
if(array[k]= =sequence[i])
{
bandera = 1 //existe
Romper ;
}
}
cout & lt& ltendl
If(flag==1)//Juzgado por bandera, si es igual a 1, significa que existe y no necesita ser reemplazado.
{
cout & lt& lt"page"
cout & lt& lt"En este momento, el contenido de la página es";
for (int j = 0; j & ltpagenumj++)
{
cout & lt& ltarray[j]& lt;& lt" ";
} p>
}
cout & lt& ltendl
If(flag==0)//El otro no tiene memoria, por lo que el más avanzado tiene que ser apareció.
{
int tem = array[kk]; // El valor inicial de kk es 0, lo que significa que es una matriz de páginas de asignación de memoria. Reemplace la primera celda de la matriz, que es la celda número 0.
array[kk]= seque[I];
cout & lt& lt"Página"
cout & lt& lt"¡Falta página! Página" p>
p>
cout & lt& lt"En este momento, el contenido de la página es";
for(int j = 0; j & ltpagenumj++)
{
cout & lt& ltarray[j]& lt;& lt" ";
}
cout & lt& ltendl
kk++ ; //kk++ significa: Si se asignan tres páginas de memoria, entonces una página ingresará a la página de memoria cada vez que se ejecuta kk++. Inicialmente kk=0, indica la primera página de la memoria.
//Se ha sustituido la página de memoria, es decir, la página más avanzada. +1 significa reemplazar el número original en la segunda matriz, +1 significa reemplazar el tercero.
//La página de memoria tiene solo tres páginas. La próxima vez que se reemplace, la cuarta página se divide por 3 y el resto es 0, es decir, kk == pagenum a continuación.
//kk se establece en 0.
falta número++; //Falta página
if(kk==pagenum)
{
kk = 0;
}
}
}
número faltante = pagenum+número faltante;
cout & lt& lt"página faltante tasa = "
}