KONSEP DASAR PENJADWALAN PROSES
Penjadwalan CPU adalah pemilihan proses dari Ready Queue untuk dapat dieksekusi.
Penjadwalan CPU didasarkan pada sistem operasi yang menggunakan prinsip
Multiprogramming.
1. Proses yang harus berjalan.
2. Kapan dan selama berapa lama proses itu berjalan.
Kita mengenal istilah multiprograming,
yang bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi
waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan
memperkecil waktu idle. Akibatnya sistem operasi dapat membuat
komputer lebih produktif. Oleh karena itu perlu adanya penjadwalan
proses-proses yang ada pada sistem.
Penjadwalan CPU secara
garis besar dibagi menjadi 2 yaitu :
1. Penjadwalan Preemptive
Penjadwalan Preemptive mempunyai arti kemampuan sistem
operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi
ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan
proses atau M/K. Penjadwalan Preemptive memungkinkan sistem untuk lebih
bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem
lebih cepat merespon terhadap event dari
luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari
satu atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai keuntungan yaitu sistem
lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive.
Penjadwalan
CPU mungkin akan dijalankan ketika proses dalam keadaan:
1. Berubah
dari running ke waiting state.
2. Berubah
dari running ke ready state.
3. Berubah
dari waiting ke ready state.
4. Dihentikan
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive. Penjadwalan yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori:
1. Proses yang memiliki Burst M/K
yang sangat lama disebut I/O Bound.
2. Proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound.
Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat dimana sistem menunggu request
input(seperti disk,keyboard,
atau jaringan). Saat busywait tersebut,
proses tidak melakukan sesuatu yang produktif, tetapi tetap memakan resource dari CPU. Dengan penjadwalan Preemptive,
hal tersebut dapat dihindari.
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang
menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses
mana yang akan dieksekusi selanjutnya.
Beberapa contoh sistem operasi
yang menerapkan penjadwalan Preemptive yaitu :
Linux 2.6,Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum. Penjadwalan berjalan setiap satu satuan time
slice untuk memilih
proses mana yang akan berjalan selanjutnya. Bila time
slice terlalu pendek
maka penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time
slice terlau lama maka
memungkinkan proses untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan.
2. Penjadwalan Non
Preemptive
Penjadwalan Non
Preemptive ialah salah
satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context
switch dari proses
yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
1. Berjalan dari running
state sampai waiting
state.
2. Dihentikan.
Ini berarti CPU menjaga
proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak
diganggu). Metode ini digunakan oleh Microsoft
Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan
untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang
digunakan untuk menginterupt pada metode penjadwalan Preemptive).
KRITERIA PENJADWALAN
Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti,sehingga untuk memiliki algoritma ini harus di pertimbangkan duluh properti-properti algoritma tersebut.
1. CPU utilization: Diharapkan agar CPU selalu dalam keadaan sibuk
2. Throughput: Throughput adalah banyaknya proses yang selesai di kerjakan dalam satu satuan waktu
3. Turnaround time: Banyaknya waktu yang di perlukan untuk mengeskusi proses,dari mulai menunggu untuk memerintah tempat di memori utama,menunggu di ready queue,eksekusi oleh CPU,dan mengerjakan I/O samapi semua proses-proses tersebut diselesaikan.
4. Waiting time: Waktu yang di perlukan oleh suatu proses untuk menunggu di ready queue
5. Response time: Waktu yang di butuhkan oleh suatu proses dari minta di layani hingga ada respont pertama yang menanggapi permintaan tersebut
6.Fairness . Suatu
algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses
(menghindari terjadinya starvation CPU time).
7.Efisiensi. Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.
Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan meminimalkanturnaround time, waiting time, dan response time.
7.Efisiensi. Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.
Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan meminimalkanturnaround time, waiting time, dan response time.
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.
First Come First Server (FCFS)
Pertama datang, pertama dilayani (First In, First Out atau FIFO) tidak peduli apakah Burst timenya panjang atau pendek, sebuah proses yang sedang dikerjakan, diselesaikan dulu barulah proses berikutnya dilayani.
Penjadwalan FCFS merupakan penjadwalan:
• Penjadwalan non-preemptive (run-to-completion)
• Penjadwalan tidak berprioritas
Ketentuan dari penjadwalan FCFS adalah:
• Proses-proses dberi jatah waktu pemroses, diurut dengan waktu kedatangannya.
• Begitu proses mendapat jatah waktu pemroses, proses dijalankan sampai proses tersebut selesai,
walaupun ada proses lain yang datang, proses tersebut berada dalam antrian sistem atau disebut dengan ready queue Pada dasarnya algoritma penjadwalan ini cukup adil dalam hal bahasa, karena proses yang datang lebih dulu dikerjakan terlebih dahulu, pada secara konsep dari sistem operasi, penjadwalan model ini tidak adil karena proses-proses yang membutuhkan waktu yang lama, membuat proses-proses yang memiliki waktu proses yang lebih pendek menunggu sampai proses tersebut selesai, sedangkan proses-proses yang tidak penting membuat proses penting menunggu.
Penjadwalan FCFS cocok digunakan untuk sistem batch yang sangat jarang melakukan interaksi dengan user secara langsung, tapi tidak cocok digunakan untuk sistem interaktif karena tidak memberi waktu tanggap yang bagus, dan begitu juga dengan sistem waktu nyata.
Contoh dari penjadwalan FCFS adalah:

