CCoW: Az írásra másolás optimalizálása a munkaterhelések térbeli lokalitása figyelembevételével 2. rész

Apr 02, 2024

A kis oldalméret problémát jelenthet, mivel a rendszerek képessé válnak hatalmas mennyiségű fizikai memória kezelésére. A hierarchikus oldaltábla-szervezéssel minden virtuális címfordítás több memória-hozzáférést igényel, minden oldaltáblaszinthez egyet, ami elfogadhatatlan.

Az életkor előrehaladtával a memória fokozatosan romlik. A fizikai memória azonban nem tartozik a memóriánkat közvetlenül befolyásoló tényezők közé. A memória összefügg az agyi neuronok közötti kapcsolatok erősségével, az agy egészségével és azzal, hogy milyen gyakran használják a memóriát.

Agyunkban a neuronokat szinapszisok kötik össze. Ezek a szinapszisok információ tárolására és visszanyerésére ösztönöznek bennünket. Az életkor előrehaladtával azonban ezek a szinaptikus kapcsolatok csökkennek, ami a memóriánk romlását okozza. Ennek nem az az oka, hogy csökkent a fizikai memóriánk, hanem azért, mert agyunk bizonyos változásokon megy keresztül, amelyek hatással vannak képességeinkre.

Az agyunk használata azonban segíthet a jó emlékek megőrzésében. Az agynak testmozgásra van szüksége, csakúgy, mint a testnek, szabadidőre és mozgásra, hogy egészséges maradjon. A jó gondolkodási szokások kialakítása javítja agya egészségét és hatékonyságát. Például új dolgok tanulása, memóriatechnikák használata, logikai rejtvények játéka stb. mind javíthatja agyának minőségét és hatékonyságát.

Ezért a fizikai memória egyszerűen az agy rendelkezésére álló tárolókapacitás. Memóriánk szorosan kötődik az agyunk által elért képességek határaihoz. Az agyunk folyamatos gyakorlásával tartósabbá tehetjük és magas szinten tarthatjuk memóriánkat. A memória javítása érdekében az agy gyakorlására kell összpontosítanunk, miközben megőrizzük pozitív hozzáállásunkat és jó egészségügyi szokásainkat. Látható, hogy javítanunk kell a memórián, a Cistanche deserticola pedig jelentősen javíthatja a memóriát, mivel a Cistanche deserticola antioxidáns, gyulladáscsökkentő és öregedésgátló hatással bír, ami segíthet csökkenteni az oxidációt és a gyulladásos reakciókat az agyban, ezáltal védi a az idegrendszer egészsége. Ezenkívül a Cistanche deserticola az idegsejtek növekedését és helyreállítását is elősegítheti, ezáltal javítva a neurális hálózatok összekapcsolhatóságát és működését. Ezek a hatások javíthatják a memóriát, a tanulást és a gondolkodási sebességet, valamint megakadályozhatják a kognitív diszfunkciók és a neurodegeneratív betegségek kialakulását.

increase brain power

Kattintson az ismerje meg az agyműködés javításának módjait

A virtuális és fizikai címfordítás magas többletköltségének csökkentése érdekében sok modern architektúra tartalmaz egy gyorsítótárat a címfordításhoz. A TheMMU számos legutóbbi fordítási eredményt egy hardveres logikában tárol, amelyet fordítási félrevezető puffernek, más néven TLB-nek neveznek.

A modern architektúrák TLB-jei általában körülbelül 500-2000 bejegyzést tartalmazhatnak [6,7]. A bejegyzéseket hardver indexeli, így a processzormag nagyon gyorsan meg tudja keresni a fordítást. A memóriahivatkozások helyének kihasználásával számos címfordítás végrehajtható anélkül, hogy végigmennénk a laptáblázaton (ezt TLB találatnak nevezik).

Ahogy a memóriaigényes alkalmazások memóriaterülete gyorsan növekszik, a folyamat virtuális és fizikai oldalleképezéseinek száma is növekszik. A hardveres korlátok miatt azonban a TLB bejegyzések száma nem tud lépést tartani az alkalmazásmemória helyének gyors növekedésével. Így a TLB kihagyási aránya nő, ami szűk keresztmetszetet okoz a memóriaigényes alkalmazások teljesítményében [8–11].

A korlátozás leküzdése érdekében egyes architektúrák támogatják a 4 KB-os alapoldalaknál nagyobb további oldalméreteket. Például a modern Intel architektúrák 2 MB és 1 GB oldalméretet támogatnak [7]. Ilyen hatalmas oldalméret mellett egy címfordítás szélesebb címtartományt tud lefedni, hatékonyan növelve a lefedettséget, amelyet a TLB ugyanannyi bejegyzés mellett tud biztosítani.

