Rejalashtirish algoritmlari va rejalashtiruvchini amalga oshirish
Rejalashtirish algoritmlarining xossalari (odatda) birinchi navbatda statik taxminlar ostida tahlil qilinadi; keyin dinamik ssenariylar uchun moslashtirilgan
Algoritmlar ko'pincha (CPU) "ishlar" ning faqat mavhum tushunchasini ko'rib chiqadi, ammo dinamik rejalashtiruvchi uni protsessor va IO portlashlari bilan o'zgaruvchan va takrorlanuvchi jarayonlarga moslashtirishi kerak.
Ko'pincha statik algoritmni joriy tayyor navbatga qo'llaydi
Algoritmlar ko'pincha ishning uzunligi/CPU portlashi ma'lum deb taxmin qiladi, ammo haqiqiy rejalashtiruvchi kutilgan bajarish narxini taxmin qilishi kerak (yoki taxminlar qilish)
Preemptive vs Nonpreemptive rejashtirish
Savol: Rejalashtiruvchidan qachon tayyor navbatdan mavzu tanlash so'raladi?
Nonpreemptive :
Faqat RUNING BLOCKED o'tish paytida
Yoki RUNING EXIT
Yoki ixtiyoriy hosil: RUNING READY
Preemptive
Shuningdek, BLOKLANGAN READY o'tish
ichki chiqishda majburiy qo'ng'iroq )
RUNNING
READY
BLOCKED
Jarayon
kutish kerak
voqea uchun
Voqea keldi
Rejalashtiruvchi
tanlash jarayoni
Jarayon
oldindan oldi
CPU rejalashtirish maqsadlari
Kechikishni minimallashtiring
Tugatish vaqtini (o'rtacha) anglatishi mumkin
(O'rtacha) javob vaqtini bildirishi mumkin
O'tkazish qobiliyatini maksimal darajada oshirish
O'tkazuvchanlik: vaqt birligidagi tugallangan ishlar soni
Qo'shimcha xarajatlarni minimallashtirishni nazarda tutadi (kontekstni almashtirish uchun, algoritmni rejalashtirish uchun)
CPU bo'lmagan resurslardan samarali foydalanishni talab qiladi