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
runnablenavbatni saqlaydi.
Rejalashtiruvchining ishlash prinsipi:
- Gorutinalar (G) yaratiladi va global yoki lokal
runnablenavbatga qo'shiladi. - Operatsion tizim iplari (M) mantiqiy protsessorlar (P) bilan bog'lanadi. P ning standart soni CPU yadro soniga teng (
GOMAXPROCS). - P o'zining lokal navbatidan gorutini oladi. Agar lokal navbat bo'sh bo'lsa, P boshqa P ning navbatidan yoki global navbatdan gorutinni