CCW: kopijavimo rašant optimizavimas atsižvelgiant į erdvinę vietovę darbo krūviuose 1 dalis
Apr 02, 2024
Santrauka:
Kopijavimas rašant (CoW) yra esminė atminties valdymo technika, leidžianti efektyviai dalytis puslapiais tarp procesų. Tiksliau, kartu su CoW ir šakutės sistemos iškvietimu, programos, net ir turinčios didžiulį atminties plotą, gali fotografuoti dabartinius atmintyje esančius duomenis su mažomis sąnaudomis.
Atminties duomenys reiškia duomenis, saugomus kompiuterio atmintyje. Nors ji skiriasi nuo žmogaus atminties, tarp jų yra tam tikras ryšys.
Pirma, atminties duomenys gali skatinti žmogaus atminties vystymąsi. Pavyzdžiui, galime naudoti kompiuterių įrašymo, saugojimo ir paieškos funkcijas, kurios padės mums mokytis, prisiminti ir suprasti žinias. Šiuolaikinės technologijos suteikia mums veiksmingesnius būdus prisiminti ir mokytis, o tai užtikrina, kad galime geriau įsisavinti žinias ir įgūdžius.
Antra, atminties duomenys taip pat gali padėti žmonėms geriau valdyti savo prisiminimus. Tvarkingai sutvarkę ir suskirstę duomenis galime greičiau rasti ir prisiminti mums reikalingą informaciją, kuri yra labai svarbi mūsų gyvenimui, darbui ir studijoms.
Svarbiausia, kad atmintyje esantys duomenys apsaugo nuo žmogaus atminties praradimo. Žmogaus atmintis laikui bėgant palaipsniui silpnėja – procesas vadinamas „užmiršimu“. Tačiau, saugodami duomenis kompiuterio standžiajame diske, galime užtikrinti, kad mums reikalinga informacija ir atmintis bus išsaugoti ir bet kada ją atkurti.
Todėl galima sakyti, kad ryšys tarp atminties duomenų ir žmogaus atminties yra teigiamas. Nors neturėtume per daug pasikliauti technologijomis, racionalus atminties duomenų naudojimas gali pagerinti mūsų darbo efektyvumą ir mokymosi rezultatus, padėti mums geriau valdyti atmintį ir užkirsti kelią pamiršimui. Matyti, kad turime gerinti atmintį, o Cistanche deserticola gali žymiai pagerinti atmintį, nes Cistanche deserticola yra tradicinė kinų vaistinė medžiaga, turinti daug unikalių poveikių, vienas iš jų – gerinti atmintį. Cistanche deserticola veiksmingumą lemia daugybė jame esančių veikliųjų medžiagų, įskaitant tanino rūgštį, polisacharidus, flavonoidinius glikozidus ir kt. Šie ingredientai įvairiais būdais gali skatinti smegenų sveikatą.

