Está en la página 1de 1

Primera Parte

En cuanto al primer algoritmo, en la función planificar simplemente ordeno la cola de acuerdo a la


prioridad de cada proceso en la cola y si hace falta hacer un desempate, se escoge el proceso que tenga
el pid menor, esto quiere decir que se escoge al proceso que llego primero a la cola, luego de esto se
envejecen a todos los procesos menos al proceso que este en la primera posición del arreglo “cola” que
es el proceso que se va a ejecutar, luego de envejecer los demás procesos, se ejecuta el proceso y se hace
un sleep por cada proceso y luego se verifica si el proceso ya termino su tiempo de ejecución o no, si lo
termino entonces se pone toda la info de dicho proceso en -1, de lo contrario se deja en la cola y se
prosigue a la siguiente iteración del bucle

Con respecto a la función envejecer, esta se encarga de dos cosas, uno es aumentar el tiempo de vejez
que tiene cada proceso y la otra es verificar si el tiempo de vejez es igual al tiempo establecido para
aumentar la prioridad del proceso, y de ser asi, la aumenta

Por otra parte, la función OrdenarColaPorPrioridad, simplemente hace un ordenamiento burbuja para
ordenar todos los procesos que están en la cola por prioridad, haciendo asi que el primer proceso en la
cola, sea siempre el primero que se va a ejecutar

Y por ultimo todo la funcionabilidad que esta dentro de la función planificar se encuentra en un while que
funciona hasta que la cola esta vacia

Segunda Parte

En la función reemplazo lo primero que se hace es invocar la función seleccionarReemplazo, que buscara
en el arreglo marcos_LRU el marco de pagina que ha sido menos usado recientemente, para llenar dicho
arreglo, en el main se inicializa a -1 y cuando se coloca alguna pagina en algún marco de pagina digamos
en el marcos[1], se coloca en el marcos_LRU[1]=0 esto para indicar que ha sido utilizado dicho marco, y
posteriormente en el for que recorre cada petición del archivo se incrementa al principio el tiempo de
cada marcos_LRU que sea distinto de -1, y cuando algún marco es reemplazado se coloca en 0 de nuevo,
e igual cuando es encontrado o puesto por primera vez

Luego de seleccionar la victima para el reemplazo, se hace el reemplazo se incrementan los fallos y la
función retorna el índice del marco de pagina que fue modificado para luego en el main poner
marcos_LRU[posicion]=0 indicando que la pagina que esta en dicho marco acaba de ser utilizada

También podría gustarte