A Google megkezdte az M:N áramlási modell megvalósításának megnyitását

Google javasolta a magba való felvételhez Linux Az M:N streaming modell támogatásához szükséges komponenseket megvalósító első javításkészlet. A Google kezdeményezése egy zárt ajtók mögött fejlesztett API megnyitásához kapcsolódik. Váltani a mag számára Linux, amely egy felhasználói térben futó, többszálú alrendszert működtet az M:N szálkezelési modell használatával. Ezt az alrendszert a Google minimális késleltetést igénylő szolgáltatások támogatására használja. A szálak ütemezése és kezelése teljes egészében a felhasználói térben történik, ami jelentősen csökkenti a kontextusváltások számát a rendszerhívások minimalizálásával.

A megadott alrendszer működésének biztosítása kernel szinten Linux A SwitchTo API-t implementálták, amely három alapvető műveletet kínál: várakozás, folytatás és csere. Egy új műveletet, a FUTEX_SWAP-ot javasoltak a magba való beépítésre, kiegészítve a FUTEX_WAIT és FUTEX_WAKE, és keretet biztosít többszálú felhasználói tér könyvtárak létrehozásához. A FUTEX_SWAP is használható üzenetek átadására a feladatok között, hasonlóan az RPC-hez. Például jelenleg egy üzenet átviteléhez a feladatok között legalább négy FUTEX_WAIT és FUTEX_WAKE hívás szükséges, míg a FUTEX_SWAP használatával egy művelet 5-10-szer gyorsabban hajtható végre.

A Google megkezdte az M:N áramlási modell megvalósításának megnyitását

Jelenleg a gyakorlatban elsősorban az 1:1 és N:1 áramlási modelleket használják. Az 1:1 modellt használják NPTL (POSIX szálak) és LinuxSzálak, és magában foglalja egy felhasználói tér szál közvetlen leképezését egy szálra (végrehajtás ütemezési egysége) a kernel szintjén. Az N:1 modell ben valósul meg GNU Pth, a szálütemezést hozza a felhasználói térbe, és lehetővé teszi, hogy N felhasználói terület szál egyetlen szálhoz kapcsolódjon a kernelben anélkül, hogy a kernel tudna a felhasználói szálakról.

Az 1:1 modell fő hátránya a kernel és a felhasználói terület közötti kontextusváltás nagy költsége. Az N:1 modell megoldja ezt a problémát, de egy újat hoz létre – mivel a kernelben lévő szál a végrehajtás ütemezésének oszthatatlan egysége, az operációs rendszer kernelében egyetlen szálhoz kötött felhasználói szálak nem skálázhatók a CPU magok között, és kötődhetnek egyetlen CPU mag.

Az M:N modell hibrid, és az összes fenti hátrányt kiküszöböli azáltal, hogy N felhasználói terület szálat képez M kernelszálra, csökkentve a kontextusváltás többletterhelését és a CPU magok közötti skálázást. Ennek az opciónak az ára a szálütemező felhasználói térben való megvalósításának nagy bonyolítása, valamint a műveletek és a kernelütemezővel koordináló mechanizmusok szükségessége.

Play Video

Forrás: opennet.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster