Shortest Remaining First (SRF), juga dikenal sebagai Shortest Remaining Time First (SRTF), adalah algoritma penjadwalan proses yang merupakan versi preemptive dari Shortest Job First (SJF). Dalam metode ini, proses dengan waktu eksekusi yang tersisa paling sedikit akan dieksekusi terlebih dahulu. SRF sangat berguna dalam sistem operasi untuk mengoptimalkan penggunaan CPU dan mengurangi waktu tunggu rata-rata proses.
### **Prinsip Kerja SRF**
- **Preemptive Scheduling**: SRF memungkinkan proses yang sedang berjalan untuk dihentikan jika ada proses baru yang tiba dengan waktu eksekusi yang lebih pendek. Ini berarti bahwa setiap kali proses baru datang, sistem akan memeriksa apakah proses tersebut memiliki waktu eksekusi yang tersisa lebih sedikit dibandingkan dengan proses yang sedang berjalan. Jika ya, proses yang sedang berjalan akan dihentikan dan proses baru akan dijalankan.
- **Pengelolaan Waktu Tersisa**: Algoritma ini terus memantau waktu yang tersisa untuk setiap proses dalam antrean. Proses dengan waktu tersisa terpendek akan dipilih untuk dieksekusi, sehingga meminimalkan waktu tunggu keseluruhan.
### **Keuntungan dan Keterbatasan SRF**
#### **Keuntungan:**
- **Waktu Tunggu Rata-rata yang Lebih Pendek**: Dengan memprioritaskan proses yang memiliki waktu eksekusi tersisa paling sedikit, SRF dapat mengurangi waktu tunggu rata-rata untuk semua proses dalam antrean[6][2].
- **Responsif terhadap Proses Baru**: SRF dapat dengan cepat merespons kedatangan proses baru yang lebih pendek, sehingga meningkatkan efisiensi dalam sistem yang memiliki variasi dalam waktu eksekusi proses.
#### **Keterbatasan:**
- **Overhead yang Lebih Tinggi**: SRF memerlukan lebih banyak overhead dibandingkan dengan SJF karena seringnya terjadi konteks switching. Setiap kali proses baru tiba, sistem harus memeriksa dan mungkin menghentikan proses yang sedang berjalan, yang dapat menghabiskan waktu CPU yang berharga[6][2].
- **Masalah Starvation**: Proses yang lebih lama mungkin mengalami kelaparan (starvation) jika proses-proses pendek terus datang, sehingga mereka tidak mendapatkan kesempatan untuk dieksekusi.
### **Contoh Implementasi SRF**