memorymanager.cc
来自「linux的例子,就是下载后到自己的机子上去运行」· CC 代码 · 共 40 行
CC
40 行
#include "system.h"#include <strings.h>MemoryManager::MemoryManager(){ memorymap=new BitMap(NumPhysPages);}MemoryManager::~MemoryManager(){ int i; for(i=0;i<NumPhysPages;i++) memorymap->Clear(i); delete memorymap;}boolMemoryManager::Assign(int page,TranslationEntry *pageTable){ int i,j=0,k; if(page>(k = memorymap->NumClear())) return false; for(i=0;i<page;i++){ j=memorymap->Find(); pageTable[i].virtualPage=i; pageTable[i].physicalPage=j; pageTable[i].valid=TRUE; pageTable[i].use=FALSE; pageTable[i].dirty=FALSE; pageTable[i].readOnly=FALSE; bzero(machine->mainMemory+j,PageSize); } k = memorymap->NumClear(); return true;}voidMemoryManager::Release(int page,TranslationEntry *pageTable){ int i; for(i=0;i<page;i++) memorymap->Clear(pageTable[i].physicalPage);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?