Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di
sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem
komputer. Penjadwalan bertugas memutuskan proses yang harus berjalan dan
kapan atau berapa lama proses itu berjalan. Sasaran utama penjadwalan
proses adalah optimasi kinerja menurut kriteria tertentu, yaitu :
– adil
– efisiensi
– waktu tanggap (response time)
– turn arround time
– throughput
– adil
– efisiensi
– waktu tanggap (response time)
– turn arround time
– throughput
Tipe penjadwalan:
Penjadwalan jangka pendek (short-termscheduller)Penjadwalan ini bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama.Penjadwalan jangka menengah (medium termscheduller )Penjadwalan jangka menengah adalah menangani proses-proses swapping (aktivitas pemindahan proses yang tertunda dari memory utama ke memory sekunder).Penjadwalan jangka panjang (long-termscheduller)Penjadwalan jangka panjang bekerja terhadap antrian batch (proses – proses dengan penggunaan sumberdaya yang intensif) dan memilih batch berikutnya yang harus di eksekusi.
Ada 2 strategi penjadwalan :
Penjadwalan nonpreemptive
Penjadwalan nonpreemptive
Proses yang sedang berjalan tidak dapat disela. Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
Penjadwalan preemptive
Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu.
Penjadwalan secara preemptive baik tetapi harus dibayar mahal. Peralihan proses memerlukan overhead (banyak tabel yang dikelola). Supaya efektif, banyak proses harus berada di memori utama sehingga proses-proses tersebut dapat segera running begitu diperlukan.
ALGORITMA PENJADWALAN
Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU seperti dijelaskan pada sub bab di bawah ini.
1. First-Come First-Served Scheduling (FCFS)
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU pertama kali akan dialokasikan ke CPU pertama kali. Misalnya terdapat tiga proses yang dapat dengan urutan P1, P2, dan P3 dengan
waktu CPU-burst dalam milidetik yang diberikan sebagai berikut :
Process Burst TimeP1 24P2 3P3 3
Gant Chart dengan penjadwalan FCFS adalah sebagai berikut :
Waktu tunggu untuk P1 adalah 0, P2 adalah 24 dan P3 adalah 27 sehingga rata-rata waktu tunggu adalah (0 + 24 + 27)/3 = 17 milidetik. Sedangkan apabila proses datang dengan urutan P2, P3, dan P1, hasil penjadwalan CPU dapat dilihat pada gant chart berikut :
Waktu tunggu sekarang untuk P1 adalah 6, P2 adalah 0 dan P3 adalah
3 sehingga ratarata waktu tunggu adalah (6 + 0 + 3)/3 = 3 milidetik.
Rata-rata waktu tunggu kasus ini jauh lebih baik dibandingkan dengan
kasus sebelumnya. Pada penjadwalan CPU dimungkinkan terjadi Convoy effect apabila proses yang pendek berada pada proses yang panjang. Algoritma FCFS termasuk non-preemptive.
karena, sekali CPU dialokasikan pada suatu proses, maka proses tersebut
tetap akan memakai CPU sampai proses tersebut melepaskannya, yaitu jika
proses tersebut berhenti atau meminta I/O.
2. Shortest Job First Scheduler (SJF)
Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu. Terdapat dua skema :
1. Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai.
2.
Preemptive, jika proses baru datang dengan panjang CPU burst lebih
pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses
ini ditunda dan diganti dengan proses baru. Skema ini disebut dengan
Shortest-Remaining-Time-First (SRTF). SJF adalah algoritma penjadwalan
yang optimal dengan rata-rata waktu tunggu yang minimal. Misalnya
terdapat empat proses dengan panjang CPU burst dalam milidetik.
Process ArrivalTime Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
Penjadwalan proses dengan algoritma SJF (non-preemptive) dapat dilihat pada gantchart berikut :
Waktu tunggu untuk P1 adalah 0, P2 adalah 26, P3 adalah 3 dan P4 adalah 7 sehingga rata-rata waktu tunggu adalah (0 + 6 + 3 + 7)/4 = 4 milidetik.
Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3 adalah 0 dan P4 adalah 4 sehingga rata-rata waktu tunggu adalah (9 + 1 + 0 + 4)/4 = 3 milidetik.
3 Priority Scheduling
Algoritma
SJF adalah suatu kasus khusus dari penjadwalan berprioritas. Tiaptiap
proses dilengkapi dengan nomor prioritas (integer). CPU dialokasikan
untuk proses yang memiliki prioritas paling tinggi (nilai integer
terkecil biasanya merupakan prioritas terbesar). Jika beberapa proses
memiliki prioritas yang sama, maka akan digunakan algoritma FCFS.
Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive dan
preemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1. Seandainya prioritas P1 lebih besar dibanding dengan prioritas P0, maka pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan P1 pada posisi head queue. Sedangkan pada preemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1. Misalnya terdapat lima proses P1, P2, P3, P4 dan P5 yang datang secara berurutan dengan CPU burst dalam milidetik.
Process Burst Time PriorityP1 10 3P2 1 1P3 2 3P4 1 4P5 5 2
Penjadwalan proses dengan algoritma priority dapat dilihat pada gant chart berikut :
4 Round-Robin Scheduling
Konsep
dasar dari algoritma ini adalah dengan menggunakan time-sharing. Pada
dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive.
Setiap proses mendapatkan waktu CPU yang disebut 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.
Process Burst TimeP1 24P2 3P3 3
Penjadwalan proses dengan algoritma round robin dapat dilihat pada gant chart berikut :
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. Algoritma Round-Robin ini di satu sisi memiliki keuntungan,
yaitu adanya keseragaman waktu. Namun di sisi lain, algoritma ini akan
terlalu sering melakukan switching seperti yang terlihat pada Gambar
4-4. Semakin besar quantum-timenya maka switching yang terjadi akan
semakin sedikit.
1 comments
hmm,, mungkin hanya beberapa kata..
tulisannya jangan rapet", jadi males bacanya,,
trus udah lengkap sih tentang materinya, cuman kalo misalnya diringkas lebih ringkas kayaknya lebih enak dipandang dan bakal lebih mudah dimengerti.. hoho
#tuh cho, udah ku comment,, hahaha
Post a Comment