CCoW: Optimiziranje kopiranja ob pisanju ob upoštevanju prostorske lokacije pri delovnih obremenitvah, 1. del

Apr 02, 2024

Povzetek:

Copy-on-write (CoW) je bistvena tehnika upravljanja pomnilnika, ki omogoča učinkovito deljenje strani med procesi. Natančneje, v kombinaciji CoW s sistemskim klicem fork lahko aplikacije, tudi z velikim pomnilniškim odtisom, posnamejo posnetek trenutnih podatkov v pomnilniku z nizkimi stroški.

Pomnilniški podatki se nanašajo na podatke, shranjene v pomnilniku računalnika. Čeprav se razlikuje od človeškega spomina, med njima obstaja določena povezava.

Prvič, podatki o spominu lahko spodbujajo razvoj človeškega spomina. Na primer, lahko uporabimo funkcije snemanja, shranjevanja in priklica računalnikov, ki nam pomagajo pri učenju, pomnjenju in razumevanju znanja. Sodobna tehnologija nam omogoča učinkovitejše načine pomnjenja in učenja, kar nam zagotavlja boljše obvladovanje znanja in veščin.

Drugič, podatki o spominu lahko ljudem pomagajo tudi pri boljšem upravljanju svojih spominov. Z lično organizacijo in klasifikacijo podatkov lahko hitreje najdemo in prikličemo v spomin potrebne informacije, ki so zelo pomembne za naše življenje, delo in študij.

Najpomembneje je, da podatki v pomnilniku preprečujejo izgubo človeškega spomina. Človeški spomin sčasoma postopoma slabi, ta proces se imenuje "pozabljanje". Vendar pa lahko s shranjevanjem podatkov na trdi disk računalnika zagotovimo, da lahko informacije in spomine, ki jih potrebujemo, kadar koli obdržimo in prikličemo.

Zato lahko rečemo, da je razmerje med spominskimi podatki in človeškim spominom pozitivno. Čeprav se ne smemo preveč zanašati na tehnologijo, lahko razumna uporaba pomnilniških podatkov izboljša našo delovno učinkovitost in učne rezultate, nam pomaga bolje upravljati spomin in preprečuje pozabljanje. Vidimo, da moramo izboljšati spomin, in Cistanche deserticola lahko bistveno izboljša spomin, saj je Cistanche deserticola tradicionalno kitajsko zdravilno sredstvo, ki ima številne edinstvene učinke, eden od njih je izboljšanje spomina. Učinkovitost Cistanche deserticola izhaja iz številnih aktivnih sestavin, ki jih vsebuje, vključno s taninsko kislino, polisaharidi, flavonoidnimi glikozidi itd. Te sestavine lahko spodbujajo zdravje možganov na različne načine.

improve memory

Kliknite spoznajte 10 načinov za izboljšanje spomina

Ker pa se CoW odvija na stran v obdelovalniku napak strani, se mora operacijski sistem vključiti vsakič, ko pride do napake strani. To vodi do znatnega poslabšanja zmogljivosti pri pisno intenzivnih delovnih obremenitvah.

Ta članek predlaga kopiranje-zapisovanje na podlagi pokritosti (CCoW), optimizirano shemo CoW, ki upošteva lokalnost v dostopih do pomnilnika za ublažitev težave CoW. CCoW meri prostorsko lokalnost v procesnih naslovnih prostorih s konceptom pokritosti.

Med obdelavo CoW CCoW vnaprej kopira več strani za območja pomnilnika z veliko lokalnostjo, s čimer minimizira vpletenost OS pri obremenitvah, ki zahtevajo veliko pisanja. Razložimo izzive za merjenje lokalnosti in zagotovimo optimizacijo za izvedbo koncepta.

Vrednotenje s prototipom dokazuje, da lahko ta pristop izboljša celotno zmogljivost aplikacij za do 10 % z majhno količino pomnilnika.

