Sobes.tech
Junior — Middle

Əməliyyat sistemi planlayıcısı mütləq şəkildə goroutine-in icrasını dayandırırmı?

sobes.tech Süni İntellekt

AI-dan cavab

Xeyr, əməliyyat sisteminin planlayıcısı Go-da goroutine-in icrasını məcburən dayandırmır. Goroutine-lər, əməliyyat sistemindən birbaşa deyil, Go-nun çalışma vaxtı tərəfindən idarə olunan yüngül axınlardır.

Go çalışma vaxtı, goroutine-lərin icrasını özləri sistem axınlarında (M:N planlaşdırma) planlaşdırır. Goroutine-lər aşağıdakı hallarda dayandırıla və yenidən başlana bilər:

  • Goroutine giriş-çıxış gözləyirsə və ya sinxronizasiya zamanı bloklanıbsa.
  • Goroutine açıq şəkildə idarəni təhvil verirsə (məsələn, runtime.Gosched() çağırışı ilə).
  • İş yükünü axınlar arasında balanslaşdırmaq lazım gəlsə.

Beləliklə, goroutine-lər arasında keçid kooperativ şəkildə və Go-nun çalışma vaxtının idarəsi altında baş verir, əməliyyat sistemi tərəfindən məcburən deyil.