CCoW: Kopioinnin optimointi työkuormien spatiaalisen paikallisuuden huomioon ottaen osa 2

Apr 02, 2024

Pieni sivukoko voi olla ongelmallista, koska järjestelmät pystyvät käsittelemään valtavan määrän fyysistä muistia. Hierarkkisessa sivutaulukon organisoinnissa jokainen virtuaalisen osoitteen käännös vaatii useita muistin käyttöä, yhden kutakin sivutaulukkotasoa kohden, mikä ei ole hyväksyttävää.

Iän myötä muisti heikkenee vähitellen. Fyysinen muisti ei kuitenkaan ole yksi niistä tekijöistä, jotka vaikuttavat suoraan muistiimme. Muisti liittyy aivojen hermosolujen välisten yhteyksien vahvuuteen, aivojen terveyteen ja muistin käyttötiheyteen.

Aivoissamme neuronit ovat yhteydessä synapsien kautta. Nämä synapsit kannustavat meitä tallentamaan ja hakemaan tietoa. Ikääntyessämme nämä synaptiset yhteydet kuitenkin heikkenevät, mikä saa muistimme heikkenemään. Tämä ei johdu fyysisen muistimme heikkenemisestä, vaan siitä, että aivoissamme tapahtuu tiettyjä muutoksia, jotka vaikuttavat kykyihimme.

Aivojen käyttö voi kuitenkin auttaa meitä säilyttämään hyviä muistoja. Aivot tarvitsevat liikuntaa, aivan kuten keho, se tarvitsee vapaa-aikaa ja liikuntaa pysyäkseen terveenä. Hyvien ajattelutapojen kehittäminen edistää aivojen terveyttä ja tehokkuutta. Esimerkiksi uusien asioiden oppiminen, muistitekniikoiden käyttö, loogisten pulmien pelaaminen jne. voivat parantaa aivojen laatua ja tehokkuutta.

Siksi fyysinen muisti on yksinkertaisesti aivojen käytettävissä oleva tallennuskapasiteetti. Muistimme on tiiviisti sidottu aivomme saavuttamien rajoihin. Harjoittelemalla jatkuvasti aivojamme voimme tehdä muististamme kestävämmän ja ylläpitää sen korkealla tasolla. Muistin parantamiseksi meidän tulee keskittyä aivojen harjoitteluun säilyttäen samalla positiivinen asenne ja hyvät terveystottumukset. Voidaan nähdä, että meidän on parannettava muistia, ja Cistanche deserticola voi parantaa merkittävästi muistia, koska Cistanche deserticolalla on antioksidanttisia, anti-inflammatorisia ja ikääntymistä estäviä vaikutuksia, jotka voivat auttaa vähentämään hapettumista ja tulehdusreaktioita aivoissa ja siten suojaamaan hermoston terveyttä. Lisäksi Cistanche deserticola voi myös edistää hermosolujen kasvua ja korjausta, mikä parantaa hermoverkkojen yhteyttä ja toimintaa. Nämä vaikutukset voivat auttaa parantamaan muistia, oppimista ja ajattelunopeutta ja voivat myös estää kognitiivisten toimintahäiriöiden ja hermostoa rappeutuvien sairauksien kehittymistä.

increase brain power

Napsauta tietää tapoja parantaa aivojen toimintaa

Vähentääkseen virtuaalista fyysiseen osoitteiden käännöstyötä, monet nykyaikaiset arkkitehtuurit sisältävät välimuistin osoitteiden kääntämistä varten. TheMMU säilyttää useita viimeaikaisia ​​käännöstuloksia laitteistologiikassa, jota kutsutaan käännöspuskuriksi, joka tunnetaan myös nimellä TLB.

