Junior — Middle
Жүйөлүк пландачы суранычтарды иштетүүнүн графигин кандай түзөт?
sobes.tech AI
AIден жооп
Жүйе планалагычы (scheduler) иштөө тутумунда процессор убактысын процесстер жана агымдар ортосунда бөлүштүрүү менен алектенет. Убакытты пландаштыруу негизги принциптери:
- Приоритеттер: жогорку приоритетке ээ процесстер артыкчылыкка ээ болот.
- Убакыт квант: ар бир процесске белгилүү бир убакыт аралыгы (квант) бөлүнөт, андан кийин башка процесске өткөрүлөт.
- Пландоо саясаты: ар кандай алгоритмдер бар, мисалы, Round Robin (айланма), FIFO, приоритеттүү пландаштыруу, көп деңгээлдүү кезектер.
- Процесс абалынын эске алынушу: планалачы процесстин ишке даяр же кирүү/чыгуу күтүп жатканын эске алат.
Go тилинде, goroutine планалачы окшош принципте иштейт, goroutine-дарды системдик агымдар арасында бөлүштүрүп, M:N пландаштыруу колдонулат. Ал жеткиликтүү ядролорду натыйжалуу колдонууга аракет кылат, блоктоолордо же кванттарда goroutine-дар арасында которуу жүргүзөт.
Жөнөкөйлөштүрүлгөн Round Robin алгоритминин мисалы:
- Бардык даяр процесстерди кезекке салыңыз.
- Кезектеги биринчи процессти CPUга квант убактысына белгилеңиз.
- Квант аяктагандан кийин, эгер процесстин аяктоо мөөнөтү болсо, аны кезектин акырында кайра коюңуз.
- Бул процесстер бүтүп калганда кайра кайталаңыз.
Ушул жол менен, планалачы ресурстарды адилеттүү жана натыйжалуу бөлүштүрүүнү камсыздайт.