Given the partial code, encode, complete, compile, debug and run the program. The language is C++

Business, Finance, Economics, Accounting, Operations Management, Computer Science, Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Algebra, Precalculus, Statistics and Probabilty, Advanced Math, Physics, Chemistry, Biology, Nursing, Psychology, Certifications, Tests, Prep, and more.
Post Reply
answerhappygod
Site Admin
Posts: 899604
Joined: Mon Aug 02, 2021 8:13 am

Given the partial code, encode, complete, compile, debug and run the program. The language is C++

Post by answerhappygod »

Given the partial code, encode, complete, compile, debug
and run the program.
The language is C++
Given The Partial Code Encode Complete Compile Debug And Run The Program The Language Is C 1
Given The Partial Code Encode Complete Compile Debug And Run The Program The Language Is C 1 (58.74 KiB) Viewed 51 times
#include"stdafx.h" #include<stdio.h> #include<conio.h>. #include<string.h> #include<stdlib.h> #include<iostream> usingnamespacestd; struct alloclist { char *startAlloc; char *endAlloc; intfk_pid; alloclist *nxt; }; Struct procList { int pid; int jobStatus; char *startProc; char *endProc; procList *nxt; }; boolinitProc (proclist *&, int*, int); boolinitAlloc(allocList*&, int*,int); intdoFirstFit(proclist *, alloclist *); intcmptFragmentation (procList*, alloclist*); int search(procList*, int); bool reset(procList*, alloclist*); int _tmain(intargc, _TCHAR* argv[]) { intarrMemory[ ]={100, 500, 200, 300, 600}; intarrJobs [ ]={212, 17, 112, 426, 500}; allocList *ptrAllocStart=NULL; procList *ptrProcStart=NULL; initProc(ptr ProcStart, arrJobs, (sizeof(arrJobs/sizeof(int))); initAlloc(ptrAllocStart, arrMemory, (sizeof(arrMemory)/sizeof(int))); cout<<"Memory Block:"<<endl<<"Block\tSpace"<<endl; int i; for(i=0; i<sizeof(arrMemory) /sizeof(int); i++) cout<<i+1<<"\t"<<arrMemory<<endl; cout<<"\nJobs:"<<endl<<"Job\tSize"<<endl; for(i=0; i<sizeof(arrJobs)/sizeof(int); i++)

intjobLoaded=0; int fragmentation=0; jobLoaded=doFirstFit(ptrProcStart, ptrAllocStart); fragmentation=cmptFragmentation (pt ProcStart, ptrAllocStart); alloclist *memtrav=ptrAllocStart; getch(); return 0; } boolinitProc (proclist *&ptrProcStart, int* ptrArrProc, int length) { int i; proclist *ptr Proc-ptr ProcStart; for(i=0; i<length; i++) { if(ptr Proc != NULL) { ptr Proc->nxt=newprocList; ptr Proc ptrProc->nxt; ptrProc->startProc=(char*) malloc(*(ptrArrProc+i)); ptrProc->endProc-ptrProc->startProc + *(ptrArrProc+i); memset(ptrProc->startProc, 'a'+i,*(ptrArrProc+i)); ptrProc-jobStatus=0; ptrProc->pid=i; ptr Proc->nxt=NULL; } else { ptr Proc=newprocList; ptr Proc->startProc=(char*) malloc(*(ptrArrproc+i)); ptr Proc->endProc=ptrProc->startProc + *(ptrArrProc+i); memset(ptrProc->startProc, 'a'+i, *(ptrArrProc+i)); ptrProc->jobStatus=0; ptrProc->pid=i; ptrProc->nxt=NULL; ptr ProcStart=ptr Proc; } } return true; } boolinitAlloc (allocList*&ptrAllocstart, int *ptrArrAlloc, int length) { int i; alloclist *ptrAlloc=ptrAllocStart; for(i=0; i<length; i++) { if(ptrAlloc !=NULL)

cout<<"\n\nFirst Fit:\nMemory Block\tSize\t Job\tInternal " <<" Fragmentation\n"; int i=0; while(memory! =NULL) { i++; cout<<"\t"«<i<<"\t"<<memory->endAlloc-memory->startAlloc<<"\t" <<memory->fk_pid<<"\t" <<memory->endAlloc-memory->startAlloc-search(proc, memory->fk_pid-1) <<endl; memory=memory->nxt; } return ; } int search(proclist* job, int id) { int size; while( job!=NULL) { if(job->pid=wid) { size=(int)job->endProc-(int)job->startProc; break; ) job=job->nxt; return size; } intcmptFragmentation (procList* jobs, alloclist* mem) { alloclist *memtrav, *temp; proclist *jobtrav; jobtrav-jobs; memtrav=mem; int freespace=8, memsize, jobsize; int i=0; while(memtrav->nxt !=NULL) { if(memtrav->nxt->fk_pidur) { freespace+=(memtrav->nxt->endAlloc-memtrav->nxt->startAlloc); tempamemtrav->nxt; memtrav->nxt-memtrav->nxt->nxt; delete tempi } memtrav=memtrav->nxt; }

if(memtrav->fk_pid==0) { freespace+= (memtrav->endAlloc-memtrav->startAlloc); memtrav=memtrav->nxt; } memtrav=mem; while(memtrav!=NULL) { jobsize=search(jobs, memtrav->fk_pid-1); memsize=memtrav->endAlloc-memtrav->startAlloc; if(memtrav->fk_pid!=0) { memtrav->endAlloc=memtrav->startAlloc+jobsize; } freespace+=(memsize-jobsize); memtrav=memtrav->nxt; } memtrav=mem; while(memtrav!=NULL) { if(memtrav->nxt==NULL) { memtrav->nxt=newalloclist; memtrav=memtrav->nxt; memtrav->startAlloc=(char*)malloc(freespace); memtrav->endAlloc=memtrav->startAlloc+freespace; memset(memtrav->startAlloc, 0, freespace); memtrav->fk_pid=0; memtrav->nxt=NULL; break; } memtrav=memtrav->nxt; } memtrav=mem; cout<<endl<<endl<<"Defragmentation\nMemory <<"Block\tSize\tJob\tFreeSpace\n"; while(memtrav!=NULL) { i++; cout<<"\t"«<i<<"\t"<<memtrav->endAlloc-memtrav->startAlloc <<"\t"<<memtrav->fk_pid <<"\t"<<memtrav->endAlloc-memtrav->startAlloc- search(jobs,memtrav->fk_pid-1)<<endl; memtrav=memtrav->nxt; } while(jobtrav!=NULL) {

if(jobtrav->jobStatus==0) { doFirstFit(jobs, mem); cmptFragmentation (jobs, mem); } jobtrav=jobtrav->nxt; } return 0; } bool reset(proclist* jobs, alloclist* mem) { proclist* tempj-jobs;; alloclist* tempa=mem; while( jobs->nxt!=NULL) { jobs-jobs->nxt; free (tempj); tempj-jobs; } free(tempj); while(mem->nxt!=NULL) { mem=mem->nxt; free (tempa); tempa=mem; } free(tempa); return true; }
Join a community of subject matter experts. Register for FREE to view solutions, replies, and use search function. Request answer by replying!
Post Reply