Yleensä nykyaikaisten arkkitehtuurien TLB:t voivat sisältää noin 500 - 2000 merkintää [6,7]. Merkinnät indeksoidaan laitteistolla, jotta prosessoriydin voi etsiä käännöksen erittäin nopeasti. Hyödyntämällä muistiviittausten sijaintia, monet osoitekäännökset voidaan suorittaa ilman sivutaulukon läpikäymistä (kutsutaan TLB-osumaksi).

Kun muistiintensiivisten sovellusten muistijalanjälki kasvaa nopeasti, myös prosessin virtuaalisten ja fyysisten sivukartoitusten määrä kasvaa. Laitteiston rajoituksista johtuen TLB-merkintöjen määrä ei kuitenkaan pysty pysymään sovellusmuistin nopean kasvun mukana. Siten TLB:n ohitustiheys kasvaa, mikä aiheuttaa pullonkauloja muistiintensiivisten sovellusten suorituskyvyssä [8–11].

Tämän rajoituksen voittamiseksi jotkin arkkitehtuurit tukevat lisäsivukokoja, jotka ovat suurempia kuin 4 kt:n perussivujen koko. Esimerkiksi nykyaikaiset Intel-arkkitehtuurit tukevat 2 Mt:n ja 1 Gt:n sivukokoja [7]. Näin valtavalla sivukoolla yksi osoitekäännös voi kattaa laajemman osoitealueen, mikä lisää tehokkaasti kattavuutta, jonka TLB voi tarjota samalla määrällä merkintöjä.

Esimerkiksi järjestelmä, jossa on 1024 TLB-merkintää ja 4 kt:n perussivukoko, voi tarjota 4 Mt:n TLB-peiton, kun taas sama määrä merkintöjä 1 Gt:n suurilla sivuilla tarjoaa 1 Tt:n peiton. Linux käyttää valtavaa sivua läpinäkyvien valtavien sivujen muodossa. (THP:t). Kuten nimestä voi päätellä, Linux tarjoaa käyttäjäprosesseille implisiittisesti suuria sivuja aina kun mahdollista.

Jos THP ei ole käytössä, Linux varaa muistia prosesseille 4 kt:n perussivuyksikössä. Jos THP on käytössä, Linux yrittää varata valtavan sivun (koko 2 Mt) perussivun sijasta, mikä mahdollistaa karkearakeisen sivukartoituksen. Tämä suuri tarkkuus mahdollistaa tehokkaan sivujen jakamisen vanhemman ja lasten välillä haarukan kautta. Jos valtava sivuvaraus ei ole tällä hetkellä mahdollista, Linux palaa perussivujen varaukseen. Linux tarkistaa ajoittain prosessin osoiteavaruudet löytääkseen perussivut ja yhdistääkseen ne valtaviin sivuihin.

improve your memory

On tehty tutkimuksia, joissa on yritetty edistää valtavia sivuja suorituskyvyn parantamiseksi ja samalla peittää niiden puutteita entisestään. Ingens [12,13] ehdottaa suurten sivujen valmistamista asynkronisesti kriittisen polun ulkopuolelle.

Hawkeye [14] esittelee hienorakeisen valtavan sivupromootiojärjestelmän, joka perustuu muistin käyttömalleihin suorituskyvyn maksimoimiseksi minimaalisella määrällä valtavia sivupromootiota. Zhu et ai. [15] yleistää valtavien sivujen käyttöprosesseja ja optimoi valtavien sivujen elinkaaren. Part et ai. [16] mahdollistaa aukkoja suurille sivuille, mikä tarjoaa joustavuutta muistinhallinnassa suurilla sivuilla.

Valtava sivu on kuitenkin kaksiteräinen miekka. Hallintayksikön kasvaneen koon vuoksi sivujen allokointi kärsii sisäisestä pirstoutumisesta. Jos varattu osoitealue on pienempi kuin valtava sivukoko, sivun muuta osaa ei voida hyödyntää ja se menee hukkaan. Tämä niin kutsuttu muistin paisuminen voi vähentää merkittävästi muistin käyttöä järjestelmissä, joissa on valtavat sivut [12–17].