Ključne besede: kopija na pisanje; virtualni pomnilniški sistem; vilice; Redis; napaka strani.

1. Uvod

Primarna vloga operacijskega sistema (OS) je upravljanje dragocenih sistemskih virov, kopiranje ob pisanju (CoW) pa je ena najbolj temeljnih tehnik upravljanja pomnilnika, ki jih uporablja večina sodobnih operacijskih sistemov.

Ko morata dva ali več procesov imeti iste podatke, shema CoW omogoča procesom, da delijo iste strani, namesto da bi takoj podvojili strani. Strani v skupni rabi so podvojene na zahtevo le, ko eden od procesov piše na strani v skupni rabi.

Sistemi navideznega pomnilnika lahko učinkovito zagotovijo skupno rabo podatkov med procesi in različne funkcije navideznega pomnilnika, kot je podvajanje naslovnega prostora med razcepi procesov, odstranjevanje podvojitev istih strani in ničelna skupna raba strani, se izvajajo na podlagi kopiranja ob pisanju [1–3]. Zaradi teh funkcij lahko aplikacije naredijo kopijo same sebe z malo prostora in ustrezno uporabijo klon.

Na primer, Redis, eden od priljubljenih sistemov za shranjevanje ključev v pomnilniku [4], uporablja kopiranje ob pisanju v povezavi s sistemom fork za klic za ohranitev podatkov v pomnilniku v shrambo. Med streženjem vhodnih zahtev glavni proces Redis občasno ustvari podrejeni proces s forkom. Podrejeni proces se začne s posnetkom spomina, ki je enak glavnemu procesu, da se podatki v pomnilniku shranijo v shrambo.

short term memory how to improve

Ker je posnetek izoliran od naslovnega prostora glavnega procesa, vendar ga upravlja kopiranje ob pisanju, glavni in podrejeni procesi ne potrebujejo nobenega zapletenega mehanizma za ohranjanje skladnosti med trenutnimi podatki in posnetkom.

Tako lahko menimo, da je kopiranje ob pisanju bistvenega pomena v sistemu navideznega pomnilnika. Vendar pa je trenutno kopiranje ob pisanju problematično v pomnilniško intenzivnih aplikacijah z obremenitvami pisanja. Natančneje, do podvajanja podatkov običajno pride v obdelovalniku napak strani v OS. Ker se podvajanje podatkov obdeluje na stran z več zapisi, lahko postopek povzroči precejšnje število napak strani.

OS je vpleten v napako na vsaki strani, kar ima za posledico pogoste preklope načina uporabniškega jedra. Glede na velik pomnilniški odtis pomnilniško intenzivnih aplikacij je število preklopov med načini veliko.

Poleg tega je tabela strani spremenjena med podvajanjem, kar povzroči sestrelitev vmesnega pomnilnika za ogled vstran (TLB) vseh jeder v sistemu. Vse to povzroča nezanemarljive stroške in poslabša delovanje aplikacij.

Ta dokument predlaga kopiranje ob pisanju na podlagi pokritosti (CCoW), novo optimizacijsko shemo kopiranja ob pisanju. Ko se do strani dostopa zaradi pisanja, je verjetno, da bodo kmalu dostopne tudi njene bližnje strani zaradi pisanja zaradi prostorske lokacije pri dostopih do pomnilnika. CCoW izkorišča prostorsko lokalnost za zmanjšanje števila napak strani pri kopiranju ob pisanju. Natančneje, CCoW obdeluje kopiranje ob pisanju v veliki razdrobljenosti (imenovani regija).

S kopiranjem več strani v obdelovalcu napak strani lahko CCoW zmanjša precejšnje število napak strani za kopiranje ob pisanju in spremljajoče režijske stroške. Vendar pa se stopnja prostorske lokalnosti zelo razlikuje glede na lokacijo v naslovnem prostoru procesa, podvajanje delov pomnilnika z nizko lokalnostjo pa povzroča samo režijske stroške v smislu časa in prostora.

