Nachos multiprogramming

6

Click here to load reader

Transcript of Nachos multiprogramming

Page 1: Nachos multiprogramming

Implement Multiprogramming

2009年6月26日星期五

Page 2: Nachos multiprogramming

• virtualPage==physicalPage

• 兩個以上process的virtual page會對應到同一個physical page

• 分配的table數目不恰當2009年6月26日星期五

Page 3: Nachos multiprogramming

• addrspace.h 中 class AddrSpace 加入 static bool usedPhyPage[NumPhysPages];紀錄哪個 physical page 已被使用

2009年6月26日星期五

Page 4: Nachos multiprogramming

• 把給Process分配page table的動作改到Load去做

• 分配夠用的page table就好

• 把virtual page table 對應到沒有用過的physical page table,

2009年6月26日星期五

Page 5: Nachos multiprogramming

• 原本ReadAt直接放virtual address,該成對應的physical address

• pageTable[virtual address/page size].physicalPage + virtual address physical page offset

2009年6月26日星期五

Page 6: Nachos multiprogramming

• 把記憶體空間釋放出來

• Done

2009年6月26日星期五