6.1 Tugas
1. Login ke sistem GNU/Linux kemudian buka terminal.
2. Lakukan percobaan terhadap kode program berikut.
3. Lakukan kompilasi kode program dengan menggunakan perintah
gcc main.c –o main
main.c
1 #include<stdio.h>
2
3 int main() {
4 int i,j,n,time,remain,flag=0,tq;
5 int TotWT=0,TotTA=0,AT[100],b[100],rt[100];
6
7 printf("Masukkan jumlah proses : ");
8 scanf("%d",&n);
9 remain=n;
10
11
12 for(i=0;i<n;i++) {
13 printf("Masukkan arrival time untuk Proses P%d :",i+1);
14 scanf("%d",&AT[i]);
15 printf("Masukkan burst time untuk Proses P%d :",i+1);
16 scanf("%d",&b[i]);
17 rt[i]=b[i];
18 }
19
20 printf("Masukkan time quantum ");
21 scanf("%d",&tq);
22 printf("\n\nProcess\t|Turnaround time|waiting time\n\n");
23
24
25 for(time=0,i=0;remain!=0;) {
26 if(rt[i]<=tq && rt[i]>0) {
27 time+=rt[i];
28 rt[i]=0;
29 flag=1;
30 } else if(rt[i]>0) {
31 rt[i]-=tq;
32 time+=tq;
33 }
34 if(rt[i]==0 && flag==1) {
35 remain--;
36 printf("P[%d]\t|\t%d\t|\t%d\n",i+1,time-AT[i],time-
37 AT[i]-b[i]);
38 TotWT+=time-AT[i]-b[i];
39 TotTA+=time-AT[i];
40 flag=0;
41 }
42
43 if(i==n-1)
44 i=0;
45 else if(AT[i+1]<=time)
46 i++;
47 else
48 i=0;
49 }
50 printf("\nAverage Waiting Time = %f\n",TotWT*1.0/n);
printf("Average Turnaround Time = %f\n",TotTA*1.0/n);
return 0;
}