Anda di halaman 1dari 3

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA

NAMA : BAGUS VERNANDA ADI PRAYOGA


NIM : 165150200111026
TUGAS : BAB VI
TANGGAL : 10/11/2017
ASISTEN : MA’FUA AZIS PRAMA
RADEN RIZKY WIDDIE TIGUSTI

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

4. Jalankan hasil kompilasi menggunakan perintah ./main


5. Masukkan variabel berikut dengan: jumlah proses sebanyak 3, time
quantum 2, dan
Nama Proses Arrival Time Burst Time
p1 0 3
p2 1 2
p3 2 1

6. Amati hasil outputnya!


7. Jika variabel pada pada nomor 4 di atas diubah menjadi: jumlah proses
sebanyak 3, time quantum 2, dan
Nama Proses Arrival Time Burst Time
p1 0 5
p2 20 4
p3 25 5

8. Amati hasil outputnya!

9. Berdasarkan hasil pengamatan anda, maka algoritma apa yang


digunakan dalam program tersebut?
- Algortima yang digunakan pada program tersebut adalah Round
Robin. Round Robin merupakan salah satu penjadualan proses,
dimana algoritma ini menggilir proses yang ada di antrian. Proses
akan mendapatkan jatah sebesar time quantum. Jika time quantum-
nya habis atau proses sudah selesai, CPU akan dialokasikan ke
proses berikutnya. Pada penjadualan proses ini, tidak ada proses
yang diprioritaskan, semua proses mendapatkan pembagian waktu
yang sama dari CPU.

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;
}

Anda mungkin juga menyukai