olá
preciso fazer um trabalho de sistemas operacionais em que o programa lê um arquivo .txt de referências e conta os acertos e faltas de acordo com cada algoritmo de troca de páginas (FIFO, Segunda chance, etc…). Já tentei de tudo quanto é jeito, e nada funciona :? o programa lê o arquivo e coloca as referências em um vetor de Strings, mas o método FIFO só está contando as faltas, e ainda assim não está contando certo.
esse é o código do fifo:
[code]public class Nucleo {
int i,j;
Pagina pag, pagx;
public String fifo (int frame, Vector arquivo) {
int acertos = 0, faltas = 0, contFrame = 0;
LinkedList paginas = new LinkedList ();
LinkedList copiaPaginas = new LinkedList ();
String obj;
copiaPaginas.addAll(paginas);
for (i=0;i<arquivo.size();i++) {
pag = new Pagina(arquivo.elementAt(i).substring(0, arquivo.elementAt(i).length()-1));
if(contFrame < frame) {
//se a memória nao estiver cheia
Iterator ite = copiaPaginas.iterator();
if (ite.hasNext()) {
obj = ite.next().toString();
pagx = new Pagina (obj);
if (pagx.getP().equals(pag.getP().toString())) //verificar se a próxima página já existe na memória
acertos++;
else {
faltas++;
contFrame++;
paginas.add(pag);
}
}
else {
faltas++;
contFrame++;
paginas.add(pag);
}
}
else { //se a memoria estiver cheia
Iterator ite = copiaPaginas.iterator();
while (ite.hasNext()) {
obj = ite.next().toString();
pagx = new Pagina (obj);
if (pagx.getP().equals(pag.getP().toString())) //verificar se a próxima página já existe na memória
acertos++;
else
faltas++;
pag = paginas.remove();
paginas.add(pag);
}
}
}
String res = “”+acertos;
return res;
}[/code]
alguém poderia me ajudar a ver onde está o erro?