Pada saat posisi P1 masuk pada waktu 0, maka P1 dijalankan sebanyak 12, dan P2 masuk pada saat 2, P3 pada saat 3, P4 pada saat 5 dan P5 pada waktu 9. Pada posisi 12 P1 selesai dikerjakan, dan P2 akan dieksekusi karena P2 lebih dulu berasa didalam Ready Queue(RQ) karena pada contoh di atas menggunakan algoritma FCFS (First Come First Server) dan begitulah seterusnya sampai semua proses selesai dikerjakan.setelah semua proses dikerjakan maka dihitung waktu tunggu setiap proses maka akan ditemukan jumlah waktu tunggu rata-rata dari setiap proses, seperti contoh di bawah ini:
Jadi waktu tunggu setiap proses adalah :
P1 = 0 = 0
P2 = 12-2 =10
P3 = 20-3 = 17
P4 = 25-5 = 20
P5 = 27-9 = 18
-------------------
Jumlah = 65
Rata-rata waktu tunggu untuk setiap proses adalah : Avg 65/5 = 13 satuan waktu.
Jika urutan proses pada contoh di atas di balikkan misal: P5, P4, P3, P2, P1 dengan waktu kedatangan dan burst tetap sama, maka akan terdapat waktu ganggur CPU ( idle time) antara waktu 1 dan 2 sehingga panjangnya waktu yang dibutuhkan untuk menyelesaikan lima proses tersebut menjadi 29 atau bertambah satu dari waktu yang dibutuhkan sebelumnya.

Shortest Job First Scheduler (SJF)
Pada penjadwalan SJF, Proses yang memiliki CPU burst
yang akan pertama kali dilayani terlebih dahulu. Penjadwalan SJF terdapat dua
skema, yaitu :
1. Non
preemptive yaitu bila CPU diberikan pada proses, maka tidak bisa ditunda sampai
CPU burst selesai.
2. 2. Preemptive
yaitu jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa
waktu proses yang saat itu sedang dieksekusi, proses ini akan ditunda dan akan
diganti dengan proses yang baru. Skema ini biasa disebut juga dengan Shortest-Remaining-Time-First (SRTF).
SJF - Non
preemptive
|
Proses
|
Arrival Time (AT)
|
Bursh Time (BT)
|
|
P1
|
0
|
12
|
|
P2
|
2
|
8
|
|
P3
|
3
|
5
|
|
P4
|
5
|
2
|
|
P5
|
9
|
Pada SJF - Non preemptive mirip dengan FCFS(), tetapi Jika AT
(Arrival Time) sama, maka dipilih proses yang BT (Burst time) lebih pendek
untuk diproses dulu, atau dengan kata lain penjadwalan ini lebih dahulu
menjadwalkan proses dengan waktu terpendek sampai selesai.
Tidak ada komentar:
Posting Komentar