Google alustas M:N mudeli voogude rakendamise kasutusele võtmist

Google'i ettevõte esine Linuxi tuuma rakendamiseks esimesed patšide komplekti, mis sisaldavad komponente, mis on vajalikud M:N voogude mudeli töötamiseks. Google's on algatus seotud suletud uste taga arendatud API avamisega SwitchTo Linuxi tuumale, mis toetab kasutusrikkal veidi rakendatud mitmevoogset alamsüsteemi, mis kasutab M:N voogude mudelit. Alamsüsteemi kasutatakse Google'is teenuste toetamiseks, mis nõuavad minimaalset viivitust. Voogude planeerimine ja haldamine toimub täielikult kasutusrikkal, mis oluliselt vähendab konteksti vahetamise operatsioonide arvu, minimeerides süsteemikõnesid.

Kuna selle alamsüsteemi toimetamiseks Linuxi tuuma tasemel, on ellu viidud SwitchTo API, mis pakub kolme põhitegevust — wait, resume ja swap (vahetus). Tuuma lisamiseks on ette pandud uue operatsiooni FUTEX_SWAP kood, mis täiendab FUTEX_WAIT ja FUTEX_WAKE, ja annab aluse mitmevoogsete raamatukogude loomiseks kasutusrikkal. FUTEX_SWAP-i saab kasutada ka erinevate ülesannete vahel sõnumite edastamiseks, sarnaselt RPC-le. Näiteks praegu peab sõnumi edastamiseks ülesannete vahel teostama vähemalt neli FUTEX_WAIT ja FUTEX_WAKE kõnet, samas kui FUTEX_SWAP'i kasutamine võimaldab jõuda ühe operatsioonini, mis toimub 5-10 korda kiiremini.

Google alustas M:N mudeli voogude rakendamise kasutusele võtmist

Praegu rakendatakse peamiselt 1:1 ja N:1 voogude mudeleid. 1:1 mudelit kasutatakse NPTL (POSIX vood) ja LinuxThreads, mis eeldab otse kasutusrikkal oleva voogu seostamist tuumataseme (täitmisplaaniüksuse) vooga. N:1 mudel on ellu viidud GNU Pth, mis viib voogude jaotamise kasutusrikkale ja võimaldab N voogu kasutusrikkal seonduda ühe vooga tuumas, samas kui tuumal ei ole teavet kasutusrikkal olevate voogude kohta.

Peamise puudus 1:1 mudeli puhul on suured konteksti vahetamise kulud tuuma ja kasutajaruumi vahel. N:1 mudel lahendab selle probleemi, kuid loob uue — kuna voog tuumas on täitmise ajakava jagamata ühik, ei saa kasutajavoog, mis on seotud ühe tuuma operatsioonisüsteemi vooga, skaleeruda CPU tuumade kaupa ning jääb seotuks ühe CPU tuumaga.

M:N mudel on hübriid ja kõrvaldab kõik eespool mainitud puudused, sidudes N voogu kasutajaruumis M vooga operatsioonisüsteemi tuumas, mis võimaldab vähendada konteksti vahetamise kulusid ja pakkuda skaleerimist CPU tuumade vahel. Selle variandi hind on voogude ajakavalduse teostamise keerukuse suurendamine kasutajaruumis ja vajadus koordineerimismehhanismide järele tuuma ajakavaldusega.

Mängi videot

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster