Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

Ask C/C++ Expert


Home >> C/C++

Programming Assignment Lab 3: Virtual Memory Management

You are to implement a Virtual Memory Manager in C or C++ and submit the source code, which we will compile and run. Please provide a Makefile to compile your code and submit as a single tar, tar.Z, tar.bz2, zip file through NYU classes. The name of the file should be your N_OS_lab3.

In this lab/programming assignment you will implement/simulate the virtual memory operations that map a virtual address space comprised of virtual pages onto physical page frames. As the size of the virtual address space may exceed the number of physical pages of the simulated system (#frames will be an input parameter) paging needs to be implemented. Only one virtual address space will be considered in this assignment. The size of the virtual space is 64 virtual pages. The number of physical page frames varies and is specified by an option, but assume you have to support 64 frames (but no more).

The input to your program will be a sequence of "instructions" and optional comment line (shown in Listing 1). A comment line anywhere in the input file starts with '#' and should be completely ignored by your program and not count towards the instruction count. An instruction line is comprised of two integers, where the first number indicates whether the instruction is a read (value=0) or a write (value=1) operation and which virtual page is touched by that operation. You can assume that the input files are well formed as shown below, so fancy parsing is not required (but verify the virtual page index falls within [0..63]).

You need to represent the virtual address space as a single level pagetable. There is only one process, hence only one address space, hence pagetable (just to make your life easiers).

Each page table entry (pte) is comprised of the PRESENT, MODIFIED, REFERENCED and PAGEDOUT bits and an index to the physical frame (in case the pte is present). This information can and should be implemented as a single 32Gbit value or as a bit structures (likely easier), but can not be a structure of multiple integer values that collectively are larger than 32Gbit. (see  http://www.cs.cf.ac.uk/Dave/C/node13.html (BitFields) or 

http://www.catonmat.net/blog/bitGhacksGheaderGfile/ as an example).

During each instruction you simulate the behavior of the hardware and hence you must check that the page is present and if not locate a free frame, pageGin the page if the PAGEDOUT flag is set to the frame or zero the frame. Then the virtual page of the instruction needs to be mapped to the frame. You must maintain the PRESENT (aka valid), MODIFIED, REFERENCED and PAGEDOUT bits and the frame index in the pagetable's pte. The frame table is NOT updated by the simulated hardware. Only the pagetable entry (pte) is updated just as in real operating systems and hardware.

Initially all page frames are maintained in a free list with frameG0 being the first frame in the list and all pte's of the pagetable are zero'd (i.e. NOT PRESENT and NOT PAGEDOUT).

The page replacement should be generic and the algorithms should be special instances of the page replacement class to avoid "switch/case statements" in the simulation of instructions. Think of using object oriented programming and inheritance.

When a virtual page is replaced it must be first unmapped and then optionally paged out. While you are not effectively implementing these operations you still need to track them and create entries in the output (see below).

In "Physical" you base your decision on the status of the physical frames. Since you need access to the pteGs (access to the ref and modify bits which are only maintained in the pagetable) you should keep track of the inverse mapping (frame G> pte). This structure is known as the operating system's frametable, namely one entry per physical frame.  In "Virtual", you base the replacement decision on the virtual pages.

Assignment link - https://www.dropbox.com/s/hbren2rsxehnofr/Lab%20Assignment.rar?dl=0

C/C++, Programming

  • Category:- C/C++
  • Reference No.:- M92054023

Have any Question?


Related Questions in C/C++

Why do researcher drop the ewaste and where does it end

Why do researcher drop the ewaste and where does it end up?

Software development fundamentals assignment 1 -details amp

Software Development Fundamentals Assignment 1 - Details & Problems - In this assignment, you are required to answer the short questions, identify error in the code, give output of the code and develop three C# Console P ...

Question 1find the minimum and maximum of a list of numbers

Question: 1. Find the Minimum and Maximum of a List of Numbers: 10 points File: find_min_max.cpp Write a program that reads some number of integers from the user and finds the minimum and maximum numbers in this list. Th ...

What are the legal requirements with which websites must

What are the legal requirements with which websites must comply in order to meet the needs of persons with disabilities? Why is maximizing accessibility important to everyone?

Project - space race part a console Project - Space Race Part A: Console Implementation

Project - Space Race Part A: Console Implementation INTRODUCTION This assignment aims to give you a real problem-solving experience, similar to what you might encounter in the workplace. You have been hired to complete a ...

Assign ment - genetic algorithmin this assignment you will

ASSIGN MENT - GENETIC ALGORITHM In this assignment, you will use your C programming skills to build a simple Genetic Algorithm. DESCRIPTION OF THE PROGRAM - CORE REQUIREMENTS - REQ1: Command-line arguments The user of yo ...

1 implement the binary search tree bst in c using the node

1. Implement the Binary Search Tree (BST) in C++, using the Node class template provided below. Please read the provided helper methods in class BST, especially for deleteValue(), make sure you get a fully understanding ...

There are several ways to calculate the pulse width of a

There are several ways to calculate the pulse width of a digital input signal. One method is to directly read the input pin and another method (more efficient) is to use a timer and pin change interrupt. Function startTi ...

Assignment word matchingwhats a six-letter word that has an

Assignment: Word Matching What's a six-letter word that has an e as its first, third, and fifth letter? Can you find an anagram of pine grave. Or how about a word that starts and ends with ant (other than ant itself, of ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As