Google on alustanud M:N voomudeli juurutamise avamist

Google soovitas lisada Linuxi tuumasse esimene komplekt plaastreid koos M:N keermestusmudeli töö tagamiseks vajalike komponentide juurutamisega. Google'i algatus on seotud suletud uste taga areneva API avamisega Vaheta Linuxi kerneli jaoks, mis tagab kasutajaruumis rakendatud mitme lõimega alamsüsteemi toimimise, kasutades M:N keermestusmudelit. Google kasutab alamsüsteemi minimaalset viivitusi nõudvate teenuste toimimise tagamiseks. Lõimede jaotamise ajastamine ja haldamine toimub täielikult kasutajaruumis, mis võib oluliselt vähendada konteksti vahetamise toimingute arvu, minimeerides süsteemikutsete täitmist.

Määratud alamsüsteemi toimimise tagamiseks Linuxi kerneli tasemel rakendati SwitchTo API, mis pakkus kolme põhitoimingut – oota, jätka ja vaheta (switching). Kernelisse lisamiseks pakutakse välja uue operatsiooni FUTEX_SWAP kood, mis täiendab FUTEX_WAIT ja FUTEX_WAKEja pakub raamistikku mitme lõimega teekide loomiseks kasutajaruumis. FUTEX_SWAP-i saab kasutada ka sõnumite edastamiseks ülesannete vahel, sarnaselt RPC-ga. Näiteks praegu peate sõnumi edastamiseks ülesannete vahel tegema vähemalt neli kõnet FUTEX_WAIT ja FUTEX_WAKE, kuid FUTEX_SWAP kasutamine võimaldab teil hakkama saada ühe toiminguga, mis sooritatakse 5-10 korda kiiremini.

Google on alustanud M:N voomudeli juurutamise avamist

Praegu kasutatakse praktikas peamiselt 1:1 ja N:1 voolumudeleid. Kasutatakse 1:1 mudelit NPTL (POSIX vood) ja Linuxi lõimed, ja eeldab kasutajaruumi lõime otsest vastendamist lõimega (käitamise ajastamise ühik) tuuma tasemel. Mudel N:1 rakendati aastal GNU Pth, toob lõime saatmise kasutajaruumi ja võimaldab kasutajaruumis N lõime siduda tuuma ühe lõimega, ilma et kernel oleks kasutajalõimedest teadlik.

1:1 mudeli peamiseks puuduseks on konteksti vahetamisel kerneli ja kasutajaruumi vahel suur kulu. Mudel N:1 lahendab selle probleemi, kuid loob uue – kuna tuuma lõim on jagamatu täitmise ajastamise ühik, ei saa operatsioonisüsteemi tuumas ühe lõimega seotud kasutajalõimed protsessorituumade vahel skaleerida ja olla seotud üks CPU tuum.

M:N mudel on hübriidne ja kõrvaldab kõik ülalkirjeldatud puudused, vastendades N lõime kasutajaruumis M lõimega OS-i tuumas, mis võimaldab nii vähendada konteksti vahetamise üldkulusid kui ka tagada skaleerimine protsessori tuumade lõikes. Selle valiku hind on lõime ajakava rakendamise suur keerukus kasutajaruumis ja vajadus mehhanismide järele, mis koordineeriksid tegevusi tuuma planeerijaga.

Allikas: opennet.ru

Lisa kommentaar