Multi-threaded concurrency programming with threads, Computer Engineering

Assignment Help:

Your task is to implement a memory manager that manages page reads and writes from multiple client threads. In the first programming task the memory manager keeps all the pages in a memory buffer large enough to fit all the pages and the server processes a list of requests and sends them to clients to log. In the second programming task a user is allowed to specify a memory buffer size limit. The memory manager needs to place some of the pages on disk in order to cope with the buffer size limit. To do this the memory manager uses the least recently used (LRU) page replacement algorithm in order to choose which page to evict from memory when the memory is full. In the third task you extend the solution for task 1 so that requests are sent from the client to the server instead of all the requests originating in the server.

Please look at the AssignmentDiagram.ppt file in the assignment folder to gain a better understanding of the assignment requirements. Sample input and output files are also provided in the SampleFilesForTasks1to3.zip file.

Please do not use sleep anywhere inside your code. Or something that simulates a sleep system call. Eg. while (1) { }. However you are allowed to use the pause(), pthread_cond_wait() or pthread_cond_timedwait() system calls and their Java equivalents to block a thread or process.

Please submit separate source files for each of the three tasks.


Related Discussions:- Multi-threaded concurrency programming with threads

Dialog-task updates, Dialog-task updates are Synchronous updates.

Dialog-task updates are Synchronous updates.

Line of code of assembly language, In how many ways line of code of assembl...

In how many ways line of code of assembly language can be divided? A line of code of an assembly language program can be divided in three columns called as fields. The fields d

Using which ARQ, Using               ARQ, a sending modem must wait for a ...

Using               ARQ, a sending modem must wait for a return ACK for each sent block before sending the next block. (A)  discrete                                      (B)

How swapping increase overheads of the operating systems, Does swapping inc...

Does swapping increase the Operating Systems' overheads? Justify your answer. A process can be swapped out temporarily of memory to a backing store and after that brought back

Can matchcode object contain ids with different update types, Can matchcode...

Can matchcode object contain Ids with different update types? Yes.

What is big endian and little endian format, What is big endian and little ...

What is big endian and little endian format? The name big endian is used when lower byte addresses are used for the more important of the word. The name little endian is used f

C++ language, Write a program to find the area under the curve y = f(x) bet...

Write a program to find the area under the curve y = f(x) between x = a and x = b, integrate y = f(x) between the limits of a and b. The area under a curve between two points can b

Which one memory requires refreshing, Which of following requires refreshin...

Which of following requires refreshing SRAM., DRAM., ROM. or EPROM. ? Ans. DRAM. requires refreshing.

What are the 2 ieee standards for floating point numbers, What are the 2 IE...

What are the 2 IEEE standards for floating point numbers? 1.single 2.double

Memory that can be used in a 16-bit computer, What is the maximum size of t...

What is the maximum size of the memory that can be used in a 16-bit computer and 32 bit computer? The maximum size of the memory that can be used in a 16-bit computer is 2 memo

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