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. 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
Get step-by-step solutions from verified subject matter experts
