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

Sigmoid units-artificial intelligence, Sigmoid units - Artificial intellige...

Sigmoid units - Artificial intelligence Remember that the function inside units take as input the weighted sum, S, of the values coming from the units associated to it. The fun

Parallel virtual machine, Parallel Virtual Machine (PVM): PVM (Parallel...

Parallel Virtual Machine (PVM): PVM (Parallel Virtual Machine) is portable message passing programming system which is designed to link different heterogeneous host machines to

Find the generating function, Find the generating function to denote the nu...

Find the generating function to denote the number of ways the sum 9 can be acquired while 2 distinguishable fair dice are tossed and the first shows an even number and the second s

Describe the roles of association, Describe the roles of association No...

Describe the roles of association Note that each association has roles. For instance, in Figure we can see that two classes, Student and University, have their predefined roles

Explain the application of e-commerce in home banking, Explain the applicat...

Explain the application of E-Commerce in Home Banking. Home Banking: E-commerce is employed in Home Banking like one call or one click. Internet banking or online bank

Explain half-adder with truth-table and logic diagram, What is a half-adder...

What is a half-adder? Explain a half-adder with the help of truth-table and logic diagram. Ans. Half Adder: It is a logic circuit for the addition of two 1-bit numbers is term

Find two negative polarity items - artificial intelligence, This question c...

This question can be answered either with respect to English or with respect to a language other than English. (If you you are not a native speaker of the language of your choice,

Why is cloud computing important, Why is Cloud Computing important? The...

Why is Cloud Computing important? There are many implication of cloud technology, for both developers and end users. For developers, cloud computing gives increased amounts of

Phython, super ascii string checker

super ascii string checker

4 variable k-maps, 4-variable K-maps have 16 squares which arearranged in 4...

4-variable K-maps have 16 squares which arearranged in 4 columns and 4 rows.  Columns and rows are labeled with 2 variables. The rows are arranged so that C or D ch

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