Algoritma Penjadwalan Sistem Operasi

Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. 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.

Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: proses yang memiliki Burst M/K yang sangat lama disebut I/O Bound, dan 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.

Jenis- jenis algoritna Preemtive

  1. Round Robin (RR)
    Ini merupakan penjadwalan yang paling tua, sederhana dan mudah diimplementasikan. Penjadwalan tidak dipengaruhi oleh proses lain tetapi oleh waktu berjalannya sebuah proses. Penjadwalan ini berasumsi bahwa semua proses memiliki kepentingan sehingga tiadak ada yang menjadi prioritas utama. Semua proses diberikan waktu untuk melakukan proses yang disebut dengan quantum atau time slice. Jika suatu prose masih berjalan sampai batas waktu(quantum) habis, maka CPU akan mengalihkan waktu proses tersebut ke proses yang lain.

    Permasalahan utama pada Round Robin adalah menentukan besarnya quantum. Jika time quantum yang ditentukan terlalu kecil, proses bisa saja tidak selesai dalam satu quantum. Hal ini dapat menyebabkan CPU melakukan banyak pengalihan, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya, jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma first come first served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1 time quantum.


     
  2. Shortest Remaining First (SRF)
Pada algoritma ini, proses dengan waktu pemrosesan terendah yang akan dijalankan terlebih dahulu, walau pun proses tersebut baru tiba di antrean proses. Selain itu, jika da proses yang sedang berjalan, dapat di ambil alih oleh proses yang memiliki waktu pemrosesan lebih sedikit.

Kekurangan :
SRF perlu menyimpan waktu layana yang telah dihabiskan oleh Job dan terkadang perlu menangani peralihan selama proses.
    Proses-proses kecil dapat berjalan tiba-tiba

 
  1. Priority Schedulling (PS)
Setiap proses akan di kerjakan sesuai dengan prioritasnya. Yang paling pertama dikerjakan adalah prioritas tertinggi. Dalam algoritma ini, proses di asumsikan memiliki tingkat prioritas masing-masing. Kelemahan pada priority scheduling adalah dapat terjadinya indefinite blocking( starvation). Suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak dieksekusi jika terdapat proses lain yang memiliki prioritas lebih tinggi darinya. Solusi dari permasalahan ini adalah aging, yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam queue secara bertahap.


 
  1. Guaranteed Schedulling (GS)
    Penjadwalan ini memberikan memberi daya pemroses yang sama untuk membuat dan menyesuaikan performance jika ada N pemakai, sehingga setiap proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU.


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.

Jenis-jenis algoritma Non-preemptive

  1. First In First Out (FIFO)
    Metode ini adalah metode yang paling sederhana, dimana waktu pemrosesan diurutkan berdasarkan waktu kedatangan dari proses tersebut. Saat mendapatkan waktu untuk melakukan pemrosesan, suatu proses akan dijalankan sampai selesai. Setelah proses pertama selesai maka akan dilakukan proses yang dating diurutan ke dua, dan berlanjut keproses selanjutnya.
  2. Shortest Job First (SJF)
    Penjadwalan ini mengasumsikan waktu berjalannya proses sampai selesai telah diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.

    Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus dinamis.
  3. Highest Ratio Next merupakan strategi penjadwalan dengan prioritas proses tidak hanya berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.
    Prioritas dinamis HRN dihitung berdasarkan rumus : Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus. Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.
  4. Merupakan penjadwalan berprioritas dinamis. Penjadwalan ini untuk mencegah (mengurangi) banyaknya swappingdengan proses-proses yang sangat banyak menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya.

2 comments:

  1. Semoga jadi dosen sobat,.
    tukeran link, udah nongol di blogku tuh linkmu,.
    http://mahasiswatrader.blogspot.com/

    ReplyDelete
  2. thx udah ngelink jg,,.
    salam kanal...

    hahahaha

    ReplyDelete