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

The function code currently active, The Function code currently active is a...

The Function code currently active is ascertained by what Variable? The function code at present active in  a Program can be ascertained from the SY-UCOMM  Variable.

Handling a page in memory - computer architecture, Handling a Page: ...

Handling a Page: Typical page size today are 4 kb to 16 kb ,having tendency to use even larger page sized Organization that reduce the page fault rate are striking (comp

Error handling in hard disk, Error handling in Hard disk in computer archit...

Error handling in Hard disk in computer architecture : Modern drives also make widespread use of Error Correcting Codes (ECCs), specifically Reed-Solomon error correction.

Explain call and return statements, Q. Explain Call and Return Statements? ...

Q. Explain Call and Return Statements? CALL:       CALL X    Procedure Call to procedure/function named X   CALL instruction causes the following to happen:  1.  Decre

Show the foundation of ALU design, Q. Show the foundation of ALU design? ...

Q. Show the foundation of ALU design? The foundation of ALU design starts with micro-operation implementation. Thus let's first explain how bus can be used for Data transfer m

Define linear probing with respect to hashing technique, Define Linear Pro...

Define Linear Probing Linear Probing:  The easiest way to resolve a collision is to begin with the hash address and do a sequential search by the table for an empty location.

Ldb need not be defined in the abap/4 dictionary, All nodes in the structur...

All nodes in the structure of LDB need not be defined in the ABAP/4 Dictionary False. One has to describe all nodes in the Dictionary or single has to select all nodes that a

DSP, Assignment of Analog to digital Ssignal Processing

Assignment of Analog to digital Ssignal Processing

Explain use of mpi functions with an example, Q. Explain use of MPI functio...

Q. Explain use of MPI functions with an example? include int main(int argc, char **argv) { int i, tmp, sum, s, r, N, x[100]; MPI_Init(&argc, &argv); MPI_Comm_size

What are the risks involved in electronic payment systems, What are the ris...

What are the risks involved in Electronic Payment Systems?    From the customer's perspective: Dishonest merchants or financial service providers Stolen payment

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