Sobes.tech
Middle

Ish vaqti (runtime) nima va rejalashtiruvchi (scheduler) qanday ishlaydi?

sobes.tech AI

AIdan javob

Go'da ish vaqti (runtime) Go dasturlarining bajariladigan muhitidir. U quyidagilarni o'z ichiga oladi:

  • Xotira boshqaruvi: Garbage collector (axlat yig'uvchi) xotirani avtomatik ravishda ajratadi va bo'shatadi.
  • Rejalashtiruvchi (scheduler): Gorutinalarni operatsion tizim iplarida bajarishni boshqaradi.
  • Sistem chaqiruvlar: Operatsion tizim bilan o'zaro aloqada bo'lish uchun interfeys taqdim etadi.
  • Sinxronizatsiya primitives: Kanallar, mutexlar va boshqa mexanizmlar yordamida gorutinalarni muvofiqlashtirish.

Go rejalashtiruvchisi M:N modelini (ko'p gorutinalar ko'p operatsion tizim iplarida) amalga oshiradi. Uning asosiy komponentlari:

  • G (Goroutine): Yengil bajarish ipi, asosan funksiyaning abstraktsiyasi.
  • M (Machine): Go dasturlari bajariladigan operatsion tizim ipi.
  • P (Processor): Operatsion tizim ipiga bog'langan mantiqiy protsessor. U lokal runnable navbatni saqlaydi.

Rejalashtiruvchining ishlash prinsipi:

  1. Gorutinalar (G) yaratiladi va global yoki lokal runnable navbatga qo'shiladi.
  2. Operatsion tizim iplari (M) mantiqiy protsessorlar (P) bilan bog'lanadi. P ning standart soni CPU yadro soniga teng (GOMAXPROCS).
  3. P o'zining lokal navbatidan gorutini oladi. Agar lokal navbat bo'sh bo'lsa, P boshqa P ning navbatidan yoki global navbatdan gorutinni