Google Linuxi tuumale esmakordselt pakettide komplekt, mis sisaldab komponente, mis on vajalikud M:N voogude mudeli toimimiseks. Google'i algatus on seotud uue API avamisega, mis on varem olnud suletud uste taga Linuxi tuum, mis võimaldab kasutajaruumi mitme lõime süsteemi, kasutades M:N voogude mudelit. Seda süsteemi kasutab Google, et tagada teenuste töötamine, mis nõuab minimaalset latentsust. Lõimede ajakava ja jaotuse haldamine toimub täielikult kasutajaruumi tasemel, mis võimaldab oluliselt vähendada konteksti vahetuse operatsioone, minimeerides süsteemikõnesid.
Käesoleva süsteemi toimimiseks Linuxi tuuma tasemel on rakendatud SwitchTo API, mis pakub kolme põhitegevust — wait, resume ja swap. Uue toimingu koodi FUTEX_SWAP lisamine tuumale pakub täiendust , ja pakub aluse mitme lõime teekide loomiseks kasutaja ruumis. FUTEX_SWAP'i saab kasutada ka ülesannete vahelise suhtluse edastamiseks, sarnaselt RPC-le. Näiteks praegu nõuab ülesannete vaheline suhtlus vähemalt nelja FUTEX_WAIT ja FUTEX_WAKE kutset, samas kui FUTEX_SWAP'i kasutamine võimaldab ühe toimingu teha, mis toimub 5-10 korda kiiremini.
Praegu kasutatakse praktikas peamiselt 1:1 ja N:1 lõimemudeleid. 1:1 mudelit kasutatakse (POSIX lõimede) ja , mis tähendab otsekohe lõime kaardistamist kasutaja ruumis lõime (täitmise planeerimise üksuse) tasemel tuumasüsteemis. N:1 mudel on teostatud , viies lõimede ajakava kasutaja ruumi ja võimaldades N lõime kasutaja ruumis siduda ühe lõimega tuumas, samas ei tea tuum kasutaja lõimede kohta.
1:1 mudeli peamine puudus on suured kontekstivahetuse kulud tuuma ja kasutuseruumi vahel. N:1 mudel lahendab selle probleemi, kuid loob uue - kuna tuumas olev voog on täitmise ajakava jagamatu üksus, ei saa kasutajavoogud, mis on seotud ühe tuumaoperatsioonisüsteemis oleva vooga, hajutada CPU tuumade vahel ja on kinni ühel CPU tuumal.
M:N mudel on hübriid, mis kõrvaldab kõik varem kirjeldatud puudused, sidudes N kasutuseruumi voogu M vooga OS tuumas, võimaldades nii vähendada kontekstivahetuse kulusid kui ka tagada mõõdetavus CPU tuumade vahel. Antud variandi hind on suures täiendav keerukus voogude ajakava rakendamisel kasutuseruumis ja vajadus kooskõlastusmehhanismide järele tuuma ajakava halduriga.

Allikas: opennet.ru
