Sobes.tech
Senior

Gorutina nədir? Sistem ipindən necə fərqlənir? Go (GMP) planlayıcısı haqqında danış.

sobes.tech Süni İntellekt

AI-dan cavab

Goroutine — bu Go dilində yüngül icra axınıdır və Go çalışma vaxtı tərəfindən idarə olunur, əməliyyat sistemi tərəfindən deyil. Sistem iplarından fərqli olaraq, goroutine-lərin yığın ölçüsü çox kiçikdir (bir neçə kilobaytdan başlayır və dinamik olaraq artmağa qadirdir), bu da minlərlə və hətta milyonlarla goroutine-i eyni vaxtda aşağı xərclərlə işlətməyə imkan verir.

Sistem ipləri əməliyyat sistemi tərəfindən yaradılır və planlaşdırılır, sabit böyük yığınlara malikdir və kontekst dəyişdirmə əməliyyatları daha bahalıdır.

Go planlayıcısı GMP modelinə əsaslanır:

  • G (goroutine) — özüdür, icra vahidi.
  • M (maşın) — sistem ipi (OS ipi), burada goroutine-lər icra olunur.
  • P (prosessor) — məntiqi prosessor, M-də goroutine-i icra etmək üçün lazım olan resurs.

P, icraya hazır goroutine-lərin (G) növbəsini idarə edir. M yalnız bir goroutine-i eyni vaxtda icra edə bilər, lakin çox sayda M və P-nin mövcudluğu ilə planlayıcı goroutine-ləri sistem ipləri arasında səmərəli paylayır, rəqabət və paralelliyi təmin edir.

Bu yanaşma Go-nun sistem resurslarından səmərəli istifadə etməsinə və çoxprosessorlu sistemlərdə miqyaslana bilməsinə imkan verir.