Sobes.tech
Junior — Middle

Жүйөлүк пландачы суранычтарды иштетүүнүн графигин кандай түзөт?

sobes.tech AI

AIден жооп

Жүйе планалагычы (scheduler) иштөө тутумунда процессор убактысын процесстер жана агымдар ортосунда бөлүштүрүү менен алектенет. Убакытты пландаштыруу негизги принциптери:

  • Приоритеттер: жогорку приоритетке ээ процесстер артыкчылыкка ээ болот.
  • Убакыт квант: ар бир процесске белгилүү бир убакыт аралыгы (квант) бөлүнөт, андан кийин башка процесске өткөрүлөт.
  • Пландоо саясаты: ар кандай алгоритмдер бар, мисалы, Round Robin (айланма), FIFO, приоритеттүү пландаштыруу, көп деңгээлдүү кезектер.
  • Процесс абалынын эске алынушу: планалачы процесстин ишке даяр же кирүү/чыгуу күтүп жатканын эске алат.

Go тилинде, goroutine планалачы окшош принципте иштейт, goroutine-дарды системдик агымдар арасында бөлүштүрүп, M:N пландаштыруу колдонулат. Ал жеткиликтүү ядролорду натыйжалуу колдонууга аракет кылат, блоктоолордо же кванттарда goroutine-дар арасында которуу жүргүзөт.

Жөнөкөйлөштүрүлгөн Round Robin алгоритминин мисалы:

  1. Бардык даяр процесстерди кезекке салыңыз.
  2. Кезектеги биринчи процессти CPUга квант убактысына белгилеңиз.
  3. Квант аяктагандан кийин, эгер процесстин аяктоо мөөнөтү болсо, аны кезектин акырында кайра коюңуз.
  4. Бул процесстер бүтүп калганда кайра кайталаңыз.

Ушул жол менен, планалачы ресурстарды адилеттүү жана натыйжалуу бөлүштүрүүнү камсыздайт.