Kali ini saya akan membahas bagian penjadwalan/scheduling dari sistem operasi. Oke Markibas, (Mari kita bahas) yuk!
Scheduling dalam sistem operasi dapat diartikan dengan penjadwalan beberapa proses yang dieksekusi secara satu persatu atau bergantian pada sistem pemrosesan prosesor tunggal. Proses mana yang akan dijalankan dahulu? Nah, itulah yang dibahas pada penjelasan kali ini, di bawah terdapat beberapa cara prosesor menyelesaikan eksekusi proses tersebut atau yang biasa disebut dengan algoritma penjadwalan.
Sebelumnya, tujuan dari penjadwalan CPU sendiri adalah dapat memberikan penyelesaian eksekusi program dengan cepat tanpa adanya starvation pada prosesnya dan juga penggunaan prosesor yang lebih efisien dalam menyelesaikan eksekusi program.

Algoritma Penjadwalan
Terdapat beberapa cara dalam penyelesaian eksekusi program, setiap cara memiliki kekurangan dan kelebihan masing-masing dalam pemrosesan eksekusi program. Dan cara tersebut diantaranya yaitu:
1. First Come First Served (FCFS)
FCFS dapat disebut juga sebagai FIFO yang kepanjangannya adalah First In First Out. Dalam cara/algoritma ini, program yang pertama kali masuk ke CPU diproses hingga proses eksekusi tersebut selesai dan proses selanjutnya yang akan diproses adalah program yang masuk kedua setelah program pertama, dan begitupun terus model pengeksekusiannya. Siapa yang datang dahulu, maka proses itu yang diproses lebih dahulu oleh CPU.
2. Round Robin (RR)
Round Robin adalah algoritma yang menggunakan time slice (potongan waktu). Eksekusi dari sebuah proses diatur dengan berdasar pada alokasi waktu proses. Jadi, proses dari program pertama akan dipotong jika proses kedua datang ke dalam antrian, dan proses kedua akan dipotong jika proses ketiga datang juga ke dalam antrian, pemrosesan proses tersebut dijalankan terpotong-potong hingga proses tersebut selesai diproses.
3. Shortest Process Next (SPN)
SPN dapat disebut juga sebagai SJF (Shortest Job First), yaitu proses dengan waktu eksekusi terpendek akan diproses lebih dahulu, dan dijalankan sampai proses tersebut benar-benar selesai.
4. Shortest Remaining Time (SRT)
Algoritma dari SRT mirip dengan algoritma yang dimiliki oleh cara SPN, namun perbedaan dari SPN yaitu jika di SRT proses yang memiliki total waktu eksekusinya paling kecil akan langsung diproses tanpa harus menunggu proses sekarang yang sedang berjalan. Proses yang tadinya berjalan akan diantrikan lagi jika sisa waktu dari waktu eksekusi proses tersebut lebih pendek daripada proses lainnya.
5. Highest Response Ratio Next (HRRN)
HRRN adalah algoritma pemroresan dengan memperhatikan proses dengan rasio respon yang paling tinggi. Dalam mendapatkan rasio respon dapat menggunakan cara ini, Rasio = (waktu_tunggu + perkiraan_waktu_layan) / (perkiraan_waktu_layan). Jadi dalam algoritma ini proses yang kecil akan menghasilkan rasio yang tinggi, sehingga proses ini akan diutamakan oleh CPU.
6. Feedback (FB)
Feedback adalah algoritma yang mirip dengan Round Robin (RR). Yaitu proses akan diantrikan jika terdapat proses yang datang dan dijalankan secara bergantian/terpotong-potong dalam kuantum waktu tertentu. Kuantum waktu tersebut bisa sama, bisa juga tidak sama.

Penjadwalan Real-Time
Penjadwalan real-time dapat diartikan dengan penjadwalan yang benar-benar valid, yang ditentukan oleh hasil logika dan waktu hasil diperoleh.
Terdapat dua jenis penjadwalan berdasarkan tugasnya yaitu penjadwalan dengan hard real time, dan penjadwalan dengan soft real time. Dalam hard real time, tugas yang dikerjakan harus selesai tepat waktu namun pada soft real time, tugas yang dikerjakan harus selesai namun tidak ada batasan waktunya.
Sebelumnya, ciri-ciri dari penjadwalan real-time diantaranya:
Determinism = Suatu proses memiliki batasan untuk dikerjakan
Responsiveness = Respon suatu proses untuk dikerjakan
User Control = Kontrol dari user terhadap proses yang dieksekusi
Realiability = Penjadwalan ini dapat diandalkan dalam penangan masalah pada sistem operasi
Fail-Soft Operation = Penyelesaian masalah yang ada pada sistem operasi
Dalam penjadwalan real-time terdapat beberapa piihan algoritma yaitu:
- Static Table-Driven Approaches
Pada pilihan ini, analisis statis digunakan untuk mencari tugas-tugas mana saja yang ikut dalam antrian dan deadline mana yang paling dekat, maka itulah yang dijalankan lebih dahulu.
- Static Priority-Driven Preemptive Approaches
Tugas-tugas diprioritaskan berdasarkan batasan waktu mereka. Pada saat dijalankan jika ada tugas dengan prioritas lebih tinggi, tugas yang sedang dijalankan dapat dihentikan.
- Dynamic Planning-Based Approaches
Tugas-tugas sudah direncakan untuk dijalankan, namun jika ada tugas baru datang dan memungkinkan untuk dijalankan, maka akan diterima untuk dijalankan.
- Dynamic Best Effort Approaches
Pilihan ini mempunyai perintah untuk menjalankan semua tugas yang datang, namun jika deadline tidak terpenuhi, maka dibatalkan.
Dan ada yang mengelompokkan penjadwalan real-time ini dengan algoritma lain, yaitu:
- Clock Driven
Clock driven ini biasa digunakan pada hard real-time sistem. Pelaksanaannya menggunakan timer interrupt dan scheduler dapat melakukan pekerjaannya setelah interupsi terjadi.
- Weighted Round Robin
Weighted Round Robin ini digunakan untuk penjadwalan real-time traffic berkecepatan tinggi. Contohnya yaitu pada algoritma penjadwalan jaringan.
- Priority Driven
Priority driven ini mengutamakan priotas untuk penyelesaian suatu proses yang dieksekusi. Biasanya digunakan untuk dinamis real-time sistem.
Terimakasih, pembahasan scheduling dan real-time scheduling sampai disini. Mohon maklum bila terdapat kesalahan dalam penulisan. :)