include include struct queueNode int pid int cpuburst int w

#include<stdio.h>
#include<stdlib.h>
struct queueNode
{
   int pid;
   int cpuburst;
   int wt;
   struct queueNode *nextPtr;
};
   typedef struct queueNode QUEUENODE;
   typedef QUEUENODE *QUEUENODEPTR;
int main()
{
   QUEUENODEPTR headPtr=NULL, tailPtr=NULL;
   int pid, cpuburst;
   int i,n;
   printf(\"Enter no of Jobs: \");
   scanf(\"%d\",&n);
   for(i=1;i<=n;i++)
   {
       pid=rand( ) % 10 + 1;
       cpuburst=rand( ) % 30 + 2;
       QUEUENODEPTR newPtr;
       newPtr= malloc(sizeof(QUEUENODE));
       //Under Windows use newPtr=new QUEUENODE; to create a new node
       if(newPtr !=NULL)
       {
       newPtr->pid=pid;
       newPtr->cpuburst=cpuburst;
       newPtr->nextPtr=NULL;
       if(i==1)
       {
           headPtr=newPtr;
           tailPtr=newPtr;
       }
       else
       {
           tailPtr->nextPtr=newPtr;
           tailPtr=newPtr;
       }
       }
       else
       printf(\"No memory Available \ \");
       }

   if(headPtr==NULL)
       printf(\"The Queue is Empty: \ \");
   else
   {
       QUEUENODEPTR currentPtr=headPtr;
       printf(\"The Queue is \ \");
       int WT=0, prevcpuburst=0;
       float SUM=0;
       while(currentPtr != NULL)
       {
           WT=WT+prevcpuburst;
           currentPtr->wt=WT;
           printf(\"%d (%d) -->\",currentPtr->cpuburst,currentPtr->wt);
           prevcpuburst=currentPtr->cpuburst;
           currentPtr=currentPtr->nextPtr;
           SUM=SUM+WT;
       }
       printf(\"NULL \ \ \");
       printf(\"AWT=%f\ \",SUM/n);
   }

return 0;
}

Modif the above FCFS scheduler program to have the processes arrive at randomly generated time slots. Display the contents of the FCFS ready queue upon each process execution

Solution

// I have modified the code to Add Arrival time , For part (II) I have one question, Do I have to modify the Code
// which I wrote below or the One pasted Above, Please Comment so that I can do it accordingly

//Below is the code for part (I) , the process are arranged according to the waiting time in The Queue, the waiting time // for 1st Process will be 0 No matter at what time it arrives.

#include<stdio.h>
#include<stdlib.h>

struct queueNode
{
int arrivaltime;
int pid;
int cpuburst;
int wt;
struct queueNode *nextPtr;
};
typedef struct queueNode QUEUENODE;
typedef QUEUENODE *QUEUENODEPTR;
int main()
{
QUEUENODEPTR headPtr=NULL, tailPtr=NULL , temp=NULL;
int pid, cpuburst, arrivaltime;
int i,n;
printf(\"Enter no of Jobs: \");
scanf(\"%d\",&n);
for(i=1;i<=n;i++)
{
pid=rand( ) % 10 + 1;
arrivaltime=rand( ) % 5 + 1;
cpuburst=rand( ) % 30 + 2;
QUEUENODEPTR newPtr;
newPtr= malloc(sizeof(QUEUENODE));
//Under Windows use newPtr=new QUEUENODE; to create a new node
if(newPtr !=NULL)
{
newPtr->pid=pid;
newPtr->arrivaltime=arrivaltime;
newPtr->cpuburst=cpuburst;
newPtr->nextPtr=NULL;
if(i==1)
{
headPtr=newPtr;
tailPtr=newPtr;
}
else if (headPtr->arrivaltime >= newPtr->arrivaltime)
{

newPtr->nextPtr=headPtr;
headPtr = newPtr;
  
}
else
{
  
temp = headPtr;
for(;temp->nextPtr!=NULL &&
temp->nextPtr->arrivaltime < newPtr->arrivaltime; temp = temp->nextPtr);

newPtr->nextPtr = temp->nextPtr;
temp->nextPtr = newPtr;
}

}else{
printf(\"No memory Available \ \");
}
}   

if(headPtr==NULL)
printf(\"The Queue is Empty: \ \");
else
{
QUEUENODEPTR currentPtr=headPtr;
printf(\"The Queue is \ \");
int WT=0, prevcpuburst=0, arrivaltym=0;
float SUM=0;
while(currentPtr != NULL)
{
if(currentPtr==headPtr)
arrivaltym=0;
else
arrivaltym = currentPtr->arrivaltime;
WT=WT+prevcpuburst-arrivaltym;
currentPtr->wt=WT;
printf(\"%d (%d) (%d)-->\",currentPtr->cpuburst,currentPtr->wt, currentPtr->arrivaltime);
prevcpuburst=currentPtr->cpuburst;
currentPtr=currentPtr->nextPtr;
SUM=SUM+WT;
WT=WT+arrivaltym;
}
printf(\"NULL \ \ \");
printf(\"AWT=%f\ \",SUM/n);
}
  
return 0;
}

#include<stdio.h> #include<stdlib.h> struct queueNode { int pid; int cpuburst; int wt; struct queueNode *nextPtr; }; typedef struct queueNode QUEUEN
#include<stdio.h> #include<stdlib.h> struct queueNode { int pid; int cpuburst; int wt; struct queueNode *nextPtr; }; typedef struct queueNode QUEUEN
#include<stdio.h> #include<stdlib.h> struct queueNode { int pid; int cpuburst; int wt; struct queueNode *nextPtr; }; typedef struct queueNode QUEUEN

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site