Penjadwalan / Scheduling dalan Sistem Operasi
"Penjadwalan / Scheduling dalan Sistem Operasi"
Dalam suatu sistem operasi, operasi yang membuat pilihan dinamakan scheduler (penjadwalan), sedangkan algoritma yang digunakan dinamakan schedulling algorithm (algoritma penjadwalan). Penjadwalan atau scheduling adalah sebuah metode dalam sistem operasi yang mengatur proses-proses yang akan berjalan dalam suatu sistem operasi. Hal ini sangat diperlukan karena pada saat ini komputer berbasiskan multiprogramming.
Multiprogramming 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 system.
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses-proses yang ada di dalam computer. Dimana proses-proses tersebut berjalan dalam pola yang disebut Siklus Burst. Keberhasilan dari penjadwalan CPU tergantung dari beberapa properti prosesor. Pengeksekusian dari proses tersebut terdiri atas siklus CPU ekskusi dan I/O Wait. Proses hanya akan bolak-balik dari dua state ini, inilah yang disebut Siklus Burst CPU-I/O. Jika dalam suatu proses Burst CPU jauh lebih besar daripada Burst I/O maka disebut CPU Bound. Demikian juga sebaliknya disebut dengn I/O Bound.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
- berubah dari running ke waiting state
- berubah dari running ke ready state
- berubah dari waiting ke ready state atau terminates
Bagian dari sistem Komponen yang lain yang terlibat dalam penjadwalan CPU adalah dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal. Fungsinya adalah sebagai Context switching yaitu mengganti state dari suatu proses dan mengembalikannya untuk menghindari monopoli CPU time. Context switching dilakukan untuk menangani suatu interrupt (misalnya menunggu waktu I/O). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Block harus dibuat untuk mengingat proses-proses yang sedang diatur scheduler.
Selain state suatu proses, PCB juga menyimpan process ID, program counter(posisi saat ini pada program), prioritas proses dan data-data tambahan lainnya. Fungsi lain dari dispatcher adalah sebagai Switching to user mode dari kernel mode dan lompat dari suatu bagian di progam user untuk mengulang program. Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai proses yang lain disebut dengan dispatch latency.
A. Tipe Penjadwalan
Terdapat 3 tipe penjadwal berada secara bersama-sama pada sistem operasi yang kompleks, yaitu:
1. Penjadwal jangka pendek (short term scheduller)
Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di memori. Penjadwalan dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan.
2. Penjadwal jangka menengah (medium term scheduller)
Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system call. Proses-proses tertunda tidak dapat membuat suatu kemajuan menuju selesai sampai kondisi-kondisi yang menyebabkan tertunda dihilangkan. Agar ruang memori dapat bermanfaat, maka proses dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama terbatas untuk sejumlah proses aktif.
Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder disebut swapping. Proses-proses mempunyai kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready.
3. Penjadwal jangka panjang (long term scheduller)
Penjadwal ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.
B. Strategi penjadwalan
Terdapat dua strategi penjadwalan, yaitu :
1. Penjadwalan nonpreemptive (run to completion)
Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
2. 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. Berguna pada sistem dimana proses-proses yang mendapat perhatian/tanggapan pemroses secara cepat
Penjadwalan berkaitan dengan permasalahan memutuskan proses mana yang akan dilaksanakan dalam suatu sistem. Proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready queue. Algoritma penjadwalan berfungsi untuk menentukan proses manakah yang ada di ready queue yang akan dieksekusi oleh CPU. Terdapat berbagai macam algoritma, antara lain :
a. First Come First Serve.
Algoritma ini mendahulukan proses yang lebih dulu datang. Kelemahannya, waiting time rata-rata cukup lama.
b. Shortest Job First.
Algoritma ini mendahulukan proses dengan CPU burst terkecil sehingga akan mengurangi waiting time rata-rata.
c. Priority Scheduling.
Algoritma ini mendahulukan prioritas terbesar. Kelemahannya, prioritas kecil tidak mendapat jatah CPU Hal ini dapat diatasi dengan aging yaitu semakin lama lama menunggu, prioritas semakin tinggi.
d. Round Robin.
Algoritma ini menggilir proses-proses yang ada diantrian dengan jatah time quantum yang sama. Jika waktu habis, CPU dialokasikan ke proses selanjutnya.
e. Multilevel Queue.
Algoritma ini membagi beberapa antrian yang akan diberi prioritas berdasarkan tingkatan. Tingkatan lebih tinggi menjadi prioritas utama.
f. Multilevel Feedback Queue.
Pada dasarnya sama dengan Multilevel Queue, yang membedakannya adalah pada algoritma ini diizinkan untuk pindah antrian.
Round Robin Scheduling.
Penjadwalan Round Robin (RR) ini dilakukan secara bergiliran berdasarkan antrian, prosessor mengerjakan sesaat setiap proses berturut-turut. Proses yang telah dieksekusi prosessor dan belum selesai akan kembali ke antrian terakhir yang ada pada saat itu sehingga penggiliran untuk eksekusi tersebut seperti gelang.
Semua proses di anggap penting dan diberi sejumlah waktu pemroses yang disebut kwanta (quantum) atau time-slice dimana prose situ berjalan.
- Konsep dasar algoritma ini menggunakan time sharing
- Pada dasarnya, prinsip hampir sama dengan FCFS, tapi bersifat preemptive
- proses akan dibatasi waktu prosesnya, yang disebut quantum time
- Keuntungan algoritma round robin :
- Adanya keseragaman waktu
- Kelemahannya :
- Jika quantum time sangat besar à switching yang terjadi akan semakin sedikit (seperti FCFS)
- Jika quantum time terlalu kecil à switching yang terjadi akan semakin banyak, sehingga banyak waktu yang terbuang
- Ketentuan Algoritma Round Robin adalah :
- Jika proses memiliki CPU Burst < Quantum Time, maka proses akan melepaskan CPU, jika telah selesai digunakan à CPU dapat segera digunakan oleh proses selanjutnya
- Jika proses memiliki CPU Burst > Quantum Time, maka proses tersebut akan dihentikan jika sudah mencapai quantum time dan selanjutnya mengantri kembali pada posisi tail queue (ekor dari ready queue), CPU kemudian menjalankan proses berikutnya
Jika quantum time belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan CPU dialihkan ke proses lain
0 Komentar:
Posting Komentar
Berlangganan Posting Komentar [Atom]
<< Beranda