Sie sind auf Seite 1von 4

Programming Lab

Kiran Varghese
S6 CSE B, ROLL:10, ADMN: 427/13

FCFS Process Scheduling


#i n c l u d e <s t d i o . h>
#i n c l u d e <s t r i n g . h>
struct process
{
c h a r name [ 1 0 ] ;
int arr ;
int burst ;
i n t pwt ;
int ptt ;
int ct ;
}p [ 1 0 ] , temp ;
struct chart
{
c h a r cname [ 1 0 ] ;
int start ;
in t stop ;
int idle ;
}c [ 1 0 ] ;
void s o r t ( i n t n)
{
int c ,d;
for ( c =0; c<n ; c++)
{
for ( d=0;d<nc 1;d++)
{
i f ( p [ d ] . a r r >p [ d + 1 ] . a r r )
{
temp=p [ d ] ;
p [ d]=p [ d + 1 ] ;
p [ d+1]=temp ;
}
}
}
}
v o i d main ( )
{
int n , i , j ,k , l , x ,y ;
f l o a t wt=0;
f l o a t turn =0;
p r i n t f ( Enter th e number o f p r o c e s s : ) ;
s c a n f ( %d ,&n ) ;
fpurge ( stdin ) ;
for ( i =0; i <n ; i ++)
{
1

Programming Lab

Kiran Varghese
S6 CSE B, ROLL:10, ADMN: 427/13

p r i n t f ( Enter th e name o f p r o c e s s : ) ;
s c a n f ( %s ,&p [ i ] . name ) ;
p r i n t f ( Enter th e a r r i v a l time o f p r o c e s s : ) ;
s c a n f ( %d ,&p [ i ] . a r r ) ;
p r i n t f ( Enter th e b u r s t time o f p r o c e s s : ) ;
s c a n f ( %d ,&p [ i ] . b u r s t ) ;
}
sort (n) ;
i =0;
j =0;
k=0;
while ( i <n )
{
i f ( p [ i ] . a r r >k )
{
c [ j ] . cname [ 0 ] = i ;
c [ j ] . cname [ 1 ] = d ;
c [ j ] . cname [ 2 ] = l ;
c [ j ] . cname [ 3 ] = e ;
c [ j ] . s t a r t=k ;
k=p [ i ] . a r r ;
c [ j ] . s t o p=k ;
c [ j ] . i d l e=c [ j ] . stopc [ j ] . s t a r t ;
p r i n t f ( The i d l e time i s : %d , c [ j ] . i d l e ) ;
j ++;
}
else
{
s t r c p y ( c [ j ] . cname , p [ i ] . name ) ;
p [ i ] . pwt=kp [ i ] . a r r ;
p [ i ] . p t t=p [ i ] . pwt+p [ i ] . b u r s t ;
p [ i ] . c t=p [ i ] . a r r+p [ i ] . b u r s t+p [ i ] . pwt ;
c [ j ] . s t a r t=k ;
k=k+p [ i ] . b u r s t ;
c [ j ] . s t o p=k ;

i ++;
j ++;
}
}

p r i n t f ( \n\n\ n P r o c e s s AT\tBT\tTAT\tWT\tCT\n\n ) ;
i =0;

Programming Lab

Kiran Varghese
S6 CSE B, ROLL:10, ADMN: 427/13

while ( i <n )
{
p r i n t f ( %s \ t%d\ t%d\ t%d\ t%d\ t%d , p [ i ] . name , p [ i ] . a r r , p [ i ] . bur st , p [ i ] . ptt ,
p r i n t f ( \n ) ;
i ++;
}
l =0;
while ( l <n )
{
wt=wt+p [ l ] . pwt ;
t u rn=turn+p [ l ] . p t t ;
l ++;
}
wt=wt/n ;
t u r n=tur n /n ;
p r i n t f ( \n\ nAverage WT: %2 f , wt ) ;
p r i n t f ( \n ) ;
p r i n t f ( Average TAT i s : %2f , turn ) ;
p r i n t f ( \n ) ;

p r i n t f ( \ nGantt Chart \n ) ;
for ( i =0; i <j ; i ++)
{

p r i n t f (
p r i n t f ( \n ) ;
printf ( | ) ;
for ( i =0; i <j ; i ++)

p r i n t f ( \ t%s \ t | , c [ i ] . cname ) ;
p r i n t f ( \n ) ;

}
for ( i =0; i <j ; i ++)
{

p r i n t f (

Programming Lab

Kiran Varghese
S6 CSE B, ROLL:10, ADMN: 427/13

p r i n t f ( \n0 ) ;
for ( i =0; i <j ; i ++)
p r i n t f ( \ t \ t%d , c [ i ] . s t o p ) ;
p r i n t f ( \n ) ;
}

Output
Enter t he number o f p r o c e s s : 3
Enter t he name o f p r o c e s s : p1
Enter t he a r r i v a l time o f p r o c e s s : 0
Enter t he b u r s t time o f p r o c e s s : 3
Enter t he name o f p r o c e s s : p2
Enter t he a r r i v a l time o f p r o c e s s : 4
Enter t he b u r s t time o f p r o c e s s : 6
Enter t he name o f p r o c e s s : p3
Enter t he a r r i v a l time o f p r o c e s s : 5
Enter t he b u r s t time o f p r o c e s s : 9
The i d l e time i s : 1

P r o c e s s AT
p1
p2
p3

BT

TAT WT CT

0 3 3 0 3
4 6 6 0 10
5 9 14 5 19

Average WT: 1 . 6 6 6 6 6 7
Average TAT i s : 7 . 6 6 6 6 6 7

Gantt Chart

| p1 | i d l e | p2 | p3 |

0
3
4
10
19

Das könnte Ihnen auch gefallen