Как я могу настроить эту функцию на FIFO и LRU?

У меня возникли проблемы с пониманием FIFO и LRU, и я пытаюсь изменить свой код на них.

Вот мой метод pageFault по умолчанию:

private void pageFault(int pageNumber){
  pageFaults++;

  try {
    pageFile.seek(pageNumber*PageSize);
    for(int b=0;b<PageSize;b++)
        RAM[freePos*PageSize+b]=pageFile.readByte();
  } catch (IOException ex) {
    Logger.getLogger(MemoryManager.class.getName()).log(Level.SEVERE, null, ex);
  }

  pageTable[pageNumber] = freePos; 
  freePos++; 
}

Метод работает отлично, но я не уверен, как мне сделать это FIFO и LRU, например:

private void pageFaultFIFO(int pageNumber);

private void pageFaultLRU(int pageNumber);


person Erik Eriksson    schedule 28.10.2014    source источник


Ответы (1)


Давайте проясним ваше понимание FIFO и LRU.

FIFO: the operating system keeps track of all the pages in memory in a queue, with the most recent arrival at the back, and the oldest arrival in front. When a page needs to be replaced, the page at the front of the queue (the oldest page) is selected. While FIFO is cheap and intuitive, it performs poorly in practical application.

eg. if you have 10 shoes with you and your mom says trash out any 5, then you will choose the oldest 5 to trash out.


LRU: LRU works on the idea that pages that have been most heavily used in the past few instructions are most likely to be used heavily in the next few instructions too.

eg. here, if you have 10 shoes with you and your mom says trash out any 5, then you will chose those 5 shoes to trash out which you use less frequently.

person nitish005    schedule 28.10.2014
comment
Спасибо, что разъяснили мне это. - person Erik Eriksson; 28.10.2014
comment
Что было бы вашим лучшим предложением сейчас? - person Erik Eriksson; 28.10.2014
comment
в LRU нам нужен механизм, чтобы знать, какая страница реже используется. Я не реализовал это раньше. - person nitish005; 28.10.2014
comment
см. эту ссылку нажмите здесь - person nitish005; 28.10.2014
comment
Что ты пишешь? Я не реализовал это раньше? Что ты имеешь в виду? - person Erik Eriksson; 28.10.2014
comment
Давайте продолжим обсуждение в чате. - person Erik Eriksson; 29.10.2014