ahardencoopers / prfOperativos

Proyecto final de Sistemas Operativos. Manejador de memoria virtual con paginacion y con politica de reemplazo FIFO 2nd chance.
1 stars 2 forks source link

Falla en acceder pero no regresa resultados... #25

Open Lowdive opened 9 years ago

Lowdive commented 9 years ago

Líneas a partir de la 6448 http://pastebin.com/VG2KtMhr EDIT: más bien es que no se cargaron los procesos! checa línea 6425

Lowdive commented 9 years ago

creo que es en línea 188-212 de método asignarMarcos de Manejador.rb; algo pasa cuando la asignación es de un proceso que tiene 0 marcosRealAsig y 1 cantPaginas, no entra en este while por que no salen mensajes en el output solo pasa la instrucción y no sale: while proceso.marcosRealAsig < proceso.cantPaginas && marcoRealActual < memReal.arrMarcos.size do

Si el id del proceso del marco es el numero entero -1, significa que el marco esta disponible

            #y por lo tanto se le asigna al proceso.
            if memReal.arrMarcos[marcoRealActual].idProceso == -1
                #Se crea una nueva pagina que se pondra en el marco.
                paginaTemp = Pagina.new(marcoRealActual)
                #Se crea un nuevo marco que se pondra en memoria real.
                #El marco es cargado con el id del proceso, bit de modificacion en 0 y un
                #timestamp de UNIX.
                marcoTemp = Marco.new(proceso.id, 0, self.timestamp())
                #Se coloca el marco en memoria real.
                memReal.arrMarcos[marcoRealActual] = marcoTemp
                #Se coloca la pagina en la tabla de paginas del proceso.
                proceso.tablaPaginas.push(paginaTemp)
                #Se indica que hay un marco disponible menos.
                memReal.dispMarcos = memReal.dispMarcos - 1
                #Se indica que hay marco ocupado mas.
                memReal.ocupMarcos = memReal.ocupMarcos + 1
                #Se indica que al proceso tiene una marco de memoria real asignado.
                proceso.marcosRealAsig = proceso.marcosRealAsig + 1
                puts "Se alojo marco real #{marcoRealActual} para pagina #{proceso.marcosRealAsig-1}"
            end
            #Se cambia al siguiente marco de memoria real.
            marcoRealActual = marcoRealActual + 1
        end
ahardencoopers commented 9 years ago

Ya cheque y lo que pasa es que le memoria real esta llena pero dice que queda un marco disponible.

Lowdive commented 9 years ago

ok sólo resolviendo eso ya debe quedar... ya me voy al jale, el reporte lo mandas con las especificaciones de tu computadora verdad? On May 14, 2015 10:43 AM, "Alberto Harden Cooper Saldívar" < notifications@github.com> wrote:

Ya cheque y lo que pasa es que le memoria real esta llena pero dice que queda un marco disponible.

— Reply to this email directly or view it on GitHub https://github.com/ahardencoopers/prfOperativos/issues/25#issuecomment-102078456 .

ahardencoopers commented 9 years ago

Si.