Algoritmos de reemplazo de página

Páginas: 6 (1252 palabras) Publicado: 1 de septiembre de 2010
[url=http://www.subirimagenes.com/imagen-algoritmosdepagina-4518392.html][img]http://s2.subirimagenes.com/imagen/previo/thump_4518392algoritmos-de-pagina.png[/img][/url]

Este es uno de los programas de la Unidad 3 del curso. Esta realizado en C#, al principio me quebré la cabeza al tratar de hacerlo directamente en la computadora, pero ¡¡No pude!! Así que tome lápiz y papel y las ideascomenzaron a fluir, como siempre dice el buen Inge Osvaldo "Primero en cudernito y después en lacomputadora" y por lo menos a mi me funciona mejor ;D.

Comenzemos por el diseño de la forma:
[url=http://www.subirimagenes.com/imagen-algoritmosdepagina-4518389.html][img]http://s3.subirimagenes.com:81/imagen/previo/thump_4518389algoritmos-de-pagina.png[/img][/url]
En esta forma utilice los siguientescomponentes:
[list]3 DataGridView[/list]
[list]Un comboBox[/list]
[list]Un numericUpDown[/list]
[list]Dos botones[/list]
[list]Y los tipicos label[/list]

Yo hice uso de una clase a la que llame Paginacion y añadí en ella los siguientes metodos:

Tres atributos con dos constructores
[code]char[] marco; //Arreglo que simula los marcos a utilizar
char[] proc; //Arreglo que guarda lasolicitud de los procesos
char[][] vm; //Arreglo de arreglos que irá guardando los cambios que sufra a cada remplazo

//Constructor por default sin valores
public Paginacion()
{
}

//Constructor que recibe como argumento el arreglo que guardo la solicitud de los procesos
public Paginacion(char[] p)
{
marco = new char[3];//Inicializamos el marco en un tamaño fijo de 3
proc = p; //al atributo proc le asignamos el arreglo que recibimos
vm = new char[p.Length][]; //A nuestro arreglo le daremos la longitud igual al arreglo proc

//Este for inicializa el tamaño de cada uno de los espacios dentro de vm, en este cado le daremos un tamaño de 4 acada uno
for (int i = 0; i < p.Length; i++)
vm[i] = new char[marco.Length + 1];

//Asignamos los primeros 3 valores al arreglo ya que siempre entrarán los primeros 3
for (int i = 0; i < marco.Length; i++)
{
marco[i] = proc[i];
for (int j = 0; j < vm[i].Length - 1; j++)
vm[i][j]= marco[j];
//El asterisco indica que hubo un cambio en las paginas
vm[i][3] = '*';
}
}[/code]

El metodo de remplazo de pagina "first in first out"
[code]public void Algoritmo_FIFO()
{
bool band = false;

for (int i = 3, count = 0; i <proc.Length; i++)
{
for (int j = 0; j < marco.Length; j++)
if (marco[j] == proc[i])
band = true;
if (band != true)
{
marco[count] = proc[i];
if (count == 2) count = 0; else count++;
}band = false;
for (int j = 0; j < vm[i].Length - 1; j++)
{
vm[i][j] = marco[j];
if (vm[i][3] != '*')
vm[i][3] = (vm[i][j] == vm[i - 1][j] ? vm[i][3] = '-' : vm[i][3] = '*');
}
}
}[/code]

Método de remplazo de pagina"menos frecuentemente utilizado" (Y el que más dolor de cabeza me dio!!)
[code]public void Algoritmo_LRU()
{
char v1 = proc[0]; int c1 = 0;
char v2 = proc[1]; int c2 = 1;
char v3 = proc[2]; int c3 = 2;

for (int i = 3; i < proc.Length; i++)
{
if (proc[i] == v3)
marco[c3] =...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmo De Reemplazo De Páginas
  • Algoritmo de reemplazo de paginas de la segunda oportunidad
  • Algoritmo De Reemplazo De Paginas
  • Algoritmos de reemplazo de pagina
  • Tecnicas de reemplazo de paginas
  • Reemplazo De Paginas Wsclock
  • Algoritmos de reemplazo de p ginas
  • Simulacion De Politicas De Reemplazos De Marcos De Paginas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS