Sesi 1 & 2 – Scheduling
Cara kerja dari CPU Scheduler adalah memilih sebuah proses-proses dalam memory yang siap untuk dieksekusi, dan mengalokasikan CPU ke salah satu dari proses tersebut.
CPU Scheduling terjadi saat proses berikut terjadi:
- Perubahan state dari running ke waiting.
- Perubahan state dari running ke ready.
- Perubahan state dari waiting ke ready.
- Terminates.
Tipe-tipe Scheduler:
- Long-term Scheduling : Keputusan untuk menambahkan suatu proses kedalam daftar proses yang akan dieksekusi.
- Medium-term Scheduling : Keputusan untuk menambahkan beberapa proses yang ada dalam main memory baik secara utuh maupun parsial.
- Short-term Scheduling : Keputusan untuk memilih proses mana yang dapat dieksekusi oleh prosesor.
- I/O Scheduling : Keputusan untuk menjalankan proses I/O yang belum berjalan oleh I/O device yang tersedia.
Dispatcher memberikan control CPU kepada proses yang dipilih oleh Short-term Scheduler.
Dispatch latency merupakan waktu yang diperlukan oleh dispatcher untuk menghentikan sebuah proses dan menjalankan proses lainnya.
Kriteria-kriteria Scheduling :
- CPU Utilization : CPU harus berjalan sesering mungkin.
- Throughput : Banyaknya proses yang selesai dikerjakan dalam satu satuan waktu.
- Turnaround Time : Waktu yang dibutuhkan untuk menjalankan sebuah proses tertentu.
- Waiting Time : Waktu tunggu sebuah proses dalam ready queue.
- Response Time : Waktu yang dibutuhkan oleh sebuah proses dari minta dilayani hingga ada respon pertama yang menanggapi layanan tersebut.
Kriteria-kriteria Optimization :
- Max CPU Utilization
- Max Throughput
- Min Turnaround Time
- Min Waiting Time
- Min Response Time
Tujuan dari Scheduling :
- All Systems
- Fairness : Setiap proses mendapat pembagian CPU yang sama.
- Policy Enforcement : Kebijakan dijalankan
- Balance : Menjaga agar setiap part dari system berjalan
- Batch Systems
- Throughput : Memaksimalkan pekerjaan tiap jam.
- Turnaround Time : Meminimalkan waktu antara submission dan termination.
- CPU Utilization : Menjaga agar CPU selalu sibuk.
- Interactive Systems
- Response Time : Respon terhadap suatu request secepat mungkin.
- Proportionality : Sesuai dengan ekspektasi user.
- Real-Time Systems
- Meeting deadlines : Menghindari kehilangan data
- Predictability : Menghindari penurunan kualitas dalam system multimedia
BATCH-SCHEDULING ALGORITHM :
- First-Come First-Serve
Proses diassign ke dalam CPU secara urut. Kemudahan menggunakan algoritma ini adalah mudah dimengerti dan mudah untuk di buat programnya. Sedangkan kesulitannya adalah tugas yg kecil/sedikit akan menunggu telalu lama jika mengantri dibelakang tugas yg besar.
- Shortest Job First – Non Preemptive
Ketika CPU diberikan suatu proses yg tidak bisa di interupsi sampai CPU burst-nya selesai.
- Shortest Job First – Preemptive
Ketika CPU diberikan suatu proses yg bisa di interupsi sebelum CPU burst-nya selesai.
- Interactive Scheduling Algorithm
- Round-robin scheduling
- Priority scheduling
- Multiple queues
- Shortest process next
- Guaranteed scheduling
- Lottery scheduling
- Fair-share scheduling
Tugas dari Buku halaman 447 nomor 9.2 :
Jawab:
- First-Come First-Serve
Waiting time for A=0, B=2, C=5, D=1, E=3
Average Waiting Time = (0+2+5+1+3)/5 = 2,2
- Shortest Job First – Non Preemptive
Waiting time for A=0, B=4, C=0, D=1, E=3
Average Waiting Time = (0+4+0+1+3)/5 = 1,6
- Shortest Job First – Preemptive
Waiting time for A=0, B=4, C=0, D=1, E=3
Average Waiting Time = (0+4+0+1+3)/5 = 1,6