Suurentunut sivukoko voi vaikuttaa negatiivisesti myös ohjelman suorituskykyyn. Nykyaikaiset käyttöjärjestelmät ottavat laajalti käyttöön kopiointi-kirjoitusmenetelmän tehokkaan muistin jakamisen varmistamiseksi prosessien välillä. CoW käsitellään kuitenkin vain perussivun tarkkuudella.

Siten CoW:n käsittelemiseksi valtavalla sivulla valtava sivu jaetaan perussivuiksi ja vain viallinen sivu kopioidaan. Valtavien sivujen murtaminen vie paljon aikaa, mikä johtaa ajoittaiseen pitkiin sivuvirheiden käsittelyyn. Tässä mielessä jotkin sovellukset, edes muistiintensiiviset, eivät suosittele valtavien sivujen käyttöä vakaan suorituskyvyn ja muistin käytön varmistamiseksi [4,18].

Yleensä prosessin osoiteavaruudessa on osoiteavaruusalueita, joissa kaikilla alueen sivuilla on samat käyttöoikeudet ja ominaisuudet. Hallinnolle modernit käyttöjärjestelmät yleensä ottavat käyttöön "virtuaalimuistialueen (VMA)" käsitteen edustamaan tällaisia ​​osoiteavaruusalueita. Voimme luokitella sivut prosessiosoiteavaruudessa niiden alkuperän mukaan.

improving brain function

Jotkin sivut voidaan ladata toissijaisessa tallennustilassa olevasta taustatiedostosta, joita kutsutaan "tiedostotuetuiksi sivuiksi". Jotkut sivut täytetään dynaamisesti ilman taustatietoja. Pinon ja pinon sivut ovat tässä tapauksessa niin sanottuja "anonyymejä sivuja".

2.2. Haarukka ja kopiointi-kirjoitus

Fork on yksi POSIX-standardin järjestelmäkutsuista uuden prosessin luomiseksi. Kun prosessi kutsuu haarukan järjestelmäkutsun, uusi prosessi luodaan kutsuprosessin ali.

Kotelon alla käyttöjärjestelmä luo lapsiprosessin kopioimalla koko soittoprosessin osoiteavaruuden. Tämä tarkoittaa, että aliprosessin tulisi alkaa samoilla tiedoilla kuin emoprosessi.

Käsitelläkseen osoiteavaruuden päällekkäisyyttä tehokkaasti useimmat nykyaikaiset käyttöjärjestelmät käyttävät CoW-tekniikkaa (copy-on-write). Monistaakseen ylätason osoiteavaruuden käyttöjärjestelmä ei kopioi jokaista sivua. Sen sijaan aliprosessin sivutaulukko muodostetaan kopioimalla pääprosessin sivutaulukko.

Tämä tekee tehokkaasti jaetun yhdistämisen ylätason osoiteavaruuteen. Jaettua kartoitusta tehtäessä jokaisen sivun kirjoitusoikeudet poistetaan tyhjentämällä vastaavan PTE:n lupabitti.

Karttauksen kopioimisen jälkeen sekä vanhempi että lapsi voivat lukea jaetut sivut sivuinaan. Kun jokin prosesseista antaa kirjoitusoikeuden sivulle, MMU laukaisee kirjoitusoikeuden puuttumisen vuoksi sivuvian. Sivun viankäsittelijässä käyttöjärjestelmä varaa uuden sivun, kopioi alkuperäisen sivun ja päivittää vastaavan vian aiheuttavan prosessin sivukartoituksen kirjallisella luvalla.

Tässä vaiheessa vanhemmalla ja lapsella voi olla eri dataa samassa virtuaaliosoitteessa. Tätä kopiointi-kirjoitusmekanismia käytetään laajasti perusavainmekanismina monien virtuaalisen muistin ominaisuuksien toteuttamisessa. Tarkemmin sanottuna alustamattomien kekoalueiden lukuja käsitellään yleensä jaetulla kartoituksella nollasivulle, joka on erityinen sivu, joka sisältää kaikki nollat.

