LABORATORIUM PEMBELAJARAN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA
NAMA
: BAGUS VERNANDA ADI ADI PRAYOGA
NIM
: 165150200111026 165150200111026
TUGAS
: BAB VI
TANGGAL
: 10/11/2017
ASISTEN
: MA’FUA AZIS PRAMA RADEN RIZKY WIDDIE TIGUSTI
1. 2. 3.
Login ke sistem GNU/Linux kemudian buka terminal. Lakukan percobaan terhadap kode program berikut. Lakukan kompilasi kode program dengan menggunakan perintah
4. 5.
Jalankan hasil kompilasi menggunakan perintah Masukkan variabel berikut dengan: jumlah proses sebanyak 3, time quantum 2, dan
6.
Amati hasil outputnya!
7.
Jika variabel pada pada nomor 4 di atas diubah menjadi: jumlah proses sebanyak 3, time quantum 2, dan
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 quantumnya 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 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 for(i=0;i
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 for(time=0,i=0;remain!=0;) { 25 if(rt[i]<=tq && rt[i]>0) { 26 time+=rt[i]; 27 rt[i]=0; 28 flag=1; 29 } else if(rt[i]>0) { 30 rt[i]-=tq; 31 time+=tq; 32 } 33 if(rt[i]==0 && flag==1) { 34 remain--; 35 printf("P[%d]\t|\t%d\t|\t%d\n",i+1,time-AT[i],time36 37 AT[i]-b[i]); TotWT+=time-AT[i]-b[i]; 38 TotTA+=time-AT[i]; 39 flag=0; 40 } 41 42 if(i==n-1) 43 i=0; 44 else if(AT[i+1]<=time) 45 i++; 46 else 47 i=0; 48 } 49 printf("\nAverage Waiting Time = %f\n",TotWT*1.0/n); 50 printf("Average Turnaround Time = %f\n",TotTA*1.0/n); return 0; }