Electrofriends

C program for SJF CPU Scheduling Algorithm

by Ranjith | September 20th, 2009.

OUTPUT:
enter no of processes: 5

enter process1 name: aaa
enter process time: 4
enter process2 name: bbb
enter process time: 3
enter process3 name: ccc
enter process time: 2
enter process4 name: ddd
enter process time: 5
enter process5 name: eee
enter process time: 1

p_name P_time w_time

eee 1 0
ccc 2 1
bbb 3 3
aaa 4 6
ddd 5 10
total waiting time=20
avg waiting time=4.00

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
#include<stdio.h>
#include<conio.h>
#include<process.h>
void main()
{
char p[10][5],temp[5];
int tot=0,wt[10],pt[10],i,j,n,temp1;
float avg=0;
clrscr();
printf("enter no of processes:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("enter process%d name:\n",i+1);
scanf("%s",&p[i]);
printf("enter process time");
scanf("%d",&pt[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(pt[i]>pt[j])
{
temp1=pt[i];
pt[i]=pt[j];
pt[j]=temp1;
strcpy(temp,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],temp);
}
}
}
wt[0]=0;
for(i=1;i<n;i++)
{
wt[i]=wt[i-1]+et[i-1];
tot=tot+wt[i];
}
avg=(float)tot/n;
printf("p_name\t P_time\t w_time\n");
for(i=0;i<n;i++)
printf("%s\t%d\t%d\n",p[i],et[i],wt[i]);
printf("total waiting time=%d\n avg waiting time=%f",tot,avg);
getch();
}

OUTPUT:
enter no of processes: 5

enter process1 name: aaa
enter process time: 4
enter process2 name: bbb
enter process time: 3
enter process3 name: ccc
enter process time: 2
enter process4 name: ddd
enter process time: 5
enter process5 name: eee
enter process time: 1

p_name P_time w_time

eee 1 0
ccc 2 1
bbb 3 3
aaa 4 6
ddd 5 10
total waiting time=20
avg waiting time=4.00


Share and Enjoy:
  • Digg
  • Technorati
  • StumbleUpon
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Reddit
  • Mixx
  • Yahoo! Buzz
  • LinkedIn
  • NewsVine
  • RSS
  • email
Similar Posts:

