Create a server process that acts as a memory manager that


Programming Assignment

Create a server process that acts as a Memory Manager that allocates valid memory requests (your server double checks that they are valid, meaning that a process cannot ask for more memory than is available, either to the entire system, or for the current run of this set of jobs) to frames for multiple clients as in Program #2. Every time a valid memory request is made, a PCB for that client is created and enqueued to the Ready Queue. When a memory request is made that is too large for the system memory, an error message is sent back to that client, and another client will be allowed to make a request.

When the Memory Manager declines a client request for memory because there are not enough remaining frames available, the server begins to act as CPU short-term scheduler for all of the processes that are now in Ready. The server manipulates the Ready Queue using a FCFS or a round-robin scheduling algorithm, depending on the choice of the server. The degree of multiprogramming will depend on the number of clients in the Ready Queue.

Each client sends the name of its private FIFO (or just the PID, depending on who creates the private FIFO), a memory request in terms of number of bytes, and a CPU burst to the server through the common FIFO. As before, the common FIFO is created and opened once, and receives one struct input per client, and will use the private FIFO to respond to the client. The server begins at time zero. A clock (simple counter) is incremented for the current client's entire CPU burst (FCFS) or for the system time quantum (round-robin). Each client will receive its assigned frames and its completion time through its private FIFO.

When all clients are finished, the server will calculate and report throughput, average turnaround time, and average wait time (time in Ready). You may calculate turnaround times and wait times as you wish as long as it is accurate...

Prepare your own test data. On paper, work through your data showing Gantt charts, turnaround times, and wait times. Use these same values for testing your program.

• Save your C program using Notepad, and name it with the .c extension.
• Input values and Output values with the screenshots of execution.
• Gantt charts which show results of a test run of your data. These may be hand-drawn, or computer-generated.


Attachment:- Program assignment.rar

Request for Solution File

Ask an Expert for Answer!!
Operating System: Create a server process that acts as a memory manager that
Reference No:- TGS01182522

Expected delivery within 24 Hours