Scheduler (penjadwal) bertugas :
- Memutuskan proses mana yang harus berjalan
- Kapan dan berapa lama proses berjalan
Salah satu parameter penting bagi algoritma penjadwalan adalah karakteristik proses yang akan dieksekusi. Karekteristik proses berdasarkan lama pemakaian CPU dan I/O :
- Proses dengan tipe CPU bound
- Proses dengan tipe I/O bound
Prioritaskan I/O bound untuk mengoptimalkan utilisasi sistem.
Terjadinya Penjadwalan
1. Process creation
2. Process termination
3. Blocking system call
4. I/O interrupt
5. Hardware clock → preemptive atau non-preemptive?
Preemptive
- Prosesor belum selesai mengeksekusi suatu proses. Dengan sifat preemptive, prosesor dapat diambil alih oleh proses lain dengan prioritas lebih tinggi.
- Proses yang disela beralih : running → ready
- Berguna pada sistem yang proses-prosesnya perlu tanggapan prosesor secara cepat.
- Preemptive bagus, tapi memberi overhead karena banyak tabel yang harus dikelola.
Non-preemptive
- Begiru proses diberi jatah layanan prosesor, maka tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
- Eksekusi proses hingga proses selesai, atau blocked karena meminta layanan I/O.
Kategori Algoritma Penjadwalan
Berdasarkan lingkungannya :
1. Batch
2. Interactive
3. Real time
1. Lingkungan Batch
- User tidak butuh respon yang cepat, cocok menggunakan non-preemptive, atau preemptive dengan waktu yang panjang.
- Mengurangi peralihan proses, sehingga meningkatkan performa.
2. Lingkungan Interactive
- Perlu preemptive :
Interactive user
Mencegah satu proses mendominasi pemakaian CPU.
Mencegah satu proses memblokir proses lain karena bug.
- Diterapkan pada server. Melayani banyak user (jarak jauh) yang meminta layanan cepat.
- Menjalankan berbagai jenis proses yang harus diatur agar tidak mengganggu proses lain.
3. Lingkungan Real-Time
- Tidak memerlukan preemption.
- Hanya menjalankan program tertentu untuk satu tujuan.
Tujuan Penjadwalan pada Semua Sistem
- Fairness : semua proses mendapat layanan CPU.
- Policy enforcement : memastikan kebijakan yang diterapkan berjalan
- Balance : mengupayakan semua bagian sistem dalam keadaan sibuk.
Penjadwalan dalam Sistem Batch
1. FCFS (First Come First Serve) → non-preemptive
Tidak berprioritas, sehingga proses-proses yang membutuhkan waktu lama membuat proses-proses pendek menunggu, dan proses-proses tidak penting dapat membuat proses-proses penting menunggu.
Ketentuan :
>> Proses-proses diberi jatah waktu , prosesor diurutkan berdasarkan waktu kedatangan proses.
>> Begitu proses mendapat jatah waktu prosesor, proses dijalankan samapi selesai.
2. SJF (Shortest Job First) → non-preemptive
Mendahulukan proses dengan waktu jalan terpendek sampai selesai, setelah itu proses dengan waktu jalan terpendek berikutnya dijadwalkan.
3. SRTF (Shortest Remaining Time First) → preemptive
Mengestimasi waktu proses terendah untuk dijalankan, termasuk proses-proses yang abru tiba.
Proses yang running dapat diambil alih oleh proses baru yang sisa waktu jalannya lebih rendah.
Mendahulukan proses dengan waktu jalan terpendek sampai selesai, setelah itu proses dengan waktu jalan terpendek berikutnya dijadwalkan.
3. SRTF (Shortest Remaining Time First) → preemptive
Mengestimasi waktu proses terendah untuk dijalankan, termasuk proses-proses yang abru tiba.
Proses yang running dapat diambil alih oleh proses baru yang sisa waktu jalannya lebih rendah.
No comments:
Post a Comment