16 Responses to “C program for SJF CPU Scheduling Algorithm”

  1. 1
    dheeraj Says:

    it is not working , it is not showing and taking the ‘time value’ for different process .pls sort out the problem and send the code to my id

  2. 2
    CJ Says:

    This program shows errors so plz correct it and send me.

  3. 3
    jiten Says:

    plz write the code in c++ for preemtive scheduling

  4. 4
    anas Says:

    hi for all
    this is the code after correct it
    so thanks man you are great (Sorry for bag English)
    #include
    #include
    #include

    void main()
    {

    char p[10][5],temp[5];
    int tot=0,wt[10],pt[10],i,j,n,temp1;
    float avg=0;

    cout<>n;
    cout<<endl;

    for(i=0;i<n;i++)
    {
    cout<<"Enter Process Name "<>p[i];
    //cout<<endl;
    cout<<"Enter Barst Time time for Process "<<p[i]<>pt[i];
    cout<<endl;

    }

    for(i=0;i<n-1;i++)
    {
    for(j=i+1;jpt[j])
    {
    temp1=pt[i];
    pt[i]=pt[j];
    pt[j]=temp1;
    strcpy(temp,p[i]);
    strcpy(p[i],p[j]);
    strcpy(p[j],temp);
    }
    }
    }

    wt[0]=0;
    for(i=1;i<n;i++)
    {
    wt[i]=wt[i-1]+pt[i-1];
    tot=tot+wt[i];
    }
    avg=(float)tot/n;

    printf("p_name\t P_time\t w_time\n");

    for(i=0;i<n;i++)
    printf("%s\t%d\t%d\n",p[i],pt[i],wt[i]);
    printf("total waiting time=%d\n avg waiting time=%f",tot,avg);

    }

  5. 5
    anas Says:

    sorry
    When you paste the code Here it will Appear incorrectly

  6. 6
    rrr Says:

    #include
    #include
    #include
    void main()
    {
    char p[10][5];
    int tot=0,wt[10],i,n;
    float avg=0;
    clrscr();
    printf(“enter no of processes:”);
    scanf(“%d”,&n);
    for(i=0;i<n;i++)
    {
    printf("enter process%d name:\n",i+1);
    scanf("%s",&p[i]);
    printf("enter process time");
    scanf("%d",&pt[i]);
    }

    wt[0]=0;
    for(i=1;i<n;i++)
    {
    wt[i]=wt[i-1]+et[i-1];
    tot=tot+wt[i];
    }
    avg=(float)tot/n;
    printf("p_name\t P_time\t w_time\n");
    for(i=0;i<n;i++)
    printf("%s\t%d\t%d\n",p[i],et[i],wt[i]);
    printf("total waiting time=%d\n avg waiting time=%f",tot,avg);
    getch();
    }

  7. 7
    nalanda Says:

    make sure uf da declarations….u msd to declare et array…..

  8. 8
    Internet Banking Says:

    Glad to see that this site works well on my Droid , everything I want to do is functional. Thanks for keeping it up to date with the latest.

  9. 9
    sumit tripathi Says:

    #include
    #include
    #include
    void main()
    {
    char p[10][5],temp[5];
    int tot=0,wt[10],pt[10],i,j,n,temp1;
    float avg=0;
    clrscr();
    printf(“enter no of processes:”);
    scanf(“%d”,&n);
    for(i=0;i<n;i++)
    {
    printf("enter process%d name:\n",i+1);
    scanf("%s",&p[i]);
    printf("enter process time");
    scanf("%d",&pt[i]);
    }
    for(i=0;i<n-1;i++)
    {
    for(j=i+1;jpt[j])
    {
    temp1=pt[i];
    pt[i]=pt[j];
    pt[j]=temp1;
    strcpy(temp,p[i]);
    strcpy(p[i],p[j]);
    strcpy(p[j],temp);
    }
    }
    }
    wt[0]=0;
    for(i=1;i<n;i++)
    {
    wt[i]=wt[i-1]+et[i-1];
    tot=tot+wt[i];
    }
    avg=(float)tot/n;
    printf("p_name\t P_time\t w_time\n");
    for(i=0;i<n;i++)
    printf("%s\t%d\t%d\n",p[i],et[i],wt[i]);
    printf("total waiting time=%d\n avg waiting time=%f",tot,avg);
    getch();
    }

  10. 10
    pru Says:

    all these prog has been made by avoiding arrival time.please take that into consideration

  11. 11
    JAGADHEESWAR Says:

    HI THIS IS JAGADHEESWAR.VERY VERY THANKS FOR PUBLISHING THE C PROGRAMS IN THIS WEBSITE. I HAVE JAVA LAB PROGRAMS FOR JNTU BTECH STUDENTS WHICH HAS BEEN EXECUTED. (34 PROGRAMS). IF YOU WANT THAT I WILL SEND IT AS A MAIL TO YOU. VERY THANKS FOR PUBLISHING OS SCHEDULING ALGORITHMS . THANKYOU.

  12. 12
    JAGADHEESWAR Says:

    Sir, how can i create a mini project for jntu.please send the details.

  13. 13
    denz Says:

    could you please send those programs to me. because i need some
    references on my os class..specially the shortest job first program.
    thanks alot. any program will be highly appreciated.

  14. 14
    denz Says:

    by the way i’m using a cygwin compiler. thanks

  15. 15
    Priyanka Aggarwal Says:

    // A program of sjf algorithm with no preemption

    #include
    #include
    main()
    {
    int p[10],wt[10],bt[10],tat[10],i,j,twt=0,ttat=0,temp,n;
    float awt,atat;
    clrscr();
    printf(“enter the no. of process=>\n”);
    scanf(“%d”,&n);
    printf(“enter process=>\n”);
    for(i=0;i”);
    for(i=0;i<n;i++)
    {
    scanf("%d",&bt[i]);
    }
    for(i=0;i<n;i++)
    {
    for(j=0;jbt[j+1])
    {
    temp=p[j];
    p[j]=p[j+1];
    p[j+1]=temp;

    temp=bt[j];
    bt[j]=bt[j+1];
    bt[j+1]=temp;
    }
    }
    }

    wt[0]=0;
    for(i=1;i<n;i++)
    {
    wt[i]=wt[i-1]+bt[i-1]; //waiting time
    twt=twt+wt[i]; //total waiting time
    }
    for(i=0;i<n;i++)
    {
    tat[i]=wt[i]+bt[i]; //turn around time
    ttat=ttat+tat[i]; // total turned around time
    }
    awt=(float)twt/n; //avg waiting time
    atat=(float)ttat/n; //avg turn around time
    printf("p_number\t P_bt\t p_wt \t p_tat \n");
    for(i=0;i<n;i++)
    printf("%d\t\t%d\t%d\t%d\n",p[i],bt[i],wt[i],tat[i]);
    printf("total waiting time=%d\n avg waiting time=%f",twt,awt);
    printf("\ntotal turnedaroundtime=%d\n avg turnedaround time=%f",ttat,atat);
    getch();
    }

  16. 16
    dinesh Says:

    sir ur program is not print the avg time and turn around time properly

Leave a Reply

Share and enjoy

    • Digg
    • Facebook
    • Technorati
    • StumbleUpon
    • Twitter
    • Reddit
    • del.icio.us
    • Yahoo! Buzz
Copyright©2009 www.electrofriends.com All Rights Reserved. Powered by Dhyeya