Sobes.tech
Middle+

Gorutina nima? U OSning oqimidan qanday farq qiladi? Kim gorutinlarni boshqaradi?

sobes.tech AI

AIdan javob

Gorutina — bu Go tilida yengil oqim, Go-ning ishga tushirish muhitining boshqaruvi ostida bo‘lib, operatsion tizimining emas. OS oqimlaridan farqli o‘laroq, gorutinlar juda kamroq xotira (odatda bir necha kilobaytli stek, u dinamik ravishda o‘sishi va kamayishi mumkin) talab qiladi va ularni yaratish va o‘tkazish juda arzonroq.

Asosiy farqlar OS oqimlaridan:

  • Gorutinlar Go-ning ishga tushirish muhitining rejalashtiruvchisi tomonidan rejalashtiriladi va boshqariladi, OS tomonidan emas.
  • Bir jarayon ichida minglab yoki o‘nlab minglab gorutinlar bo‘lishi mumkin, bu katta yuklamasiz.
  • Gorutinlar o‘rtasidagi kontekst almashinuvi tezroq, chunki yadro o‘zgartirish talab qilinmaydi.

Gorutinlarni boshqarish Go-ning ishga tushirish muhitining o‘z rejalashtiruvchisi (M:N scheduler) tomonidan amalga oshiriladi, u ko‘p gorutinlarni (G) kamroq OS-ning oqimlariga (M) moslashtiradi. Bu tizim resurslaridan samarali foydalanishni ta’minlaydi va parallel dasturlashni soddalashtiradi.