Professional Documents
Culture Documents
Cara mencari Average waiting time dari algoritma penjadwalan proses. SRTF ini adalah
algoritma penjadwalan proses yang mencari waktu terpendek daripada sebuah proses
yang memungkinkan proses yang satu dengan yang lainnya mengalami penyelaan.
Untuk lebih jelasnya akan membahas contoh soal. Berikut soal yang akan di bahas :
Hitunglah Average Waiting Time dengan algoritma penjadwalan SRTF dari tabel di atas!
Langsung saja kepada penyelesaiannya:
Hal yang pertama dilakukan yaitu membuat Gantt Chart, berikut gambarnya:
Penjelasan:
Ketika CPU tidak melakukan apa-apa dating P1 untuk meminta di proses. Dimana P1
membutuhkan waktu 10 untuk menyelesaikan seluruh prosesnya.
Tetapi, P1 baru dikerjakan sejumlah 3 sudah datang P2 yang ingin di proses. P2
membutuhkan waktu pengerjaan seluruh prosesnya sejumlah 6. Karena P2 memiliki
waktu proses yang lebih sedikit dibandingkan dengan P1 maka P2 akan diproses
terlebih dahulu.
Pada saat P2 sedang di proses, pada titik ke 7 datng P3 yang mempunyai waktu
penyelesaian seluruh prosesnya sejumlah 12. Pada waktu yang bersamaan P1 yang
berjumlah 7 dan P2 yang berjumlah 2 sedang menunggu. CPU kemudian melakukan
pengecekan terhadap ke tiga proses tersebut. Yang memiliki waktu tunggu yang paling
sedikit yaitu P2, maka P2 akan dikerjakan sampai selesai yaitu pada titik 9.
Di titik 9 P2 sudah selesai di proses, maka pada saat ini CPU akan melakukan
pengecekan kembali terhadap proses yang akan dikerjakan. Pada titik 9 sudah ada P1
yang mempunyai waktu pengerjaan 7 dan P3 yang mempunyai waktu pengerjaan 12.
Namun pada saat yang bersamaan datang P4 yang mempunyai waktu pemrosesan 8.
Setelah melakukan pengecekan dari tiga proses tersebut, CPU memutuskan bahwa
yang akan di kerjakan pada titik 9 yaitu P1, hal ini karena P1 memiliki waktu
pemrosesan paling sedikit disbanding ketiga proses tersebut.
Pada saat P1 dikerjakan di titik 10 datang P5 yang membutuhkan waktu pengerjaan
sejumlah 6. Disana juga masih terdapat antrian proses yaitu ada P3(12), P4(8). Jika
dilihat P1 dan P5 memiliki waktu pengerjaan proses sejumlah 6, sama seperti SJF jika
ada proses yang memiliki kesamaan waktu pengerjaan, maka proses yang lebih awal
datang akan dikerjakan terlebih dahulu. Disini CPU memilih P1 untuk dikerjakan hingga
berakhir pada titik 16.
Di titik 16 saat P1 selesai di proses oleh CPU, CPU kembali melakukan pengecekan
terhadap proses-proses yang sedang menunggu. Pada saat itu CPU memilih P5 yang
lebih awal untuk di proses.
Begitupun selanjutnya CPU selalu memilih proses yang memiliki waktu pengerjaan
lebih sedikit untuk di proses lebih awal.
Hal kedua yang dilakukan untuk menghitung average waiting time yaitu dengan
menghitung berapa lama waktu tunggu yang dihasilkan oleh proses tersebut.
Untuk menhitungnya dapat dilakukan dengan cara mengurangkan waktu
eksekusi dengan waktu datang.
Hal ketiga dan juga hal yang terakhir yang harus dilakukan yaitu menghitung
Average Waiting Time dari semua proses tersebut, yaitu dengan cara sebagai
berikut:
Hal yang pertama dilakukan sama seperti postingan sebelumnya, yaitu membuat Gantt
Chart, tapi disini saya langsung berikan orak-orek prosesnya. Berikut gambarnya:
Ingat ya, disini jika proses yang sudah di proses oleh CPU maka proses tersebut akan
diselesaikan sampai selesai terlebih dahulu tanpa ada penyelaan karena disini Non Preemtive.
Saya kira anda sudah mengerti bagaimana alur algoritma di atas.
Tapi untuk yang masih kurang mengerti saya akan jelaskan. Begini awalnya, pada suatu kondisi
CPU sedang tidak melakukan aktifitas yaitu pada titik 0. Pada saat itu datang P1 dan langsung
di proses oleh CPU. CPU disini tidak akan menghiraukan proses lain pada saat P1 sedang di
proses, kembali lagi itu karna Non Preemtive.
Ketika P1 selesai di proses, akan dilanjutkan dengan proses yang memiliki priority yang lebih
tinggi. Begitupun selanjutnya sampai keseluruhan proses selesai di eksekusi oleh CPU. Nah ...
jika pada saat CPU memproses, terdapat proses yang memiliki priority yang sama, maka CPU
akan melihat proses yang mana datang lebih awal. Silakan anda pahami lagi penjelasan di
atas, dan lihat bagaimana cara kerja algoritma penjadwalan di atas.
Hal kedua yang dilakukan untuk menghitung average waiting time yaitu dengan
menghitung berapa lama waktu tunggu yang dihasilkan oleh proses tersebut. Untuk
menhitungnya dapat dilakukan dengan cara mengurangkan waktu eksekusi dengan
waktu datang.
Hal ketiga dan juga hal yang terakhir yang harus dilakukan yaitu menghitung Average
Waiting Time dari semua proses tersebut, yaitu dengan cara sebagai berikut:
Menghitung Average Waiting Time dalam Algoritma Penjadwalan Priority dengan metode
Preemtive agak sedikit berbeda dengan yang Non Preemtive. Bedanya di sini yaitu dalam
prosesnya CPU mengizinkan untuk melakukan penyelaan. Berikut soalnya:
Penyelesaian:
Dari postingan yang sebelumnya hingga sampai postingan saat ini tentunya anda sudah
mengerti bagaiman jika proses tersebut melakukan penyelaan atau tidak boleh melakukan
penyelaan. Pada postingan ini prosesnya mengizinkan proses yang mempunyai prioritas lebih
tinggi untuk di proses lebih awal tanpa menunggu satu proses tersebut selesai untuk di kerjakan
oleh CPU. Postingan kali ini saya hanya memberikan penjelasan segitu, silakan anda pahami
sesuai apa yang sudah sebelumnya di bahas.
Dari orak-orek di atas akan menghasilkan Gantt Chart sebagai berikut:
Masih tetap sama, setelah selesai Gantt Chartnya kita mencari waiting timesnya (WT)
Dari Gantt Chart di atas terlihat bahwa setiap proses dikerjakan menurut waktu
yaitu setiap proses di proses sebesar 5. Awalnya P1 akan di kerjakan sebanyak 5
langkah, kemudian, P2 sebanyak 5 langkah, dan begitupun selanjutnya hingga P5.
Proses yang sudah di proses menurut porsi waktu yang diberikan akan kembali
menunggu dan berada paling belakang dari antrian proses yang ada. Contohnya P1
dikerjakan di awal, kemudian ada P2, P3,P4,dan P5 yang mengantri di belakangnya.
Jika P1 selesai di proses menurut porsi waktunya maka P1 akan di pindahkan ke
belakang, sehingga urutannya menjadi P2, P3, P4, P4, P1. begitupun seterusnya.
Dari Waiting Times di atas dapat kita tentukan AWTnya yaitu dengan cara :