Apa itu Penjadwalan CPU?
Penjadwalan CPU adalah proses untuk menentukan proses mana yang akan memiliki CPU untuk dieksekusi saat proses lain sedang ditunda. Tugas utama penjadwalan CPU adalah memastikan bahwa setiap kali CPU tidak aktif, OS setidaknya memilih salah satu proses yang tersedia dalam antrean siap untuk dieksekusi. Proses pemilihan akan dilakukan oleh penjadwal CPU. Penjadwal CPU memilih salah satu proses dalam memori yang siap untuk dieksekusi.
Jenis Penjadwalan CPU
Berikut adalah dua jenis metode Penjadwalan:

Penjadwalan Preemptif
Dalam Penjadwalan Preemptif, tugas-tugas sebagian besar ditetapkan dengan prioritasnya. Terkadang penting untuk menjalankan tugas dengan prioritas lebih tinggi sebelum tugas dengan prioritas lebih rendah lainnya, meskipun tugas dengan prioritas lebih rendah tersebut masih berjalan. Tugas dengan prioritas lebih rendah tersebut bertahan selama beberapa waktu dan dilanjutkan ketika tugas dengan prioritas lebih tinggi menyelesaikan eksekusinya.
Penjadwalan Non-Preemptif
Dalam metode penjadwalan jenis ini, CPU telah dialokasikan ke suatu proses tertentu. Proses yang membuat CPU tetap sibuk akan melepaskan CPU baik dengan cara mengganti konteks atau mengakhirinya. Ini adalah satu-satunya metode yang dapat digunakan untuk berbagai platform perangkat keras. Itu karena metode ini tidak memerlukan perangkat keras khusus (misalnya, pengatur waktu) seperti penjadwalan preemptif.
Kapan penjadwalan bersifat Preemptif atau Non-Preemptif?
Untuk menentukan apakah penjadwalan bersifat preemptif atau non-preemptif, pertimbangkan empat parameter ini:
- Suatu proses beralih dari status berjalan ke status menunggu.
- Proses spesifik beralih dari status berjalan ke status siap.
- Proses spesifik beralih dari status menunggu ke status siap.
- Proses menyelesaikan eksekusinya dan berakhir.
Hanya kondisi 1 dan 4 yang berlaku, penjadwalan ini disebut non-preemptive.
Semua penjadwalan lainnya bersifat preemptif.
Istilah Penting Penjadwalan CPU
- Burst Time/Execution Time: Ini adalah waktu yang dibutuhkan oleh proses untuk menyelesaikan eksekusi. Ini juga disebut running time.
- Arrival Time: ketika suatu proses memasuki keadaan siap
- Finish Time: saat proses selesai dan keluar dari sistem
- Multiprogramming: Sejumlah program yang dapat hadir dalam memori pada saat yang bersamaan.
- Jobs: Ini adalah jenis program tanpa interaksi pengguna apa pun.
- User: Ini adalah jenis program yang memiliki interaksi pengguna.
- Process: Ini adalah referensi yang digunakan untuk pekerjaan dan pengguna.
- CPU/IO burst cycle: Mencirikan eksekusi proses, yang bergantian antara aktivitas CPU dan I/O. Waktu CPU biasanya lebih singkat daripada waktu I/O.
Kriteria Penjadwalan CPU
Algoritma penjadwalan CPU mencoba memaksimalkan dan meminimalkan hal berikut:

Maximize
Pemanfaatan CPU: Pemanfaatan CPU adalah tugas utama yang harus dipastikan oleh sistem operasi agar CPU tetap sibuk sebisa mungkin. Pemanfaatan CPU dapat berkisar dari 0 hingga 100 persen. Namun, untuk RTOS, pemanfaatan CPU dapat berkisar dari 40 persen untuk sistem level rendah dan 90 persen untuk sistem level tinggi.
Throughput: Jumlah proses yang menyelesaikan eksekusinya per satuan waktu disebut Throughput. Jadi, ketika CPU sedang sibuk mengeksekusi proses, pada saat itu, pekerjaan sedang dilakukan, dan pekerjaan yang diselesaikan per satuan waktu disebut Throughput.
Minimize
Waiting time: Waktu tunggu adalah jumlah waktu yang dibutuhkan proses tertentu untuk menunggu dalam antrian siap.
Response time: Jumlah waktu sejak permintaan diajukan hingga respons pertama diberikan.
Turnaround Time: Turnaround time adalah jumlah waktu untuk menjalankan proses tertentu. Ini adalah perhitungan total waktu yang dihabiskan untuk menunggu masuk ke memori, menunggu dalam antrean, dan mengeksekusi pada CPU. Periode antara waktu penyerahan proses hingga waktu penyelesaian adalah turnaround time.
Interval Timer
Interupsi timer merupakan metode yang berkaitan erat dengan preemption. Saat proses tertentu mendapatkan alokasi CPU, timer dapat diatur ke interval tertentu. Baik interupsi timer maupun preemption memaksa proses untuk mengembalikan CPU sebelum CPU burst-nya selesai.
Sebagian besar sistem operasi multi-program menggunakan beberapa bentuk pengatur waktu untuk mencegah suatu proses membebani sistem selamanya.
Apa itu Dispatcher?
Modul ini menyediakan kontrol CPU untuk proses. Dispatcher harus cepat sehingga dapat berjalan pada setiap pergantian konteks. Latensi dispatch adalah jumlah waktu yang dibutuhkan oleh penjadwal CPU untuk menghentikan satu proses dan memulai proses lain.
Fungsi yang dilakukan oleh Dispatcher:
- Peralihan Konteks
- Beralih ke mode pengguna
- Pindah ke lokasi yang benar dalam program yang baru dimuat.
Jenis Algoritma Penjadwalan CPU
Terdapat enam jenis algoritma penjadwalan proses utama
- First Come First Serve (FCFS)
- Shortest-Job-First (SJF) Scheduling
- Shortest Remaining Time
- Priority Scheduling
- Round Robin Scheduling
- Multilevel Queue Scheduling

