kita tahu bahwa proses tidak bisa akur, jadi atas dasar tsb, scheduling dibuat.
Scheduler terjadi didasarkan pada kebijakan / policy, bkn mekanisme.
ada 4 keputusan pada scheduling :
1. switch state running ke waiting (nonpreemptive)
2. switch state running ke ready(preemptive)
3. switch state waiting le ready(preemptive)
4. terminate (nonpreemptive)
(nonpreemptive) :
- proses yang sedang berjalan.running tdk bisa dihentikan,
- akan terus berjalan sampai di block atau sampai menyerahkan CPU
(preemptive) :
- proses running bisa di hentikan
- memilih proses untuk dikerjakan dlm kurun waktu tertentu
- bila melewati batasan waktu maka proses yg berjalan akan di suspend
Istilah:
Dispatch latency : waktu yg dipakai dispatcher untuk mensuspend proses dan start proses yang lain untuk running.
Oke sekarang beranjak ke metode perhitungannya : >_<
cth data:
Proses Burst Time Arrived Priority
P1 39 0 0
P2 10 2 3
P3 3 1 2
P4 5 5 5
1. FCFS (First Come First Serve)
- Siapa duluan dia yg masuk
- (lihat proses dan burst time)
- (JIKA DISOAL HANYA PROSES DAN BURST TIME)
- jadi Process time : (sebelum ada yg di proses)
- _P1 P2 P3 P4
- 0 39 49 52 57
- kalau waiting time (waiting time for P1): (P1 sudah di proses jadi di taruh di belakang)
- _P2 P3 P4 P1
- 0 10 13 18 57
- (Kalau ada arrived, maka ikutin arrived)
- jadi Process time : (sebelum ada yg di proses)
- _P1 P3 P2 P4
- 0 39 42 52 57
2. SJFP (preemptive)
- pertama di lihat arrival timenya, lalu bandingkan burst timenya
- (kalau burst time sudah di proses maka kurangi dulu)
- (dari arrival time dan burst time terkecil)
- _P1 P3 P2 P4 P2 P1
- 0 1 4 5 10 19 57
3. FJNP (Nonpreemptive)
- pertama di lihat arrival timenya aja ,
- klo misal arrival time sama maka bandingin burst timenya
- nonpreemptive berarti tidak bisa disuspend prosesnya
- _P1 P3 P2 P4
- 0 39 42 52 57
4. Priority
- (ambil dari priority terbesar)
- klo priority sama, kerjakan burst time terkecil
- _P2 P3 P4 P1
- 0 10 13 18 57
5. Round Robin
- dia melingkar , jadi ngurut prosesnya
- sistemnya sama seperti orang makan di meja bundar dan bergiliran
- (Tambahan soal Q=13 sec)
- Jadi batas proses adalah 13 sec
- (JIKA DISOAL HANYA Proses ,Burst time, Priority)
- _P1 P2 P3 P4 P1 P1
- 0 13 23 26 31 44 57
- (Kalau ada arrived, maka ikutin arrived)
- _P1 P3 P2 P4 P1 P1
- 0 13 23 26 31 44 57
//Creator : Anthony Kalyana
//1601210682
//Just another uncompiled ones >_<
#include<stdio.h>
#include<conio.h>
int main(){
char a[10];
int pt[10],i,j,totalburst=0;
float avg=0;
printf("Jumlah proses yang ada:");
scanf("%d",&j);
for(i=0;i<j;i++){
printf("\nProses ke %d name:", i+1);
scanf("%s”,&a[i]);
printf("\nMasukan Burst Time :");
scanf("%d",&pt[i]);
totalburst = totalburst + pt[i];
if(i<j-1)
avg = avg + pt[i];
}
printf("\n\n");
for(i=0;i<j;i++){
printf(" %s",a[i]);
}
printf("\n0 ");
for(i=0;i<j;i++){
printf("%d ",a[i]);
}
printf("\n\ntotal burst : %d");
printf("\naverage : %f",avg/j);
return 0;
}
--------------------------------------------------------------------------------------------------------------------------
1601210682 - Anthony Kalyana
binus.ac.id
www.skyconnectiva.com
EmoticonEmoticon