示例#1
0
 /**
  * Frees up main memory occupied by the task. Then unreserves the freed pages, if
  * necessary. @OSPProject Memory
  */
 public void do_deallocateMemory() {
   int s = MMU.getFrameTableSize();
   for (int i = 0; i < s; i++) {
     FrameTableEntry frame = MMU.getFrame(i);
     PageTableEntry page = frame.getPage();
     if (page != null && getTask() == page.getTask()) {
       frame.setPage(null);
       frame.setDirty(false);
       frame.setReferenced(false);
       if (frame.getReserved() == getTask()) {
         frame.setUnreserved(getTask());
       }
     }
   }
 }