First Come First Serve
First Come First Serve adalah bentuk lengkap dari FCFS. Ini adalah algoritma penjadwalan CPU yang paling mudah dan sederhana. Dalam jenis algoritma ini, proses yang meminta CPU akan mendapatkan alokasi CPU terlebih dahulu. Metode penjadwalan ini dapat dikelola dengan antrean FIFO.
Saat proses memasuki antrian siap, PCB (Process Control Block)-nya dihubungkan dengan ekor antrian. Jadi, saat CPU menjadi bebas, CPU tersebut harus ditetapkan ke proses di awal antrian.
Karakteristik metode FCFS
- Menawarkan algoritma penjadwalan non-preemptif dan pre-emptif.
- Pekerjaan selalu dilaksanakan berdasarkan siapa yang datang pertama dan dilayani pertama
- Mudah diimplementasikan dan digunakan.
- Akan tetapi, metode ini kinerjanya buruk, dan waktu tunggu umumnya cukup tinggi.
Shortest Remaining Time
Bentuk lengkap SRT adalah Shortest remainder time. Dikenal juga sebagai SJF preemptive scheduling. Dalam metode ini, proses akan dialokasikan ke tugas yang paling dekat dengan penyelesaiannya. Metode ini mencegah proses status siap yang lebih baru menahan penyelesaian proses yang lebih lama.
Karakteristik metode penjadwalan SRT
- Metode ini paling banyak diterapkan dalam lingkungan batch di mana pekerjaan singkat perlu diutamakan.
- Ini bukan metode yang ideal untuk menerapkannya dalam sistem bersama di mana waktu CPU yang dibutuhkan tidak diketahui.
- Diasosiasikan dengan setiap proses sebagai durasi CPU burst berikutnya. Sehingga sistem operasi menggunakan durasi ini, yang membantu menjadwalkan proses dengan waktu sesingkat mungkin.
Priority Based Scheduling
Penjadwalan Prioritas adalah metode penjadwalan proses berdasarkan prioritas. Dalam metode ini, penjadwal memilih tugas yang akan dikerjakan sesuai prioritas.
Penjadwalan prioritas juga membantu OS untuk melibatkan penugasan prioritas. Proses dengan prioritas lebih tinggi harus dilakukan terlebih dahulu, sedangkan pekerjaan dengan prioritas yang sama dilakukan secara round-robin atau FCFS. Prioritas dapat diputuskan berdasarkan kebutuhan memori, kebutuhan waktu, dll.
Round-Robin Scheduling
Round robin merupakan algoritma penjadwalan tertua dan paling sederhana. Nama algoritma ini berasal dari prinsip round robin, di mana setiap orang mendapat bagian yang sama dari sesuatu secara bergiliran. Algoritma ini paling banyak digunakan untuk algoritma penjadwalan dalam multitasking. Metode algoritma ini membantu untuk menjalankan proses tanpa kekurangan tenaga.
Karakteristik Penjadwalan Round-Robin
- Round robin adalah model hybrid yang digerakkan oleh jam
- Waktu yang dibutuhkan harus minimum, yang ditetapkan untuk tugas tertentu yang akan diproses. Namun, waktu yang dibutuhkan dapat bervariasi untuk setiap proses.
- Ini adalah sistem waktu nyata yang merespons kejadian dalam batas waktu tertentu.
Shortest Job First
SJF adalah bentuk lengkap dari (Shortest job first) yaitu algoritma penjadwalan di mana proses dengan waktu eksekusi terpendek harus dipilih untuk dieksekusi berikutnya. Metode penjadwalan ini dapat bersifat preemptif atau non-preemptif. Metode ini secara signifikan mengurangi waktu tunggu rata-rata untuk proses lain yang menunggu eksekusi.
Karakteristik Penjadwalan SJF
- Ini dikaitkan dengan setiap pekerjaan sebagai satuan waktu untuk diselesaikan.
- Dalam metode ini, ketika CPU tersedia, proses atau pekerjaan berikutnya dengan waktu penyelesaian terpendek akan dieksekusi terlebih dahulu.
- Diimplementasikan dengan kebijakan non-preemptive.
- Metode algoritma ini berguna untuk pemrosesan tipe batch, di mana menunggu pekerjaan selesai bukanlah hal yang penting.
- Ini meningkatkan hasil pekerjaan dengan menawarkan pekerjaan yang lebih pendek, yang harus dieksekusi terlebih dahulu, yang sebagian besar memiliki waktu penyelesaian yang lebih pendek.
Multiple-Level Queues Scheduling
Algoritma ini memisahkan antrian siap ke dalam beberapa antrian terpisah. Dalam metode ini, proses-proses ditetapkan ke dalam antrian berdasarkan properti tertentu dari proses tersebut, seperti prioritas proses, ukuran memori, dll.
Akan tetapi, ini bukanlah algoritma OS penjadwalan yang independen karena perlu menggunakan jenis algoritma lain untuk menjadwalkan pekerjaan.
Karakteristik Penjadwalan Antrean Multilevel
- Beberapa antrian harus dipertahankan untuk proses dengan beberapa karakteristik.
- Setiap antrean mungkin memiliki algoritma penjadwalan tersendiri.
- Prioritas diberikan untuk setiap antrian.
Tujuan Algoritma Penjadwalan
Berikut alasan penggunaan algoritma penjadwalan:
- CPU menggunakan penjadwalan untuk meningkatkan efisiensinya.
- Ini membantu Anda mengalokasikan sumber daya di antara proses yang bersaing.
- Pemanfaatan CPU secara maksimal dapat diperoleh dengan multi-programming.
- Proses yang akan dieksekusi ada dalam antrian siap.
Ringkasan
- Penjadwalan CPU adalah proses penentuan proses mana yang akan memiliki CPU untuk dieksekusi sementara proses lain ditunda.
- Dalam Penjadwalan Preemptif, tugas-tugas sebagian besar ditugaskan dengan prioritasnya.
- Dalam metode penjadwalan Non-preemptive, CPU telah dialokasikan ke proses tertentu.
- Waktu burst adalah waktu yang dibutuhkan proses untuk menyelesaikan eksekusi. Waktu ini juga disebut running time.
- Pemanfaatan CPU merupakan tugas utama yang harus dipastikan oleh sistem operasi agar CPU tetap sibuk semaksimal mungkin.
- Jumlah proses yang menyelesaikan eksekusinya per satuan waktu dikenal sebagai Throughput.
- Waiting Time adalah jumlah waktu yang dibutuhkan suatu proses tertentu untuk menunggu dalam antrian siap.
- Ini adalah jumlah waktu di mana permintaan diajukan hingga respons pertama diberikan.
- Finish Time adalah jumlah waktu untuk menjalankan proses tertentu.
- Timer interruption merupakan metode yang berkaitan erat dengan preemption.
- Dispatcher adalah modul yang menyediakan kontrol CPU terhadap proses.
- Enam jenis algoritma penjadwalan proses adalah: First Come First Serve (FCFS), 2) Shortest-Job-First (SJF) Scheduling, 3) Shortest Remaining Time, 4) Priority Scheduling, 5) Round Robin Scheduling, 6) Multilevel Queue Scheduling.
- Dalam metode First Come First Serve , proses yang meminta CPU akan mendapat alokasi CPU terlebih dahulu.
- Dalam Shortest Remaining time, proses akan dialokasikan ke tugas yang paling dekat penyelesaiannya.
- Dalam Priority Scheduling, penjadwal memilih tugas yang akan dikerjakan sesuai prioritas.
- Round robin scheduling bekerja berdasarkan prinsip di mana setiap orang mendapat bagian yang sama dari sesuatu secara bergantian.
- Pada Shortest job first, waktu eksekusi terpendek harus dipilih untuk dieksekusi berikutnya.
- Metode multilevel scheduling memisahkan antrian siap ke dalam beberapa antrian terpisah. Dalam metode ini, proses ditetapkan ke antrian berdasarkan properti tertentu.
- CPU menggunakan penjadwalan untuk meningkatkan efisiensinya.