Question: I already did the code for this lab. It's attached below. But I have to add the total waste. How do I do that? #include

 I already did the code for this lab. It's attached below.

I already did the code for this lab. It's attached below. But I have to add the total waste. How do I do that?

#include

#include

using namespace std;

int SizeOfMem(int memSize);

int MemPartitions(int numOfPart);

void SizeOfPartition(int*& sizeOfPart, int& memLeft, int& memSize, int& numOfPart);

void JobInfo(int*& jobSize, string*& jobName, int numOfPart);

void FirstFit(string*& jobName, int*& jobSize, int*& sizeOfPart, int numOfPart);

int main()

{

int memSize = 0, numOfPart = 0, memLeft; //Total size of memory, number of partitions, memory left after each partition is declared

memSize = SizeOfMem(memSize); //allows user to input the total size of memory

memLeft = memSize;

numOfPart = MemPartitions(numOfPart); //allows user to input the number of partitions needed

string *jobName = new string[numOfPart]; /ame of jobs dynamic array

int *sizeOfPart = new int[numOfPart]; //size of each partition dyn array

int *jobSize = new int[numOfPart]; //size of each job dyn array

SizeOfPartition(sizeOfPart, memLeft, memSize, numOfPart); //allows user to input size of each partition

JobInfo(jobSize, jobName, numOfPart); //allows user to input information regarding each job

FirstFit(jobName, jobSize, sizeOfPart, numOfPart); //first fit method executed

delete[] sizeOfPart;

delete[] jobName;

delete[] jobSize;

}

int SizeOfMem(int memSize) //prompts memory size

{

cout

cin >> memSize;

return memSize;

}

int MemPartitions(int numOfPart) //prompts number of partitions

{

cout

cin >> numOfPart;

if (numOfPart > 5)

{

cout

MemPartitions(numOfPart);

}

else

return numOfPart;

}

void SizeOfPartition(int*& sizeOfPart, int& memLeft, int& memSize, int& numOfPart) //prompts size of each partition, dispays total memory left

{

for (int i = 0; i

{

cout

cin >> sizeOfPart[i];

memLeft = memLeft - sizeOfPart[i];

if (memLeft

{

cout

main();

}

else if (memLeft == 0)

{

cout

cout

for (int j = i + 1; j

{

sizeOfPart[j] = 0;

cout

cout

}

break;

}

cout

cout

}

}

void JobInfo(int*& jobSize, string*& jobName, int numOfPart) //prompts job information

{

for (int i = 0; i

{

cout

cin >> jobName[i];

cout

cin >> jobSize[i];

cout

}

}

void FirstFit(string*& jobName, int*& jobSize, int*& sizeOfPart, int numOfPart) //executes first fit method

{

bool status; //status of each job (if Run or Wait)

bool *fullPart = new bool [numOfPart]; //status of each partition (empty or not)

for (int k = 0; k

fullPart[k] = false;

for (int i = 0; i

{

status = false;

for (int j = 0; j

{

if (jobSize[i]

{

cout

cout

cout

fullPart[j] = true;

status = true;

break;

}

}

if (status != true) //if job has to wait, display wait

cout

}

delete[] fullPart;

}

Objectives: Learn how First-Fit algorithm work in memory management. - Learn how to implement First-Fit algorithm in C++. Description: Write a C++ program that will implement First-fit, memory management algorithm. Your program must do the following: Input the memory size and the number and sizes of all the partitions (limit the max number of the partitions to 5). Input the job list that includes: 1. 2. Job's name Job's size For each job you should create in your program a data structure that will include the job status (Run/Wait) and the partition number (if the job was allocated). 3. 4. Calculate and display initial memory allocation. 5. Display the memory waste and the jobs that could not be allocated and have to wait. Code Quality Requirement: 1. Do not put every single logic in the main() function 2. You must use functions to separate your program's logic into smaller readable pieces. 3. You must use descriptive variable names. Don't use int b 5. What's b?! It's okay to use i or j or any other letters for loops (only loops) 4. You must write meaningful comments to explain your code

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!