Da bi odpravili to pomanjkljivost, predlagamo natančen mehanizem nizkih stroškov za oceno prostorske lokalnosti v naslovnem prostoru procesa. CCoW prešteje število kopij ob pisanju in zapisov v vsaki regiji.

S prenosom informacij o lokaciji prek forkov lahko ocenimo stopnjo prostorske lokalnosti, CCoW pa učinkovito izvede predkopiranje samo za regije z visoko lokalnostjo. Predlagano shemo CCoW smo implementirali v jedro Linuxa.

Ker so aplikacije integrirane v virtualni pomnilniški sistem operacijskega sistema, lahko uporabljajo CCoW brez sprememb. Analizirali smo značilnosti delovanja z mikromerilnikom uspešnosti in ocena z uporabo primerjalnega testa z realnimi delovnimi obremenitvami kaže, da lahko CCoW izboljša zmogljivost aplikacije za do 10 % z razumno količino pomnilniških stroškov.

ways to improve memory

Preostali del tega prispevka je organiziran na naslednji način. V 2. razdelku je pregled ozadja in sorodnega dela prispevka, vključno z virtualnim pomnilnikom in forkom. Podrobnosti zasnove CCoW in njegove izvedbe pojasnjujemo v razdelku 3. V razdelku 4 so predstavljeni rezultati ocenjevanja CCoW. Na koncu ta dokument zaključujemo v 5. razdelku.

2. Ozadje in sorodno delo

2.1. Ostranjevalni in navidezni pomnilnik

Skoraj vsi sodobni računalniki in operacijski sistemi uporabljajo ostranjevalni in navidezni pomnilnik kot svojo primarno shemo upravljanja pomnilnika [5]. Glavni pomnilnik je razdeljen na strani enake velikosti, operacijski sistemi pa dodelijo ali sprostijo pomnilnik uporabniškim procesom v stranski enoti.

Operacijski sistemi vzdržujejo tudi preslikave naslovnih prostorov procesov na fizično lokacijo v sistemu. Vsaka logična stran v naslovnem prostoru procesa je preslikana na svojo fizično lokacijo in ta preslikava je shranjena v obliki tabele strani.

Za obdelavo reference pomnilnika za proces enota za upravljanje pomnilnika (MMU), komponenta strojne opreme v procesorju, prevede zahtevani naslov v njegov fizični naslov s sklicevanjem na stransko tabelo. Tabela strani vsebuje vnose tabele strani (PTE). Vsak PTE vsebuje informacije o preslikavi in ​​ima lahko dodatna polja za opis statusa ustrezne strani in preslikave.

Velikost strani, čeprav je specifična za arhitekturo, je v večini arhitektur običajno 4 KB. To pomeni, da mora imeti vsakih 4 KB v naslovnem prostoru procesa en PTE. Glede na ogromno velikost naslovnega prostora procesa je lahko velikost tabele strani, tudi za en sam proces, ogromna.

Na primer, tabela strani za proces v 64-bitni arhitekturi s 4 KB stranmi in 8-bajtom PTE bi bila velika 32 PB (264/212 × 8=255 bajtov). Vendar pa je naslovni prostor običajno redko poseljen in večina naslovnega prostora ni potrebna.

To pojasnjuje hierarhično organizacijo tabele strani. Celotna tabela strani je razdeljena na dele tabele strani, ki ustrezajo strani. Kosi tabele strani niso dodeljeni nedodeljenim naslovnim območjem.

memory enhancement

Napolnjene dele tabele strani je mogoče povzeti kot dele tabele strani višje ravni. Ta posrednost se ponavlja, dokler na eni strani ne obstajajo samo deli, kar omogoča kompaktno obliko tabel strani.


For more information:1950477648nn@gmail.com

Morda vam bo všeč tudi