Nachos Project Assignment 3 - PowerPoint PPT Presentation

About This Presentation
Title:

Nachos Project Assignment 3

Description:

Nachos Project Assignment 3 Virtual Memory TA: Assignment Test case /test/matmult.c /test/sort.c Both test programs are greater than whole memory. – PowerPoint PPT presentation

Number of Views:131
Avg rating:3.0/5.0
Slides: 16
Provided by: Mond92
Category:

less

Transcript and Presenter's Notes

Title: Nachos Project Assignment 3


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 page information
  • SwapTable
  • Record every sectors 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 been referenced 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-gtswap-gtWriteSector and kernel-gtswap-gtReadSe
    ctor.

9
Hints
  • Virtual Address Map to Physical Address
  • Physical Address pageTable(virtual address /
    PageSize).physicalPage PageSize (virtual
    address PageSize)

10
Hints
  • Modify AddrspaceLoad(char fileName)
  • load one page once
  • 1.acquire one page
  • When all physical memory frames are occupied,
    please design a page replacement method to get a
    frame.
  • 2.Map virtual address to physical address
  • Invoke executable-gtReadAt((kernel-gtmachine-gtmain
    Memoryphysical address),
    sizeToLoadNow,
    inFileAddr)

11
Virtual Memory Manager
  • Public
  • int TranslateAddr(AddrSpace space, int
    virtAddr)
  • // translate virtual address to 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_at_ntu.edu.tw).
  • Deadline 2011/1/20 2359

15
Grading Policy
  • Correct Result 30
  • Report 70
Write a Comment
User Comments (0)
About PowerShow.com