Spustelėkite žinoti 10 būdų, kaip pagerinti atmintį
Tačiau kadangi CoW vyksta kiekviename puslapio klaidų tvarkyklės puslapyje, kiekvieną kartą, kai atsiranda puslapio klaida, operacinė sistema turėtų įsitraukti. Dėl to smarkiai pablogėja intensyvaus rašymo darbo krūvio našumas.
Šiame dokumente siūloma aprėpties pagrindu sukurta kopijavimo rašymas (CCoW), optimizuota COW schema, atsižvelgiant į prieigos prie atminties vietą, kad būtų sumažinta CoW problema. CCoW matuoja erdvinę vietovę proceso adresų erdvėse, naudodamas aprėpties sąvoką.
Apdorodamas CoW, CCoW iš anksto nukopijuoja kelis puslapius didelės vietos atminties regionams, taip sumažindamas OS įtraukimą į intensyvų rašymo darbo krūvį. Mes paaiškiname vietovės matavimo iššūkius ir pateikiame optimizavimą koncepcijai įgyvendinti.
Įvertinimas naudojant prototipą rodo, kad šis metodas gali pagerinti bendrą programų našumą iki 10 % su nedideliu atminties kiekiu.
Raktiniai žodžiai: kopijavimas-rašymas; virtualios atminties sistema; šakutė; Redis; puslapio gedimas.
1. Įvadas
Pagrindinis operacinės sistemos (OS) vaidmuo yra valdyti vertingus sistemos išteklius, o kopijavimas rašant (CoW) yra viena iš pagrindinių atminties valdymo metodų, naudojamų daugelyje šiuolaikinių operacinių sistemų.
Kai du ar daugiau procesų turi turėti tuos pačius duomenis, CoW schema leidžia procesams dalytis tais pačiais puslapiais, o ne iškart dubliuoti puslapius. Bendrinami puslapiai yra dubliuojami pagal poreikį, tik tada, kai vienas iš procesų rašo į bendrinamus puslapius.
Virtualios atminties sistemos gali efektyviai užtikrinti duomenų dalijimąsi tarp procesų, o įvairios virtualios atminties funkcijos, tokios kaip adresų erdvės dubliavimas proceso šakučių metu, tų pačių puslapių kopijavimas ir nulinis puslapių dalijimasis, yra įgyvendinamos remiantis kopijavimo ir rašymo principu [1–3]. Dėl šių funkcijų programos gali pasidaryti savo kopiją su mažai vietos ir tinkamai naudoti kloną.
Pavyzdžiui, Redis, viena iš populiarių atminties rakto vertės saugyklų sistemų [4], naudoja kopijavimo ir rašymo funkciją kartu su šakutės sistema, kad iškviestų nuolatinius atmintyje esančius duomenis į saugyklą. Teikdamas gaunamas užklausas, pagrindinis Redis procesas periodiškai sukuria antrinį procesą su šakute. Antrinis procesas prasideda atminties momentine nuotrauka, identiška pagrindiniam procesui, siekiant išsaugoti atmintyje esančius duomenis.

Kadangi momentinė nuotrauka yra izoliuota nuo pagrindinio proceso adresų erdvės, bet valdoma kopijavimo-rašymo būdu, pagrindiniam ir antriniam procesui nereikia jokio sudėtingo mechanizmo, kad būtų išlaikytas esamų duomenų ir momentinės nuotraukos nuoseklumas.
Taigi galime manyti, kad kopijavimas rašant yra būtinas virtualiosios atminties sistemoje. Tačiau dabartinis kopijavimas rašant yra problematiškas daug atminties reikalaujančiose programose, kuriose daug darbo krūvių. Tiksliau sakant, duomenų dubliavimas paprastai įvyksta OS puslapio gedimų tvarkyklėje. Kadangi duomenų dubliavimas yra apdorojamas viename puslapyje, kelis kartus įrašant, procesas gali sukelti daug puslapio klaidų.
OS yra įtraukta į kiekvieno puslapio gedimą, todėl dažnai perjungiami vartotojo branduolio režimai. Atsižvelgiant į didžiulį daug atminties reikalaujančių programų atmintį, režimų jungiklių skaičius yra didelis.
Be to, puslapių lentelė yra modifikuojama dubliuojant, o tai veda prie visų sistemos branduolių pašalinimo iš vertimo buferio (TLB). Visa tai sukelia nereikšmingas pridėtines išlaidas ir pablogina programų veikimą.
Šiame darbe siūloma kopijavimo rašant kopijavimo (CCoW) aprėpties pagrindu – nauja kopijavimo rašant optimizavimo schema. Kai puslapis pasiekiamas rašymui, jo šalia esantys puslapiai taip pat greičiausiai bus greitai pasiekti, kad būtų galima rašyti dėl erdvinės vietos prieigose atmintyje. CCoW išnaudoja erdvinę vietovę, kad sumažintų puslapių klaidų skaičių kopijavimo ir rašymo metu. Tiksliau, CCoW apdoroja kopijavimą rašant dideliu detalumu (vadinamu regionu).
Nukopijuodama kelis puslapius puslapio klaidų tvarkyklėje, CCoW gali sumažinti daug puslapių klaidų, atsirandančių dėl kopijavimo rašant ir susijusių papildomų išlaidų. Tačiau erdvinės vietovės laipsnis labai skiriasi priklausomai nuo vietos proceso adresų erdvėje, o mažos vietos atminties dalių dubliavimas patiria tik pridėtines laiko ir erdvės išlaidas.
Norėdami pašalinti šį trūkumą, siūlome tikslų mažų pridėtinių išlaidų mechanizmą, skirtą įvertinti erdvinę vietovę proceso adresų erdvėje. CCoW skaičiuoja kopijavimų ir įrašų skaičių kiekviename regione.
Pernešdami vietovės informaciją per šakes, galime įvertinti erdvinės vietovės laipsnį, o CCoW efektyviai atlieka išankstinę kopiją tik didelės vietos regionams. Siūlomą CCoW schemą įdiegėme Linux branduolyje.
Kadangi programos yra integruotos į operacinės sistemos virtualiosios atminties sistemą, jos gali būti naudingos CCoW be pakeitimų. Mes išanalizavome našumo charakteristikas naudodami mikro etaloną, o įvertinimas naudojant etaloną su realiais darbo krūviais rodo, kad CCoW gali pagerinti programos našumą iki 10%, turėdamas pagrįstą atminties kiekį.

