Penjadwalan proses
Prinsip-prinsip penjadwalan
– Keadilan: tiap proses mendapatkan alokasi CPU yang adil
– Efisiensi: penggunaan CPU semaksimal mungkin
– Waktu respons: minimal
– Waktu tunggu: minimal
– Throughput: maksimisasi pemrosesan proses
• Strategi penjadwalan
– Run to completion
– Preemptive
• Teknik Round Robin
– List proses
– Semua proses memiliki hak yang sama
– Tiap proses dialokasikan sepotong selang waktu (quantum) utk eksekusi
– Jika dalam 1 quantum eksekusi belum selesai ® dikeluarkan dari status aktifnya (preempted)
– Selanjutnya proses tsb ditempatkan di akhir list
– Eksekusi berlanjut dng proses pd antrian pertama
–
• Penjadwalan dengan prioritas
– Memasukkan unsur prioritas proses
– Tiap proses memiliki prioritas tertentu, dan penjadwalannya menurut urutan prioritasnya
– Sering diimplementasikan dengan kelas-kelas prioritas dan teknik round robin
– Prioritas proses diturunkan selama eksekusi dilakukan ® supaya proses dng prioritas rendah memiliki kesempatan dieksekusi juga
– Contoh penjadwalan dng prioritas
• Proses dng prioritas pertama diekseskusi selama 1 quantum, prioritas kedua selama 2 quantum, prioritas ketiga 4 kuantum, dst.
• Setelah eksekusi menghabiskan n quantum yg dialokasikan, proses diturunkan ke prioritas berikutnya
• Proses sepanjang 100 quantum memerlukan 7x pergantian (swap) saja
• Teknik Pengutamaan Proses Tercepat
– Cocok untuk batch job dng waktu eksekusi yg diketahui sebelumnya
– Menempatkan proses-proses pendek pada urutan awal
– Memperpendek waktu tunggu
– Optimal untuk proses-proses yg sudah “siap” dieksekusi
• Penjadwalan berbasis pemakai
– Jika ada n pemakai pd satu saat ttt, maka tiap orang akan menerima 1/n alokasi CPU
– Perlu informasi:
• Brp banyak waktu CPU yg telah dikonsumsi seorang pemakai sejak login ® x
• Brp lama pemakai ybs login ke sistem ® y
– “Jatah” pemakai z = y/n, dan rasio antara jatah dng kenyataan r = z/x
– Penjadwalan mengikuti nilai r: proses-proses milik pemakai dengan nilai r yg lebih rendah dieksekusi dahulu
Deadlock
• Deadlock: sekumpulan proses yg menunggu event yg hanya bisa dimunculkan oleh salah satu dr proses anggota
– Tidak ada proses yg bisa berlanjut, melepaskan resources, atau diaktifkan kembali
– Berawal dari situasi supply resources lebih kecil drpd demand
• Empat kondisi pemicu deadlock
– Kondisi mutual exclusion. Sebuah resource sdg digunakan oleh 1 proses, atau sdg bebas
– Kondisi hold and wait. Proses-proses yg sdg memakai resources diijinkan meminta resources baru
– Kondisi non-preemptive. Resource yg sdg digunakan hanya bisa dilepaskan oleh proses yg memakainya (pelepas-an tdk bisa dipaksa oleh pihak lain)
– Kondisi circular wait. Ada rantai dr 2 atau lebih proses, msg-msg menunggu resource yg dikuasai proses berikutnya dalam rantai tsb.
• Pemodelan penggunaan resource
– A menguasai resource R A R
– Menggunakan graf alokasi resource
– A meminta resource R A R
– Dpt digunakan utk analisis deadlock
• Strategi dlm menghadapi deadlock
– Abaikan saja ® algoritma “onta” (prinsip pragmatisme)
– Pendeteksian dan pemulihan
– Pencegahan, dng cara menegasikan kondisi-kondisi pemicu
– Menghindari, dng cara alokasi resource scr hati-hati
• Algoritma onta (Ostrich algorithm)
– Pragmatisme, perbandingan antara usaha utk menghilangkan deadlock dng akibat yg ditimbulkannya
• Pendeteksian dan pemulihan
– Monitoring request dan release dr resources, menganalisis graf alokasi resources utk mendeteksi deadlock
– Rantai deadlock diputus dng mengorbankan 1 atau lebih proses
• Pencegahan deadlock
– Negasi 4 kondisi pemicu
– Kondisi mutual exclusion ?
• Resource bisa digunakan oleh lebih dr satu proses
– Kondisi hold and wait ?
• Proses yg sdg menguasai sbh resource tidak diijinkan utk meminta resource yg lain
• Kebutuhan resource sering bersifat dinamis
• Menyebabkan alokasi resource tdk efisien
– Kondisi non-preemptive ?
• Memungkinkan resource dilepas scr paksa
• Dapat mengacaukan operasi (e.g., printing)
– Kondisi rantai tunggu (circular wait) ?
• Alternatif yg paling mungkin ditempuh
• Dengan penomoran resource, akses diijinkan dng mengikuti urutan tertentu
• Menghindari deadlock
– Alokasi resource scr hati-hati
– Algoritma banker
• Alokasi resource selalu memperhatikan kemungkinan ke depan (next state)
• Kebutuhan ke depan satu atau lebih proses harus selalu dapat dipenuhi oleh resource yg tersedia saat ini
Tidak ada komentar:
Posting Komentar