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

What does a lock object involve, What does a lock object involve? The t...

What does a lock object involve? The tables. The lock argument.

Instruction set for ia - 64 architecture, Q. Instruction set for IA - 64 ar...

Q. Instruction set for IA - 64 architecture? Instruction set: Architecture gives instructions for multimedia operations as well as floating point operations. Itanium supports

Machine centred versus human centred, Machine Centred versus human Centred ...

Machine Centred versus human Centred The discussion here is based on the difference in approach to the design of the work system when we prioritise either the needs of the mac

Payroll pc, Purpose: Payroll processing and storage for the client database...

Purpose: Payroll processing and storage for the client database (accessed from the Reception-PCover the network),word processing (reports etc.) and spreadsheets. Software: . • W

Basic working of semiconductors, Q. Basic working of Semiconductors? Se...

Q. Basic working of Semiconductors? Semiconductors are crystalline solid materials whose resistivities have values between those of conductors and insulators. Conductivity rang

Create a social network application, A software development company wants t...

A software development company wants to create a social network application where users can post brief audio messages giving their thoughts. Each user of the application will ha

Explain the differences between macros and subroutines, Explain the differe...

Explain the differences between macros and subroutines. Macros Vs Subroutines (i) Macros are pre-processor directives which are processed before the source program is pass

Design a 4:1 mux in verilog, Design a 4:1 mux in Verilog   Mult...

Design a 4:1 mux in Verilog   Multiple styles of coding. e.g. Using if-else statements if(sel_1 == 0 && sel_0 == 0) output = I0; else if(sel_1 == 0 && sel_0 ==

Time complexity, Take a look at the code and try to understand the logic, p...

Take a look at the code and try to understand the logic, particularly, the way scrambled words are disambiguated, i.e.., whether they are matched successfully against a correct wor

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