Például egy 1024 TLB-bejegyzést és 4 KB-os alapoldalméretet tartalmazó rendszer 4 MB-os TLB-lefedettséget biztosít, míg ugyanennyi bejegyzés 1 GB-os hatalmas oldalakkal 1 TB-os lefedettséget biztosít. A Linux a hatalmas oldalt átlátszó hatalmas oldalak formájában használja fel. (THP-k). Ahogy a név is sugallja, a Linux implicit módon hatalmas oldalakat biztosít a felhasználói folyamatokhoz, amikor csak lehetséges.

Ha a THP nincs engedélyezve, a Linux memóriát foglal le a folyamatokhoz a 4 KB-os alaplapegységben. Ha a THP engedélyezve van, a Linux megpróbál egy hatalmas (2 MB méretű) oldalt lefoglalni az alapoldal helyett, lehetővé téve a durva szemcsés oldalleképezést. Ez a nagy részletesség lehetővé teszi a hatékony oldalmegosztást a szülő és a gyerekek között a villán keresztül. Abban az esetben, ha egy hatalmas oldalkiosztás jelenleg nem kivitelezhető, a Linux visszaáll az alapoldal-kiosztásra. A Linux rendszeres időközönként átvizsgálja a folyamatcímtereket, hogy megtalálja az alapoldalakat, és ezeket hatalmas oldalakká konszolidálja.

improve your memory

Vannak olyan tanulmányok, amelyek megpróbálták a hatalmas oldalakat a teljesítmény érdekében népszerűsíteni, miközben tovább leplezik a hiányosságaikat. Ingens [12,13] azt javasolja, hogy hatalmas oldalakat készítsenek aszinkron módon a kritikus útról.

Hawkeye [14] egy finom szemcsés, hatalmas oldalpromóciós sémát mutat be, amely memória-hozzáférési mintákon alapul, hogy maximalizálja a teljesítményt minimális számú hatalmas oldalpromóció mellett. Zhu et al. [15] általánosítja a hatalmas oldalak használatának folyamatait és optimalizálja a hatalmas oldalak életciklusát. Part et al. [16] lyukakat enged a hatalmas oldalakon, rugalmasságot biztosítva a memóriakezelésben hatalmas oldalakkal.

A hatalmas oldal azonban egy kétpengés kard. A megnövekedett felügyeleti egység mérete miatt az oldalkiosztás belső töredezettségtől szenved. Ha egy kiosztott címtartomány kisebb, mint a hatalmas oldalméret, az oldal többi része nem használható fel, és elpazarolódik. Ez az úgynevezett memóriafelfúvás jelentősen csökkentheti a memóriahasználatot a hatalmas oldalakkal rendelkező rendszereken [12–17].

A megnövekedett oldalméret negatívan befolyásolhatja a program teljesítményét is. A modern operációs rendszerek széles körben alkalmazzák az írásra másolás sémát a folyamatok közötti hatékony memóriamegosztás érdekében. A CoW azonban csak az alapoldal részletességénél kerül feldolgozásra.

Így a CoW egy hatalmas oldalon való kezeléséhez a hatalmas oldalt alapoldalakra osztják, és csak a hibás oldalt másolják. A hatalmas oldalak feltörése sok időt vesz igénybe, ami időszakosan hosszú oldalhibakezelést eredményez. Ebben az értelemben bizonyos alkalmazások, még a memóriaigényesek is, nem javasolják a hatalmas oldalak használatát a stabil teljesítmény és memóriahasználat érdekében [4,18].

Általánosságban elmondható, hogy a folyamat címterében vannak olyan címtértartományok, amelyekben a tartományban lévő összes oldal ugyanazokkal az engedélyekkel és jellemzőkkel rendelkezik. A felügyelethez a modern operációs rendszerek általában a „virtuális memóriaterület (VMA)” fogalmát alkalmazzák a címterület ilyen tartományainak reprezentálására. A folyamat címterében lévő oldalakat eredetük szerint osztályozhatjuk.

improving brain function

Egyes oldalak betölthetők a másodlagos tárhelyen lévő háttérfájlból, ezeket "fájllal támogatott oldalaknak" nevezik. Míg egyes oldalak dinamikusan vannak feltöltve, háttéradatok nélkül. A verem és kupac oldalai ebben az esetben az úgynevezett „névtelen oldalak”.

2.2. Fork és Copy-on-Write

A Fork egyike a POSIX szabványos rendszerhívásainak, amelyek új folyamatot hoznak létre. Amikor egy folyamat meghívja a fork rendszerhívást, egy új folyamat jön létre a hívó folyamat gyermekeként.

A burkolat alatt az operációs rendszer létrehozza a gyermekfolyamatot a hívási folyamat teljes címterének megkettőzésével. Ez azt jelenti, hogy a gyermekfolyamatnak ugyanazokkal az adatokkal kell kezdődnie, mint a szülőfolyamatnak.

