Junior — Middle
Раванди ҳамкории горутинҳо бо даъватҳои системавӣ дар системаи оператсионӣ чӣ гуна кор мекунад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, goroutine-ҳо сабукрави сӯрохиҳо мебошанд, ки аз ҷониби runtime-и Go идора карда мешаванд, на мустақиман аз ҷониби системаи оператсионӣ. Вақте ки як goroutine даъвати системиро иҷро мекунад, масалан, хондани файл ё муоширати шабакавӣ, ҳодисаҳои зерин рӯй медиҳанд:
- Goroutine даъвати системиро тавассути runtime мебарад.
- Агар даъвати системӣ нӯгро (thread-и OS) банд кунад, runtime-и Go метавонад ин goroutine-ро муваққатан аз нӯг ҷудо кунад ва дигареро дар ҳамин нӯг оғоз кунад, то иҷрои онро банд накунад.
- Барои ин, runtime модел M:N-ро истифода мебарад, ки дар он M шумораи нӯгҳои OS ва N шумораи goroutine-ҳо мебошанд.
- Вақте ки даъвати системӣ ба охир мерасад, goroutine корро идома медиҳад.
Бинобар ин, Go системаи даъватҳои системиро, ки монеа эҷод мекунанд, самаранок идора мекунад, ки ба ҳазорон goroutine имкон медиҳад, ки дар як шумораи маҳдуд аз нӯгҳои OS ҳамзамон иҷро шаванд, бе банд кардани тамоми барнома.