Likusi šio dokumento dalis yra išdėstyta taip. 2 skyriuje apžvelgiame pagrindą ir su juo susijusius darbus, įskaitant virtualiąją atmintį ir šakutę. CCW projektavimo ir įgyvendinimo detales paaiškiname 3 skyriuje. 4 skyriuje pateikiami CCW vertinimo rezultatai. Galiausiai šį dokumentą baigiame 5 skyriuje.
2. Pagrindinės žinios ir susiję darbai
2.1. Puslapis ir virtualioji atmintis
Beveik visi šiuolaikiniai kompiuteriai ir operacinės sistemos naudoja ieškojimą ir virtualiąją atmintį kaip pagrindinę atminties valdymo schemą [5]. Pagrindinė atmintis yra padalinta į tokio pat dydžio puslapius, o OS paskirsto arba išskiria atmintį iš vartotojo procesų puslapių bloke.
OS taip pat palaiko procesų adresų erdvių susiejimą su fizine vieta sistemoje. Kiekvienas loginis puslapis proceso adresų erdvėje yra susietas su jo fizine vieta ir šis susiejimas saugomas puslapio lentelės pavidalu.
Norėdami apdoroti proceso atminties nuorodą, atminties valdymo blokas (MMU), procesoriaus aparatinės įrangos komponentas, paverčia prašomą adresą į jo fizinį adresą, remdamasis puslapių lentele. Puslapių lentelę sudaro puslapių lentelės įrašai (PTE). Kiekviename PTE yra susiejimo informacija ir gali būti papildomų laukų, skirtų apibūdinti atitinkamo puslapio būseną ir atvaizdavimą.
Puslapio dydis, nors ir priklauso nuo architektūros, daugelyje architektūrų paprastai yra 4 KB. Tai reiškia, kad kiekvienas 4 KB proceso adresų erdvėje turi turėti vieną PTE. Atsižvelgiant į didžiulį proceso adresų erdvės dydį, puslapio lentelės dydis net ir vienam procesui gali būti didžiulis.
Pavyzdžiui, proceso puslapių lentelė 64-bitų architektūroje su 4 KB puslapiais ir 8-baitu PTE būtų 32 PB (264/212 × 8=255 baitų). Tačiau adresų erdvė paprastai yra retai apgyvendinta, o didžioji dalis adresų erdvės nereikalinga.
Tai paaiškina hierarchinę puslapio lentelės struktūrą. Visa puslapio lentelė yra padalinta į puslapio lentelės dalis, kurios telpa puslapyje. Puslapių lentelės dalys nėra paskirstytos nepaskirstytiems adresų regionams.

Užpildytos puslapio lentelės dalys gali būti apibendrintos ashigher lygio puslapių lentelės dalys. Ši instrukcija kartojama tol, kol viename puslapyje yra tik gabalai, todėl galima sukurti kompaktišką puslapių lentelių formą.
For more information:1950477648nn@gmail.com






