370 likes | 1.44k Views
Penjadwalan Proses. Penjadwalan Preemptive vs Nonpreemptive. Penjadwalan Preemptive Proses yg sdg dieksekusi dpt diinterupsi dan dipaksa utk menyerahkan CPU Penjadwalan Non-preemptive Proses yg sdg dieksekusi menggunakan CPU hingga proses tsb menyerahkannya secara sukarela.
E N D
Penjadwalan Preemptive vs Nonpreemptive • Penjadwalan Preemptive • Proses yg sdg dieksekusi dpt diinterupsi dan dipaksa utk menyerahkan CPU • Penjadwalan Non-preemptive • Proses yg sdg dieksekusi menggunakan CPU hingga proses tsb menyerahkannya secara sukarela
Algoritma Penjadwalan Prosesor Tunggal • Sistem Batch • First Come First Serve (FCFS) • Shortest Job First (SJF) • Sistem Interaktif • Round Robin • Penjadwalan Prioritas / Highest Response Ratio Next (HRRN) • Multi Queue dan Multi Level Feedback • Shortest Process Time • Guaranteed Scheduling • Lottery Scheduling • Fair Sharing Scheduling
First Come First Serve (FCFS) • Proses yg meminta CPU duluan yg dialokasikan CPU duluan • Disebut juga FIFO • Non-preemptive • Digunakan pada sistem batch • Analogi dunia nyata: restoran cepat saji • Implementasi: antrian FIFO • Proses baru memasuki belakang antrian • Scheduler memilih dari depan antrian • Metrik performansi: waktu tunggu rata-rata • Parameter: • Burst time (dlm ms), waktu dan urutan kedatangan
Contoh Kasus Gant Chart : T T T P2 P1 P3 30 0 24 27 Waiting Time P1 = 0 | P2 = 24 – 1 = 23 | P3 = 27 – 2 = 25 0 + 23 + 25 Average Waiting Time = = 16 Turn Around Time P1 = 24 | P2 = 27 – 1 = 26 | P3 = 30 – 2 = 28 3 24 + 26 + 28 Average Turn Arround Time = = 26 3
Shortest Job First (SJF) • Dahulukan job dengan waktu eksekusi tersingkat • Digunakan pada sistem batch • Ada 2 tipe: • Non-preemptive • Preemptive • Kebutuhan: waktu eksekusi harus diketahui terlebih dahulu • Optimal jika semua job tersedia pada waktu yg sama • Memberikan waktu tunggu rata-rata terbaik
Contoh Kasus SJF Non-preemptive Gant Chart : T T T P2 P1 P3 9 18 12 0 Waiting Time P1 = 0 | P2 = ( 12 - 1 ) = 11 | P3 = ( 9 - 2 ) = 7 0 + 11 + 7 Average Waiting Time = = 6 3 Turn Around Time P1 = 9 | P2 = 18 – 1 = 17 | P3 = 12 – 2 = 10 9 + 17 + 10 Average Turn Arround Time = = 12 3
Preemptive SJF • Disebut juga Shortest Remaining Time First (SRTF) • Jadwalkan dulu job dengan sisa waktu eksekusi yang paling singkat • Kebutuhan: waktu eksekusi yang telah terpakai (elapse time) harus diketahui
Contoh Kasus JFS Preemptive Gant Chart : T T T P2 P1 P2 P3 P1 5 10 18 0 1 2 Waiting Time P1 = 0 + ( 10 – 1 ) = 9 | P2 = 0 + ( 5 – 2 ) = 3 | P3 = 0 9 + 3 + 0 Average Waiting Time = = 4 3 Turn Around Time P1 = 18 | P2 = 10 – 1 = 9 | P3 = 5 – 2 = 3 18 + 9 + 3 Average Turn Arround Time = = 10 3
Masalah pada SJF • Starvation • Pada kondisi tertentu, suatu job mungkin tidak pernah menyelesaikan eksekusinya • Contoh: Proses A dgn elapse time 1 jam tiba pd waktu 0. Namun, pd waktu yg sama dan setiap 1 menit berikutnya tiba proses singkat dgn elapse time 2 menit. Hasilnya: A tidak pernah mendapat jatah eksekusi
Algoritma Penjadwalan Interaktif • Biasanya preemptive • Waktu eksekusi dibagi dalam kuantum (interval waktu) • Keputusan penjadwalan dibuat pd awal tiap kuantum • Kriteria performansi • Waktu respon minimum • Proporsional terbaik • Algoritma • Berbasis prioritas • Round-robin • Multi Queue & Multi-level Feedback • Shortest process time • Guaranteed Scheduling • Lottery Scheduling • Fair Sharing Scheduling
Penjadwalan Prioritas • Tiap proses diberi prioritas • Penjadwalan FCFS within each priority level. • Proses dgn prioritas lebih tinggi dijadwalkan duluan • Preemptive • Non-preemptive • Masalah: • Mungkin tidak menghasilkan waktu tunggu rata-rata yg baik • Dpt menyebabkan infinite blocking atau starvation pd proses dgn prioritas rendah
Penjadwalan Prioritas: Penentuan Prioritas • Ada 2 pendekatan: • Statis (untuk sistem dgn perilaku aplikasi yg teratur dan telah diketahui) • Dinamis (sebaliknya) • Prioritas dpt ditentukan berdasarkan: • Biaya terhadap user • Tingkat kepentingan user • Umur proses (aging) • % waktu CPU yg telah digunakan pd x jam terakhir
Round Robin • Tiap proses memperoleh alokasi waktu CPU dlm kuantum waktu, biasanya 10-100 ms • Setelah kuantum waktu lewat, proses di-preempted dan dimasukkan ke belakang antrian ready • Jika ada n proses pd antrian ready dan kuantum waktu=q, maka: • Pada gilirannya tiap proses memperoleh 1/n waktu CPU selama q • Tidak ada proses yg menunuggu lebih dari (n-1)q unit waktu • Performansi: • – q besar FIFO • – q kecil overhead utk context switch sangat besar
Simulasi 2 Round-Robin dengan kwanta = 1 A A A B B B B B B C C C C D D D D D E E B D C B E D C D B C B A C B E B D depan belakang antrian ready
Round Robin: Contoh 2 Time Quantum 3 Gant Chart : T T P1 P2 P1 P2 P1 12 15 6 0 3 9 Waiting Time P1 = 0 + 3 + 3 = 6 | P2 = ( 3 - 1 ) + 3 = 5 6 + 5 Average Waiting Time = = 5.5 2 Turn Around Time P1 = 15 | P2 = 12 – 1 = 11 15 + 11 Average Turn Arround Time = = 13 2
Round Robin: Contoh 3 • Misal : Terdapat tiga proses P1 , P2 , & P3 dengan quantum time 4 milidetik • Contoh : • Grant chartnya sesuai dengan algoritma RR : • Maka : • Waktu tunggu untuk P1 adalah 6, P2 adalah 4, dan P3 adalah 7 • Rata-rata waktu tunggu adalah ( P1 + P2 + P3 ) / 3 = ( 6 + 4 + 7 ) / 3 = 5,66 milidetik
Latihan Soal… • Gambar Gant Chart danTentukan Avg. Waiting Time serta • Avg. Turn Arround Time dariketigaprosesdiatasdenganalgoritma : • FCFS • SJF ( preemptive ) • Round-Robin, q = 2 • Round-Robin, q = 5 • Priority ( non-preemptive )