Jenis Algoritma Penjadwalan: Difference between revisions

No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[File:Algoritma ilustrasi.jpg|thumb|300px|Source: [https://4winmobile.com/wp-content/uploads/2020/02/algoritma-2.jpg 4winmobile.com]]]
Proses memerlukan prosesor dan penjadwalan pemakaian prosesor. Berdasarkan berbagai ketentuan pada penjadwalan proses serentak, dapat disusun teknik penjadwalan prosesor. Dapat dipandang semua proses serentak itu sebagai satu kumpulan proses yang memerlukan prosesor Penjadwalan proses didasarkan pada sistem operasi yang menggunakan prinsip multiprogramming. Dengan cara mengalihkan kerja CPU untuk beberapa proses, maka CPU akan semakin produktif. Algoritma diperlukan untuk mengatur giliran proses-proses yang ada di ready queue yang mengantri untuk dialokasikan ke CPU. Beberapa algoritma penjadwalan dijelaskan sebagai berikut :  
Proses memerlukan prosesor dan penjadwalan pemakaian prosesor. Berdasarkan berbagai ketentuan pada penjadwalan proses serentak, dapat disusun teknik penjadwalan prosesor. Dapat dipandang semua proses serentak itu sebagai satu kumpulan proses yang memerlukan prosesor Penjadwalan proses didasarkan pada sistem operasi yang menggunakan prinsip multiprogramming. Dengan cara mengalihkan kerja CPU untuk beberapa proses, maka CPU akan semakin produktif. Algoritma diperlukan untuk mengatur giliran proses-proses yang ada di ready queue yang mengantri untuk dialokasikan ke CPU. Beberapa algoritma penjadwalan dijelaskan sebagai berikut :  


Line 60: Line 61:
Jika q terlalu besar maka akan sama dengan algoritma FCFS. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.
Jika q terlalu besar maka akan sama dengan algoritma FCFS. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.


[[File:OSS5.png|450px|center|border]]
[[File:OSS5.png|thumb|450px|center]]


dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan ditambahkan pada ready queue. Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya. Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap proses mendapatkan 1/n dari waktu CPU paling banyak q unit waktu pada sekali penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu. Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context switch. Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan quantum-time sebesar 4 milidetik, maka dapat digambarkan sebagai berikut :
dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan ditambahkan pada ready queue. Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya. Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap proses mendapatkan 1/n dari waktu CPU paling banyak q unit waktu pada sekali penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu. Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context switch. Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan quantum-time sebesar 4 milidetik, maka dapat digambarkan sebagai berikut :


[[File:OSS6.png|400px|center|border]]
[[File:OSS6.png|thumb|400px|center]]


Maka Gant chart-nya dapat digambarkan sebagai berikut :
Maka Gant chart-nya dapat digambarkan sebagai berikut :


[[File:OSS7.png|500px|center|border]]
[[File:OSS7.png|thumb|500px|center]]


Waktu tunggu untuk P1 adalah 6, P2 adalah 4, dan P3 adalah 7 sehingga rata- rata waktu tunggu adalah (6 + 4 + 7)/3 = 5.66 milidetik.  
Waktu tunggu untuk P1 adalah 6, P2 adalah 4, dan P3 adalah 7 sehingga rata- rata waktu tunggu adalah (6 + 4 + 7)/3 = 5.66 milidetik.  
Line 74: Line 75:
Algoritma Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman waktu. Namun di sisi lain, algoritma ini akan terlalu sering melakukan switching. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.
Algoritma Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman waktu. Namun di sisi lain, algoritma ini akan terlalu sering melakukan switching. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.


[[File:OSS8.png|450px|center|border]]
[[File:OSS8.png|thumb|450px|center]]


Pada multiprogramming, selalu akan terjadi beberapa proses berjalan dalam suatu waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya ada satu proses yang berjalan pada saat tertentu. Konsep dasar dari multiprogramming ini adalah: suatu proses akan menggunakan CPU sampai proses tersebut dalam status wait (misalnya meminta I/O) atau selesai. Pada saat wait , maka CPU akan nganggur (idle). Untuk mengatasi hal ini, maka CPU dialihkan ke proses lain pada saat suatu proses sedang dalam wait, demikian seterusnya.
Pada multiprogramming, selalu akan terjadi beberapa proses berjalan dalam suatu waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya ada satu proses yang berjalan pada saat tertentu. Konsep dasar dari multiprogramming ini adalah: suatu proses akan menggunakan CPU sampai proses tersebut dalam status wait (misalnya meminta I/O) atau selesai. Pada saat wait , maka CPU akan nganggur (idle). Untuk mengatasi hal ini, maka CPU dialihkan ke proses lain pada saat suatu proses sedang dalam wait, demikian seterusnya.