/*
* Round_Robin_Alg.c
*
* Created on: 13.01.2015
* Author: karthikeyan dharmalingam */
# include "main_header.h"
//Declaration part
int nRound_Robin_Algorithm_fun(void);
// Definition part
int nRound_Robin_Algorithm_fun()
{
printf("\nInside Round robin algorithm \n");
//Variale declaration
int nQuantumTime; // To ge the quantum or slice number from user
int nProcess,nRemainingProcess; // To ge the number of process
int nArrivalTime[255], nBurstTime[255], nRemainingTime[255]; //To get the arrival, burst,and remaing time of process.
int nLoop, nTime, nFlagComplete;
printf("\nEnter the number of process \n");
scanf("%d",&nProcess); //To get the user input for number of process
//To update remaining process count to complete all process
nRemainingProcess = nProcess;
printf("Enter the Quantum/Slice size 1 <--> 255\n");
scanf("%d",&nQuantumTime); // To get the slice value from user
//To get the individual timing information on each process.
for (nLoop = 0; nLoop < nProcess; nLoop++ )
{
printf("Enter the arrival and Burst timing for process: P%d: ",nLoop+1);
scanf("%d",&nArrivalTime[nLoop]);
scanf("%d",&nBurstTime[nLoop]);
nRemainingTime[nLoop] = nBurstTime[nLoop];
}
printf("\nSuccessfully input received from user\n");
//Round robin Agorithm to schedule all the process.
for (nLoop = 0, nTime = 0; nRemainingProcess != 0;)
{
//Check for remaining time greater than or equals to slice.
if(nRemainingTime[nLoop] <= nQuantumTime && nRemainingTime[nLoop] > 0 )
{
nTime = nTime + nRemainingTime[nLoop];
nRemainingTime[nLoop] = 0;
nFlagComplete = 1; //Set the flag to notice the completion
printf("\nInside IF \n");
}
//Check for remaining time lesser than slice.
else if(nRemainingTime[nLoop] > 0)
{
nTime = nTime + nQuantumTime;
nRemainingTime[nLoop] = nRemainingTime[nLoop] - nQuantumTime;
printf("\nInside ELSE IF \n");
}
//process compeleted status
if(nRemainingTime[nLoop] == 0 && nFlagComplete == 1)
{
nRemainingProcess--; //Reduce number of process by one.
printf("P[%d]\t|\t%d\t|\t%d\n",nLoop+1,nTime-nArrivalTime[nLoop],nTime-nArrivalTime[nLoop]-nBurstTime[nLoop]);
//Remove flag for uncompleted process
nFlagComplete = 0;
}
if(nLoop == nProcess - 1)
{
nLoop = 0;
printf("\nInside I \n");
}
else if(nArrivalTime[nLoop] <= nTime)
{
nLoop++;
printf("\nInside II \n");
}else
{
printf("\nInside III \n");
nLoop = 0;
}
}
return 0;
}-->
* Round_Robin_Alg.c
*
* Created on: 13.01.2015
* Author: karthikeyan dharmalingam */
# include "main_header.h"
//Declaration part
int nRound_Robin_Algorithm_fun(void);
// Definition part
int nRound_Robin_Algorithm_fun()
{
printf("\nInside Round robin algorithm \n");
//Variale declaration
int nQuantumTime; // To ge the quantum or slice number from user
int nProcess,nRemainingProcess; // To ge the number of process
int nArrivalTime[255], nBurstTime[255], nRemainingTime[255]; //To get the arrival, burst,and remaing time of process.
int nLoop, nTime, nFlagComplete;
printf("\nEnter the number of process \n");
scanf("%d",&nProcess); //To get the user input for number of process
//To update remaining process count to complete all process
nRemainingProcess = nProcess;
printf("Enter the Quantum/Slice size 1 <--> 255\n");
scanf("%d",&nQuantumTime); // To get the slice value from user
//To get the individual timing information on each process.
for (nLoop = 0; nLoop < nProcess; nLoop++ )
{
printf("Enter the arrival and Burst timing for process: P%d: ",nLoop+1);
scanf("%d",&nArrivalTime[nLoop]);
scanf("%d",&nBurstTime[nLoop]);
nRemainingTime[nLoop] = nBurstTime[nLoop];
}
printf("\nSuccessfully input received from user\n");
//Round robin Agorithm to schedule all the process.
for (nLoop = 0, nTime = 0; nRemainingProcess != 0;)
{
//Check for remaining time greater than or equals to slice.
if(nRemainingTime[nLoop] <= nQuantumTime && nRemainingTime[nLoop] > 0 )
{
nTime = nTime + nRemainingTime[nLoop];
nRemainingTime[nLoop] = 0;
nFlagComplete = 1; //Set the flag to notice the completion
printf("\nInside IF \n");
}
//Check for remaining time lesser than slice.
else if(nRemainingTime[nLoop] > 0)
{
nTime = nTime + nQuantumTime;
nRemainingTime[nLoop] = nRemainingTime[nLoop] - nQuantumTime;
printf("\nInside ELSE IF \n");
}
//process compeleted status
if(nRemainingTime[nLoop] == 0 && nFlagComplete == 1)
{
nRemainingProcess--; //Reduce number of process by one.
printf("P[%d]\t|\t%d\t|\t%d\n",nLoop+1,nTime-nArrivalTime[nLoop],nTime-nArrivalTime[nLoop]-nBurstTime[nLoop]);
//Remove flag for uncompleted process
nFlagComplete = 0;
}
if(nLoop == nProcess - 1)
{
nLoop = 0;
printf("\nInside I \n");
}
else if(nArrivalTime[nLoop] <= nTime)
{
nLoop++;
printf("\nInside II \n");
}else
{
printf("\nInside III \n");
nLoop = 0;
}
}
return 0;
}-->
No comments:
Post a Comment