Skip to main content

Priority process scheduling algorithm in C Programming

#include< stdio.h>
#include< conio.h>
void main()
{
 int njob,pID[15],aTime[15],bTime[15],jcTime[15],taTime[15],wTime[15],i,j,temp,sTime[15],prior[15];
 float totalWait,totalTA;
 clrscr();

 printf("\n Enter number of process:");
 scanf("%d",&njob);

 for(i=0;i< njob;i++)
 {
  printf("\n Enter the Arrival time , Burst time and Priority for process[%d]:",i+1);
  scanf("%d %d %d",&aTime[i],&bTime[i],&prior[i]);

  pID[i]=i+1;
 }

 for(i=0;i< njob;i++)
 {
  for(j=i+1;j< njob;j++)
  {
   if(prior[i]>prior[j])
   {
    temp=pID[i];
    pID[i]=pID[j];
    pID[j]=temp;

    temp=aTime[i];
    aTime[i]=aTime[j];
    aTime[j]=temp;

    temp=bTime[i];
    bTime[i]=bTime[j];
    bTime[j]=temp;

    temp=prior[i];
    prior[i]=prior[j];
    prior[j]=temp;
   }
  }
 }
 for(i=0;i< njob;i++)
 {
  if(i==0)
  {
   sTime[0]=aTime[i];
  }
  else
  {
   sTime[i]=jcTime[i-1];

  }

  jcTime[i]=sTime[i]+bTime[i];
  taTime[i] = jcTime[i]-aTime[i];
  wTime[i] = taTime[i] - bTime[i];

 }

 printf("\n Process ArrivalTime   BurstTime  Priority   TurnaroundTime   WaitingTime");
 printf("\n_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+");

 for(i=0;i< njob;i++)
 {
  printf("\n %d \t\t    %d \t   %d    \t %d",pID[i],aTime[i],bTime[i],prior[i]);
  printf("\t\t %d",taTime[i]);
  printf("\t\t %d",wTime[i]);

  totalTA=totalTA+taTime[i];
  totalWait=totalWait+wTime[i];
 }
 printf("\n_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+");

 printf("\n total waiting time:%.2f",totalWait/njob);
 printf("\n total turn around time:%.2f",totalTA/njob);

getch();
}
OUTPUT
 Enter number of process:5

 Enter the Arrival time , Burst time and Priority for process[1]:0 10 3

 Enter the Arrival time , Burst time and Priority for process[2]:0 6 5

 Enter the Arrival time , Burst time and Priority for process[3]:0 2 2

 Enter the Arrival time , Burst time and Priority for process[4]:0 4 1

 Enter the Arrival time , Burst time and Priority for process[5]:0 8 4

Process ArrivalTime   BurstTime  Priority   TurnaroundTime   WaitingTime
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+
 4         0             4          1            4               0
 3         0             2          2            6               4
 1         0            10          3           16               6
 5         0             8          4           24               16
 2         0             6          5           30               24
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+
 total waiting time:10.00
 total turn around time:16.00

Comments

Popular posts from this blog

MVT (Multiprogramming Variable Task) in C Programming

#include< stdio.h> #include< conio.h> void main() { int i,os_m,nPage,total,pg[25]; clrscr(); printf("\nEnter total memory size:"); scanf("%d",&total); printf("\nEnter memory for OS:"); scanf("%d",&os_m); printf("\nEnter no. of pages:"); scanf("%d",&nPage); for(i=0;i< nPage;i++) { printf("Enter size of page[%d]:",i+1); scanf("%d",&pg[i]); } total=total-os_m; for(i=0;i< nPage;i++) { if(total>=pg[i]) { printf("\n Allocate page %d",i+1); total=total-pg[i]; } else printf("\n page %d is not allocated due to insufficient memory.",i+1); } printf("\n External Fragmentation is:%d",total); getch(); } OUTPUT Enter total memory size:1024 Enter memory for OS:256 Enter no. of pages:4 Enter size of page[1]:128 Enter size of page[2]:512 Enter size of page[3]:64 Enter size of page[4]:512 Allocate page 1 Al

First Come First Serve (FCFS) Page replacement algorithm in C Programming

#include< stdio.h> #include< conio.h> int fsize; int frm[15]; void display(); void main() { int pg[100],nPage,i,j,pf=0,top=-1,temp,flag=0; clrscr(); printf("\n Enter frame size:"); scanf("%d",&fsize); printf("\n Enter number of pages:"); scanf("%d",&nPage); for(i=0;i< nPage;i++) { printf("\n Enter page[%d]:",i+1); scanf("%d",&pg[i]); } for(i=0;i< fsize;i++) frm[i]=-1; printf("\n page | \t Frame content "); printf("\n--------------------------------------"); for(j=0;j< nPage;j++) { flag=0; for(i=0;i< fsize;i++) { if(frm[i]==pg[j]) { flag=1; break; } } if(flag==0) { if(top==fsize-1) { top=-1; } pf++; top++; frm[top]=pg[j]; } printf("\n %d |",pg[j]); display(); } printf("\n--------------------------------------"); printf("\n total page fault:%d",pf); getch(); }

Deadlock Prevention using Banker’s Algorithm in C Programming

#include< stdio.h> #include< conio.h> void main() { int allocated[15][15],max[15][15],need[15][15],avail[15],tres[15],work[15],flag[15]; int pno,rno,i,j,prc,count,t,total; count=0; clrscr(); printf("\n Enter number of process:"); scanf("%d",&pno); printf("\n Enter number of resources:"); scanf("%d",&rno); for(i=1;i< =pno;i++) { flag[i]=0; } printf("\n Enter total numbers of each resources:"); for(i=1;i<= rno;i++) scanf("%d",&tres[i]); printf("\n Enter Max resources for each process:"); for(i=1;i<= pno;i++) { printf("\n for process %d:",i); for(j=1;j<= rno;j++) scanf("%d",&max[i][j]); } printf("\n Enter allocated resources for each process:"); for(i=1;i<= pno;i++) { printf("\n for process %d:",i); for(j=1;j<= rno;j++) scanf("%d",&allocated[i][j]); } printf("\n avai