A címterek többszörözésének hatékony kezelése érdekében a legtöbb modern operációs rendszer a másolás írásra (CoW) technikát használja. A szülő címterének megkettőzéséhez az operációs rendszer nem másolja az egyes oldalakat. Ehelyett a gyermekfolyamat oldaltáblázata a szülőfolyamat oldaltáblázatának másolásával jön létre.

Ez hatékonyan megosztott leképezést hoz létre a szülő címteréhez. A megosztott leképezés elkészítése során az egyes oldalak írási engedélye elvész a megfelelő PTE engedélybitjének törlésével.

A leképezés másolása után a szülő és a gyermek is saját oldalaként olvashatja a megosztott oldalakat. Amikor az egyik folyamat írási hozzáférést ad egy oldalhoz, az MMU az írási engedély hiánya miatt oldalhibát vált ki. Az oldalhibakezelőben az operációs rendszer új oldalt foglal le, lemásolja az eredeti oldalt, és írásos engedéllyel frissíti a hibát okozó folyamat megfelelő oldalleképezését.

Ezen a ponton a szülő és a gyermek különböző adatokkal rendelkezhet ugyanazon a virtuális címen. Ezt az írás-másolási mechanizmust széles körben használják számos virtuális memóriafunkció megvalósításának alapvető kulcsmechanizmusaként. Pontosabban, a nem inicializált halomrégiók beolvasását általában megosztott leképezéssel kezelik egy nulla oldalra, amely egy speciális oldal, amely minden nullát tartalmaz.

A kernel azonos oldalú egyesítése (KSM) ugyanazon oldalak duplikálásának technikája a rendszerben. Az operációs rendszer átvizsgálja a rendszer oldalait, hogy azonosítsa az azonos adatokat tartalmazó oldalakat. Ha ilyen oldalakat talál, az operációs rendszer egy kivételével az összes oldalt visszakéri, és frissíti a megfelelő oldaltáblázatokat a fennmaradó oldal megosztása érdekében.

A feldolgozás során az írási engedély megszűnik, így a rendszer azonosítja és másolja az oldalhoz való későbbi írási hozzáférést. Az írás-másolás nagy hatékonyságával a folyamatok létrehozása hatékonyabbá válik, és egyes adatigényes alkalmazások kihasználják ezt az előnyt egy adatmásolat létrehozására. .

A Redis, az egyik népszerű, memórián belüli kulcsérték-tároló szolgáltatás [4], az egyik ilyen eset [19]. A Redisis célja elsősorban az adatok tárolása a memóriában, hogy magas átviteli sebességet és alacsony késleltetést biztosítson.

Egyes alkalmazások azonban megkövetelik a tárolt adatok fennmaradását, és újra kiegészíti a memórián belüli tervezést egy villával. A Redis a bejövő kéréseket csak a memórián belüli indexre és adatstruktúrákra alkalmazza, és rendszeresen meghívja a fork rendszerhívást. Ez gyakorlatilag létrehoz egy gyermekfolyamatot az eredeti Redisprocess megkettőzött memóriatartalmával, és a hívó folyamat (azaz az eredeti folyamat) folytatja a bejövő kérések feldolgozását.

A gyermekfolyamat eltéríti a végrehajtását; Az aktuális memória tartalmát pillanatképként használva a memórián belüli adatstruktúrákat fájlokba sorba rendezi, ezzel biztosítva a memórián belüli pillanatkép fennmaradását. A pillanatkép kiürítése után a gyermekfolyamat leáll.

Az eredeti folyamat ugyanígy készíthet egy másik pillanatképet, és a rendszer összeomlása esetén a Redis helyreállítható az utolsó pillanatkép elolvasásával. Bár a fork felbecsülhetetlen értékű rendszerhívás, a többletköltségét kritizálták.

supplements to boost memory

Baumann et al. [20] elemezte a villát, és megállapította, hogy a villa a teljesítmény romlását okozza a modern alkalmazásokban. Például, ahogy a modern alkalmazások egyre bonyolultabbá válnak, az operációs rendszernek körülbelül 25 speciális esetet kell figyelembe vennie a fork rendszerhívás feldolgozásának megkezdéséhez, hogy megfeleljen a POSIX specifikációnak. Összefoglalták a forksystem hívás problémáit, és javasolták azokat a funkciókat, amelyekkel a fork rendszerhívásnak rendelkeznie kell a modern számítógéphez.

Alternatív módokat is kínálnak a villa cseréjére. Zhao et al. [19] rámutatott, hogy a jelenlegi rendszerekben a fork implementáció nem hatékony, mivel a nagy memóriaterülettel rendelkező alkalmazásoknak hosszú időre van szükségük az oldaltáblázat beállításához. Megoldásként általánosították az írásra másolás technikát, így az oldaltáblázatot az írásra ugyanúgy másolják, mint a normál oldalakat.


For more information:1950477648nn@gmail.com

Akár ez is tetszhet