Design a memory buffer of limited size, Computer Engineering

Assignment Help:

Extend task 1 so that it now supports a memory buffer of limited size. Provide the same functionality as task 1 except now make the server work with a limited buffer size.

Like task 1, the server is the only thread that can access the buffer directly.

1. Allow user to specify a 2nd command line argument which specifies the buffer size in terms of the number of pages. Let that number be B.

2. The server reads the first B pages from the init_buffer_pages.dat file into the buffer. It then copies all the pages into a store file. You can organize the store file anyway you want as long as it stores all pages including those not in memory. I recommend that you use a binary file to do this since that allows you to do random seeks on the file. Assume all pages have a fixed size of 4096 characters.

3. When a page request for a non-buffer resident page occurs one page that is currently in the buffer must be evicted from memory to make room for the newly requested page to be loaded from the store file. The page replacement policy you need to implement is the least recently used (LRU) policy. Please read page 489 of the textbook for an explanation of the LRU policy.

4. Once a page to be evicted has been chosen then the program must decide whether it should be flushed to the store file or discarded.
a) If the page has been dirtied (modified) since its last load from disk then it should be flush to the store file on disk.
b) Otherwise it should be discarded without flushing to the store file.

5 The server needs to keep a log of the sequence of page evictions (pages either discarded or flushed to disk) in a log file called "server_log.dat". The entries in the log file are in the order that they were evicted. Looking at this file I will be able to tell if you have implemented the LRU page-replacement policy correctly.

The server_log.dat file should be in the following format:


...
...

For example:

20 abscde
10 KJlkljf
29 jjkjkKKH


Related Discussions:- Design a memory buffer of limited size

Illustration of cache size of a system, Q. Illustration of cache size of a ...

Q. Illustration of cache size of a system? Cache Size: Cache memory is very costly as compared to main memory and therefore its size is generally kept very small.  It has bee

Purpose of pointer phrase in string command, The Purpose of POINTER phrase ...

The Purpose of POINTER phrase is to verify the leftmost position within receiving field where the first transferred character will be kept

Is it possible to change the color and font of the sheet tab, Yes we can mo...

Yes we can modify the color of sheet tabs. By right clicking on sheet tabs and you will get option change color but you didn't find any option to modify the font of sheet tabs.

Explain the synchronous-transmission, A control character is sent at the be...

A control character is sent at the beginning as well as at the end of every block in the synchronous-transmission in order to  (A) Synchronize the clock of transmitter and rece

Numbers square, Your professor wants you to fill a two-dimensional N by N m...

Your professor wants you to fill a two-dimensional N by N matrix with some numbers by following a specific pattern. According to his explanation as in the figure below, you have to

How to write good assembly programs, Preparation of writing the program ...

Preparation of writing the program 1.  Write an algorithm for your program closer to assembly language. For instance the algorithm for preceding program will be: get NUM1

How many voice channel have a master group, A Master group consists of? ...

A Master group consists of? A master group have 300 voice channels.

Name the widely used language processor development tool, Name the widely u...

Name the widely used Language Processor Development Tools ( LPDTs). Widely used Language processor development tools are: Lex - A Lexical Analyzer Generator Lex assi

What is DRAM and what do you understand by DRAM refreshing, What is DRAM? ...

What is DRAM? What do you understand by DRAM refreshing? With the help of a block diagram, demonstrate how DRAM can be interfaced to a microprocessor. Dynamic RAM (DRAM) is bas

What is a verification point?, A verification point is a point in a script ...

A verification point is a point in a script that you make to confirm the state of an object across builds of the application-under-test.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd