C program for Round Robin CPU Scheduling Algorithm

INPUT :
enter the process name : aaa
enter the processing time : 4
enter the process name : bbb
enter the processing time : 3
enter the process name : ccc
enter the processing time : 2
enter the process name : ddd
enter the processing time : 5
enter the process name : eee
enter the processing time : 1

OUTPUT :

p_name p_time w_time
aaa 4 9
bbb 3 3
ccc 2 6
ddd 5 10
eee 1 11

total waiting time : 39
average waiting time : 7.8000

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<string.h>
void main()
{
char p[10][5];
int et[10],wt[10],timer=3,count,pt[10],rt,i,j,totwt=0,t,n=5,found=0,m;
float avgwt;
clrscr();
for(i=0;i<n;i++)
{
printf("enter the process name : ");
scanf("%s",&p[i]);
printf("enter the processing time : ");
scanf("%d",&pt[i]);
}
m=n;
wt[0]=0;
i=0;
do
{
if(pt[i]>timer)
{
rt=pt[i]-timer;
strcpy(p[n],p[i]);
pt[n]=rt;
et[i]=timer;
n++;
}
else
{
et[i]=pt[i];
}
i++;
wt[i]=wt[i-1]+et[i-1];
}while(i<n);
 
count=0;
for(i=0;i<m;i++)
{
for(j=i+1;j<=n;j++)
{
if(strcmp(p[i],p[j])==0)
{
count++;
found=j;
}
}
if(found!=0)
{
 
wt[i]=wt[found]-(count*timer);
count=0;
found=0;
}
}
for(i=0;i<m;i++)
{
totwt+=wt[i];
}
avgwt=(float)totwt/m;
for(i=0;i<m;i++)
{
printf("\n%s\t%d\t%d",p[i],pt[i],wt[i]);
}
printf("\ntotal waiting time %d\n",totwt);
printf("total avgtime %f",avgwt);
}

INPUT :
enter the process name : aaa
enter the processing time : 4
enter the process name : bbb
enter the processing time : 3
enter the process name : ccc
enter the processing time : 2
enter the process name : ddd
enter the processing time : 5
enter the process name : eee
enter the processing time : 1

OUTPUT :

p_name p_time w_time
aaa 4 9
bbb 3 3
ccc 2 6
ddd 5 10
eee 1 11

total waiting time : 39
average waiting time : 7.8000

Editorial Team
Editorial Team

We are a group of young techies trying to provide the best study material for all Electronic and Computer science students. We are publishing Microcontroller projects, Basic Electronics, Digital Electronics, Computer projects and also c/c++, java programs.

62 thoughts on “C program for Round Robin CPU Scheduling Algorithm

  1. the program has some unreachable control flow…
    but it will provide you the idea and lot of coding portion..
    if i am wrong send the solution only after running this code..
    thanx…(waiting)

  2. how to calculate slice time and as well as average waiting time..
    please help… and tell about how to run round robin program…

    thank you!!!

  3. the program has some unreachable control flow
    but it will provide me the idea and lot of coding portion
    Thank you!!!

  4. #include
    #include
    int main()
    {
    char p[5][5],q[5][5];
    int i,j,n,m,slice,tte=0,wt[5],et[5],pt[5],twt=0;
    float awt;

    printf(“\nENTER NO.OF PROCESSES AND TIME SLICE: “);
    scanf(“%d%d”,&n,&slice);
    for(i=0;i<n;i++)
    {
    printf("\nENTER %d PROCESS NAME AND TIME:",i+1);
    scanf("%s%d",&p[i],&pt[i]);
    }
    for(i=0;i0)
    {
    for(i=0;islice)
    {
    pt[i]-=slice;
    m=slice;
    printf(“%s “,&p[i]);
    }
    else
    {
    m=pt[i];
    pt[i]=0;
    printf(“%s “,&p[i]);
    }
    tte-=m;

    for(j=0;j<n;j++)
    if((pt[j]!=0)&&(i!=j))
    {
    wt[j]+=m;
    //printf("-%s%d%d",p[j],i,j);
    }
    }
    }
    }
    printf("\n\nPROCESS NAME \tPROCESS TIME \tWAIT TIME\n");
    for(i=0;i<n;i++)
    {
    twt+=wt[i];
    printf("\n%s\t\t %d \t\t%d",p[i],et[i],wt[i]);
    }
    printf("\n\nTOTAL WAIT TIME = %d\n",twt);
    system("PAUSE");
    }

    /*
    ********** OUTPUT **********
    ENTER NO.OF PROCESSES AND TIME SLICE: 3 6

    ENTER 1 PROCESS NAME AND TIME:a 30
    ENTER 2 PROCESS NAME AND TIME:b 45
    ENTER 3 PROCESS NAME AND TIME:c 28

    EXECUTION SEQUENCE:
    a b c a b c a b c a b c a b c b b b

    PROCESS NAME PROCESS TIME WAIT TIME
    a 30 48
    b 45 58
    c 28 60

    TOTAL WAIT TIME = 166
    Press any key to continue . . .
    */

  5. tum bhosdika kuchg bhi dal de te ho!!!!!!!!!!!!!!
    tmhari ma ki choot
    tumhari ma ka bhosda
    behen k laude jindagi me tune pehli baar kch dala hai
    aur wo bhi galat
    ma k laude tere paida hone ka mujhe bahut afsos hai
    na jaane kis muth ki paidaish hai tu……….
    fuck you!!!!!!!!

  6. saalon thumari maa ka….
    sala 1 code likhne me thumari gaand phat jaati hai..???? jo yahan se copy kar rahe ho??

  7. #include
    #include
    void main()
    {
    clrscr();
    printf(“-***********ROUND ROBIN ALGORITHIM***************-”);
    int bp[10]={0};
    int n,total=0;
    long int wait[10]={0};
    int count=0;
    float avgwait=0;
    int q;
    printf(“\n NO OF PROCESSES= “);
    scanf(“%d”,&n);
    printf(“Quantum “);
    scanf(“%d”,&q);
    for(int k=0;k<n;k++)
    {
    printf("\nSet burst time for Process-%d ",k+1);
    scanf("%d",&bp[k]);
    }
    printf("\n\n ");
    for(k=0;k<n;k++){
    for(int a=0;a<=n-1;a++){
    if(bp[a]!=0){
    for(int i=0;i=q && bp[k]!=0){
    bp[k]=bp[k]-q;
    count=count+4;
    }
    else if(bp[k]=q && bp[a]!=0){
    bp[a]=bp[a]-q;
    count=count+4;
    }
    else if(bp[a]<q && bp[a]!=0){
    int num=bp[a];
    wait[a]=count;
    bp[a]=bp[a]-num;
    count=count+num;
    }
    }
    }
    total=total+wait[a];
    }
    }
    }
    avgwait=total/n;
    printf("\n AVERAGE Waiting Time is %f",avgwait);
    for(int a=0;a<n;a++){
    printf("\n\nWaiting time for Process-%d is %d ",a+1,wait[a]);
    }
    getch();
    }

  8. its n’t actual…..time slice should be allotted for each process…then we have to start the all the process…its n’t exact code……..

  9. Check Out My Program……
    I have made it look good… 😉

    #include
    #include
    #include
    void main()
    {int a[10],b[3][10],c[11],t[10],z,i,j=1,n,q,m=0,max;
    float d,h;
    clrscr();

    cout< “;
    cin>>n;
    cout<<"\n";
    for(i=0;i<n;i++)
    {t[i]=0;
    c[i]=0;
    a[i]=i+1;
    cout<<"Enter Burst Time For Process – "<<i+1< “;
    cin>>b[0][i];
    b[1][i]=b[0][i];
    b[2][i]=b[0][i];
    }
    cout< “;
    cin>>q;
    for(i=0;ib[1][i+1] )
    {max=b[1][i];}
    else{max=b[1][i+1];}
    }
    m=max;
    cout<<"\nCalculating Waiting Time";
    cout<<".";
    for(i=0;i<n-1;i++)
    {sleep(1);
    cout<<".";}
    sleep(1);
    cout<<"\n";
    cout<<"_________________________________________________________________\n";
    cout<<"| Process No. | Burst Time | Waiting Time |TurnAround Time|\n";
    cout<<"|_______________|_______________|_______________|_______________|\n";
    int x=0;

    while(max!=0){

    for(i=0;i0){
    x=x+q;
    b[0][i]=b[0][i]-q;
    }

    if(b[0][i]==0)
    {t[i]=x;
    b[0][i]=-1000;
    }}max=max-q;}

    for(i=0;i<n;i++)
    {c[i]=t[i]-b[1][i];
    }

    for((i=0,d=0,h=0);i<n;i++)
    {cout<<"|\t"<<a[i]<<"\t|\t"<<b[1][i]<<"\t|\t"<<c[i]<<"\t|\t"<<t[i]<<"\t|\n";
    d=(d+c[i]);
    h=(h+t[i]);
    }
    cout<<"|_______________|_______________|_______________|_______________|\n";
    cout<<"\nAverage Waiting Time = "<<d/n<<"\n";
    cout<<"\nAverage Turn Around Time = "<<h/n<<"\n";
    getch();
    }

  10. idk y the header files arnt appearing on this site…
    anyway use these header files-

    dos.h
    iostream.h
    conio.h

    Note that this is a C++ program…

  11. کد الگوریتم بهترین جا یا بست فیت رو در زبان c++می خوام خواهش می کنم کمکم کنید خیلی لازمش دارم اگه میشه توضیح هم بدید

  12. khanom Bihnaz lotfan zoban khoda standard kunid ! ba ain zuban ki shoma nawishta aid ki khwanda mitwanad ! please use english in the global forums. 🙂

  13. Bhen ke rando college me kya maa chudwaate ho Jo yaha pe bhadwo ki tarah code maangte rehte ho …..bhen ke lundo dhele bhar ki samjh nahi gaand chaudi karke chalte hai madarchod saale

  14. Your code is too incomplete! First of all include arrival times of all processes, and then schedule the processes according to that!
    And if u cudn’t make the Gantt chart in the program just output the start and finish time of each process!

  15. It gives me immense pleasure to say that both of you are correct.

    -Office of the President of United States of America

  16. bhen ke laudo puri website ko spam bana rkha he pata nahi kaha kaha se code copy karke yaha post ka rahe ho ek round robin ka algorithm to banta nahi jhat ki dukano bhadwo ke land bhosdi ke haramio

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest updates on your inbox

Be the first to receive the latest updates from Codesdoc by signing up to our email subscription.

    StudentProjects.in