1 / 15

Nachos Project Assignment 3

Nachos Project Assignment 3. Virtual Memory TA: 吳哲榮. Assignment. Test case /test/matmult.c /test/sort.c Both test programs are greater than whole memory. Goal – run this two programs concurrently, and get the correct result. Under RR scheduling. Hints. File system – swap space

tuckers
Download Presentation

Nachos Project Assignment 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nachos Project Assignment 3 Virtual Memory TA:吳哲榮

  2. Assignment • Test case • /test/matmult.c • /test/sort.c • Both test programs are greater than whole memory. • Goal– run this two programs concurrently, and get the correct result. • Under RR scheduling.

  3. Hints • File system – swap space • Add some table to help you record all the information. • PageTable • FrameTable • SwapTable • Catch PageFaultException • Construct your Virtual Memory Manager

  4. Hints • swap = new SynchDisk • All headers you need to see are in/filesys/ • Use this disk to be the swap space

  5. Hints • PageTable • one pagetable per process • FrameTable • Record every physical pageinformation • SwapTable • Record every sector’s information in swap.

  6. Hints • PageTable • decide your virtual page number • TranslationEntry{ unsigned int virtualPage; unsigned int physicalPage; bool valid; //whether in physical memory bool readOnly; bool use; //whether beenreferenced or modified bool dirty; //whether been modified }

  7. Hints • FrameTable • Each frame represent one physical page • FrameInfoEntry { bool valid; bool lock; unsigned int vpn; //which virtual page is in this frame AddrSpace *addrSpace; //which process is using this frame };

  8. Hints • SwapTable • The number of entries in swapTable is the same as swap sectors. • Each entry represent one frame in the disk. • FrameInfoEntry { bool valid; //whether entry been used bool lock; unsigned int vpn; //which virtual page is in this entry AddrSpace *addrSpace;//which process is using this entry }; • Access virtual memory in the disk by kernel->swap->WriteSectorand kernel->swap->ReadSector.

  9. Hints • Virtual Address Map to Physical Address • Physical Address = pageTable[(virtual address / PageSize)].physicalPage * PageSize + (virtual address % PageSize)

  10. Hints • Modify Addrspace::Load(char *fileName) • loadone page once • 1.acquire one page • When all physical memoryframes are occupied, please design a page replacement method to get a frame. • 2.Map virtual address to physical address • Invoke ‘executable->ReadAt(&(kernel->machine->mainMemory[physical address]), sizeToLoadNow, inFileAddr)’

  11. Virtual Memory Manager • Public: • int TranslateAddr(AddrSpace *space, int virtAddr); // translate virtual addressto physical address • bool AcquirePage(AddrSpace *space, unsigned int vpn); // get a frame • void ReleasePage(AddrSpace *space, unsigned int vpn); // release a page • void PageFaultHandler(void); // manage page fault

  12. PageFaultHandler • PageFaultHandler • Put the pages in swaptable into frametable. • When all physical memory frames are occupied, please design a page replacement method to get a frame.

  13. Assignment Requirements • Assignment Report (1/20 on the class) • How you modified Nachos to make it support virtual memory – important code segments • Test cases and demonstration to show the correctness of your design • Everything you consider important

  14. Hand in your reports. • Please compress following with zip. • source code • Final report • power-point file tar zcvf b99901000.tar.gz • E-mail your code and presentation files(report) to TA (b93901098@ntu.edu.tw). • Deadline: 2011/1/20 23:59

  15. Grading Policy • Correct Result 30% • Report 70%

More Related