Rabu, 07 Mei 2014

Contoh Program c++ dari Algoritma FCFS,SJF,Round Robin

1. Contoh Program c++ dari Algoritma FCFS

#include<stdio.h>#include<string.h>main()
{
int n, ar[100], b[100], i, j, tmp, wt[100], ta[100], time[100];
int totWT=0, totTA=0;
float AvWT, AvTA;
char name[20][20], tmpName[20];
printf(“\t.:: Program Penjadwalan CPU FCFS ::.\n”);
puts(“”);
printf(“Banyak Proses\t= “); scanf(“%d”, &n);
puts(“”);
// Masukkan data yang diproses
for(i=0; i<n; i++){
fflush(stdin);
printf(“Nama Proses\t= “); gets(name[i]);
printf(“Arrival time\t= “); scanf(“%d”, &ar[i]);
printf(“Burst time\t= “); scanf(“%d”, &b[i]);
puts(“”);
}
// SORTING Data
for(i=0; i<n; i++){
for(j=i+1; j<n; j++)
if(ar[i]>ar[j]){
//tukar nama
strcpy(tmpName, name[i]);
strcpy(name[i], name[j]);
strcpy(name[j], tmpName);
//tukar arrival time
tmp=ar[i];
ar[i]=ar[j];
ar[j]=tmp;
//tukar burst
tmp=b[i];
b[i]=b[j];
b[j]=tmp;
}
}
time[0]=ar[0];
puts(“\n\t.:: Process Table ::.”);
puts(“==========================================”);
printf(“| no | proses\t | time arrival\t | burst |\n”);
puts(“——————————————”);
for (i=0; i<n; i++){
printf(“| %2d | %s\t |  \t%d\t | %d\t |\n”, i+1, name[i], ar[i], b[i]);
time[i+1]=time[i]+b[i]; //menghitung time pada ganchart
wt[i]=time[i]-ar[i];
ta[i]=time[i+1]-ar[i];
totWT+=wt[i];
totTA+=ta[i];
}
puts(“==========================================”);
printf(“\tTotal waiting time\t= %d \n”, totWT);
printf(“\tTurn arround time\t= %d \n”, totTA);
puts(“\n\t.:: Time Process Table ::.”);
puts(“==================================================”);
printf(“| no | proses\t | waiting time\t | turn arround\t |\n”);
puts(“————————————————–”);
for(i=0; i<n; i++){
printf(“| %2d | %s\t |  \t%d\t | \t%d\t |\n”, i+1, name[i], wt[i], ta[i]);
}
puts(“==================================================”);
//untuk Gant Chart
puts(“\n”);
puts(“\t.:: Gant-Chart ::.\n”);
for(i=0; i<n; i++){
printf(” %s\t “, name[i]);
}
puts(“”);
for(i=0; i<n; i++){
printf(“|=========”);
}
printf(“|\n”);
for(i=0; i<=n; i++){
printf(” %d\t “, time[i]);
} printf(“//diperoleh dari penjumlahan Burst”);
puts(“\n”);
AvWT=(float)totWT/n; //average waiting time
AvTA=(float)totTA/n; //average turn arround time
printf(“\tAverage Waiting Time : %f\n”, AvWT);
printf(“\tAverage Turn Arround TIme : %f\n”, AvTA);
}

Hasil Output



















 2.Contoh Program c++ dari Algoritma SJF

#include
#include
void main()
{
int i,j,n,brust_time[10],start_time[10],end_time[10],wait_time[10],temp,tot;
float avg;

printf("Enter the No. of jobs:\n\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n \n Enter %d process burst time:\n",i);
scanf("%d",&brust_time[i]);
}

for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(brust_time[i]>brust_time[j])
{
temp=brust_time[i];
brust_time[i]=brust_time[j];
brust_time[j]=temp;
}
}

if(i==1)
{
start_time[1]=0;
end_time[1]=brust_time[1];
wait_time[1]=0;
}

else
{
start_time[i]=end_time[i-1];
end_time[i]=start_time[i]+brust_time[i];
wait_time[i]=start_time[i];
}
}
printf("\n\n BURST TIME \t STARTING TIME \t END TIME \t WAIT TIME\n");
printf("\n ********************************************************\n");
for(i=1;i<=n;i++)
{
printf("\n %5d %15d %15d %15d",brust_time[i],start_time[i],end_time[i],wait_time[i]);
}
printf("\n ********************************************************\n");
for(i=1,tot=0;i<=n;i++)
tot+=wait_time[i];
avg=(float)tot/n;
printf("\n\n\n AVERAGE WAITING TIME=%f",avg);
for(i=1,tot=0;i<=n;i++)
tot+=end_time[i];
avg=(float)tot/n;
printf("\n\n AVERAGE TURNAROUND TIME=%f",avg);
for(i=1,tot=0;i<=n;i++)
tot+=start_time[i];
avg=(float)tot/n;
printf("\n\n AVERAGE RESPONSE TIME=%f\n\n",avg);
getch();
}




Hasil OutPut





3. Contoh Program c++ dari Algoritma Round Robin







#include<stdio.h>
 #include<conio.h>
 main()
 {
 int st[10],bt[10],wt[10],tat[10],n,tq;
 int i,count=0,swt=0,stat=0,temp,sq=0;
 float awt=0.0,atat=0.0;
 clrscr();
 printf(“Enter number of processes:”);
 scanf(“%d”,&n);
 printf(“Enter burst time for sequences:”);
 for(i=0;i<n;i++)
 {
 scanf(“%d”,&bt[i]);
 st[i]=bt[i];
 }
 printf(“Enter time quantum:”);
 scanf(“%d”,&tq);
 while(1)
 {
 for(i=0,count=0;i<n;i++)
 {
 temp=tq;
 if(st[i]==0)
 {
 count++;
 continue;
 }
 if(st[i]>tq)
 st[i]=st[i]-tq;
 else
 if(st[i]>=0)
 {
 temp=st[i];
 st[i]=0;
 }
 sq=sq+temp;
 tat[i]=sq;
 }
 if(n==count)
 break;
 }
 for(i=0;i<n;i++)
 {
 wt[i]=tat[i]-bt[i];
 swt=swt+wt[i];
 stat=stat+tat[i];
 }
 awt=(float)swt/n;
 atat=(float)stat/n;
 printf(“Process_no Burst time Wait time Turn around time
 “);
 for(i=0;i<n;i++)
 printf(“%d %d %d %d
 “,i+1,bt[i],wt[i],tat[i]);
 printf(“Avg wait time is %f
 Avg turn around time is %f”,awt,atat);
 getch();
 }



4 komentar:

  1. Balasan
    1. maksudnya "cin >>" scanf itu sama kaya cin?

      Hapus
  2. How To Make Money With Real Money Playgames | WorkTop Money
    Online casinos have a wide range of online a great choice of หารายได้เสริม the online casino games, like Cleopatra, Cleopatra, 바카라 Slots, 인카지노 and Baccarat.

    BalasHapus