Ytimen saman sivun yhdistäminen (KSM) on tekniikka, jolla poistetaan samat sivut järjestelmässä. Käyttöjärjestelmä skannaa järjestelmän sivut tunnistaakseen sivut, joilla on identtisiä tietoja. Kun tällaisia ​​sivuja löytyy, käyttöjärjestelmä ottaa takaisin kaikki sivut yhtä lukuun ottamatta ja päivittää vastaavat sivutaulukot jakaakseen jäljellä olevan sivun.

Käsittelyssä kirjoituslupa pudotetaan, jotta myöhempi kirjoitusoikeus sivulle tunnistetaan ja kopioidaan. Kopioinnin ja kirjoittamisen tehokkuuden ansiosta prosessien luominen tulee tehokkaaksi, ja jotkin tietointensiiviset sovellukset hyödyntävät tätä etua datakopion luomiseen. .

Redis, yksi suosituista muistissa olevista avainarvovarastopalveluista [4], on yksi tällainen tapaus [19]. Redisis on suunniteltu ensisijaisesti pitämään tiedot muistissa korkean suorituskyvyn ja alhaisen viiveen takaamiseksi.

Jotkut sovellukset vaativat kuitenkin tallennettujen tietojen pysyvyyttä, ja täydentää muistissa olevaa suunnittelua uudelleen haarukalla. Redis soveltaa saapuvia pyyntöjä vain muistissa olevaan hakemistoon ja tietorakenteisiin ja kutsuu ajoittain haarukkajärjestelmäkutsun. Tämä luo tehokkaasti aliprosessin, jossa on kopioitu alkuperäisen uudelleenkäsittelyprosessin muistisisältö, ja kutsuprosessi (eli alkuperäinen prosessi) jatkaa saapuvien pyyntöjen käsittelyä.

Lapsiprosessi muuttaa sen suorittamista; Käyttäen nykyistä muistin sisältöä tilannekuvana, se sarjoittaa muistissa olevat tietorakenteet tiedostoiksi, mikä varmistaa muistissa olevan tilannevedoksen pysyvyyden. Kun tilannekuva on huuhdeltu, aliprosessi päättyy.

Alkuperäinen prosessi voi tehdä toisen tilannekuvan samalla tavalla, ja järjestelmän kaatuessa Redis voidaan palauttaa lukemalla viimeinen tilannekuva. Vaikka haarukka on korvaamaton järjestelmäkutsu, sen yläpuolella on kritisoitu.

supplements to boost memory

Baumann et ai. [20] analysoi haarukkaa ja havaitsi, että haarukka aiheuttaa suorituskyvyn heikkenemistä nykyaikaisissa sovelluksissa. Esimerkiksi kun nykyaikaiset sovellukset monimutkaistuvat, käyttöjärjestelmän tulisi harkita noin 25 erikoistapausta aloittaakseen haarukan järjestelmäkutsun käsittelyn POSIX-spesifikaatioiden mukaisesti. He tekivät yhteenvedon forksystem-kutsun ongelmista ja ehdottivat ominaisuuksia, jotka fork-järjestelmäkutsussa pitäisi olla nykyaikaiselle tietokoneelle.

Ne tarjoavat myös vaihtoehtoisia tapoja vaihtaa haarukka. Zhao et ai. [19] huomautti, että haarukkatoteutus nykyisissä järjestelmissä on tehotonta, koska sovellukset, joilla on suuri muistitila, vaativat pitkän ajan sivutaulukon asettamiseen. Ratkaisuna he yleistivät kopiointi-kirjoitustekniikan siten, että sivutaulukko kopioidaan kirjoituksille samoin kuin tavallisille sivuille.


For more information:1950477648nn@gmail.com

Saatat myös pitää