CCoW: Optimalizace funkce Copy-on-Write s ohledem na prostorovou lokalitu v pracovní zátěži, část 4
Apr 03, 2024
3.3. Sledování přístupu k předem zkopírovaným stránkám
CCoW má amortizovat režii za častou režii při zpracování chyb stránek. Kopírování stránek předem však vede k dalšímu problému: sledování přístupů na stránku po zkopírování.
Mezi zpracováním chyb a pamětí existuje silné spojení. Pro většinu lidí jsou chyby často považovány za špatnou věc, ale mohou být příležitostí k učení a růstu. Správným zpracováním chyb můžeme zlepšit naši paměť a pomoci nám lépe porozumět podobným situacím a reagovat na ně.
Jedním ze způsobů, jak se vypořádat s chybami, je přemýšlet a analyzovat. Když uděláme chybu, měli bychom si udělat čas na zamyšlení nad tím, jak k chybě došlo a co můžeme udělat, aby se podobná chyba neopakovala. Prostřednictvím reflexe můžeme identifikovat základní příčiny problémů a vyvinout protiopatření k jejich vyřešení. Tento druh analýzy není jen o chybách, může nám pomoci lépe se rozhodovat v jiných životních situacích a zlepšit naše dovednosti a schopnosti.
Dalším způsobem, jak se vypořádat s chybami, je dovolit si je přijmout a jít dál. Neměli bychom dovolit, aby nás chyby zpomalovaly nebo frustrovaly. Místo toho bychom je měli považovat za příležitosti k růstu, které nám umožňují poučit se z našich chyb a nadále se zlepšovat. Pokud dokážeme přijmout chyby a vypořádat se s nimi s pozitivním přístupem, můžeme si vybudovat pevné myšlení a sebedůvěru, což je velmi důležité pro udržení dobré paměti.
Konečně můžeme posílit svou paměť sdílením našich chyb. Když říkáme ostatním o chybách, které jsme udělali, máme tendenci si tyto události hlouběji pamatovat. Je to proto, že když to říkáme ostatním, musíme si věci ujasnit a připomenout si každý detail chyby. Tímto způsobem můžeme lépe porozumět těmto chybám a zabránit jejich opakování.
Stručně řečeno, existuje silný vztah mezi zpracováním chyb a pamětí. Správným zacházením s chybami můžeme posílit paměť, zlepšit své dovednosti a schopnosti a stát se lepšími lidmi. Chyby bychom měli považovat za příležitost, aktivně čelit obtížím a učit se z nich a růst. Je vidět, že potřebujeme zlepšit paměť a Cistanche deserticola může výrazně zlepšit paměť, protože Cistanche deserticola je tradiční čínský léčivý materiál, který má mnoho jedinečných účinků, jedním z nich je zlepšení paměti. Účinnost Cistanche deserticola pochází z mnoha aktivních složek, které obsahuje, včetně kyseliny tříslové, polysacharidů, flavonoidních glykosidů atd. Tyto složky mohou podporovat zdraví mozku různými cestami.

Klikněte na možnost Znát krátkodobou paměť, jak se zlepšit
V původním schématu kopírování při zápisu je první zápis na každou stránku zachycen obslužným programem chyb stránky.
Zkopíruje se pouze vadná stránka a systém může přesně sledovat přístup ke každé stránce prostřednictvím obslužného programu chyb stránky. Na druhou stranu, když systém zkopíruje celý region, všechny stránky v regionu jsou mapovány do procesu s písemným souhlasem.
Následné zápisy na tyto zkopírované stránky tedy mohou proběhnout bez spuštění mechanismu zpracování chyb stránky, takže systém nemůže sledovat přístupy ke zkopírovaným stránkám. To může být problematické, když proces opakovaně provádí rozvětvení. Předpokládejme, že oblast má vysokou prostorovou polohu a epocha je definována jako období mezi dvěma vidlicemi.
Vysokou lokalitu lze zachytit spočítáním chyb stránky, ke kterým došlo v regionu. Pak předpokládejme, že proces vytvoří nový proces s vidličkou. Když je s rozvětvením zahájena nová epocha, první přístup pro zápis na jednu ze stránek v regionu spustí CCoW, zkopíruje všechny stránky v regionu. Nyní má proces všechny stránky s oprávněním k zápisu a až do konce epochy se z oblasti negenerují žádné další chyby stránek.
Když je znovu zahájena nová epocha, má se za to, že oblast má nízké pokrytí v epoše, vzhledem k tomu, že oblast má pouze jednu stránku kopírování při zápisu. Každý zápis do oblasti je tedy zpracován prostřednictvím původního mechanismu kopírování při zápisu na stránku, čímž je ohrožena možnost optimalizace výkonu, i když má oblast vysokou lokalitu.
Všimněte si, že oblast je v příští epoše považována za oblast s vysokou lokalitou a proces se opakuje, aby se situace změnila. K vyřešení tohoto problému potřebujeme mechanismus pro sledování přístupu ke stránce po zkopírování.
Tato studie navrhuje využití nečistého bitu v záznamu tabulky stránek (PTE). Obecně platí, že moderní architektury udržují různé informace v PTE pro každou stránku a špinavý bit je jedním z polí podporovaných většinou architektur.
Když MMU zpracovává přístup do paměti pro zápis, automaticky nastaví nečistý bit odpovídající stránky. To naopak znamená, že když je nastaven nečistý bit pro stránku, stránka byla aktualizována přístupy pro zápis.
Na základě této myšlenky jsme upravili mechanismus pro výpočet pokrytí. Zpočátku jsou všechny regiony považovány za normální regiony. Během rozvětvení se pokrytí pro normální oblasti vypočítává s počtem kopií při zápisu pomocí rovnice (1).

Při zpracovávání chyby stránky pro oblast s vysokou lokalitou jsou všechny stránky v oblasti zkopírovány s vymazaným špinavým bitem. Kromě toho je oblast označena jako předkopírovaná oblast. Během rozvětvení se pokrytí pro kopírovanou oblast vypočítává s počtem špinavých stránek v oblasti takto:
![]()
Vypočtené pokrytí pro každý region se přenese přes rozvětvení a použije se jako metrika pro prostorovou lokalitu regionu. Pokud v oblasti dojde k chybě zápisové stránky, systém zkontroluje pokrytí oblasti a může předem zkopírovat stránky pro oblasti s vysokou lokalitou.
Obrázek 2 ilustruje situaci, kdy se pokrytí počítá po předkopii. Předpokládejme, že obě oblasti jsou zkopírovány (stínovány červeně) a stránky 0, 2, 3, 4 a 11 mají všechny nastavené dirtybit.
K výpočtu pokrytí při zpracování větvení systém používá nečistý bit namísto počtu kopií při zápisu, protože regiony jsou zkopírovány v aktuální epoše. Oblast 0 má tedy pokrytí 66 %.
Zatímco pokrytí regionu 1 je 15 %. Aby se zvládla chyba stránky pro stránku 3, oblast 0 se znovu zkopíruje, zatímco chyba stránky pro stránku 9 se zpracuje původním mechanismem. Tímto způsobem můžeme zabránit tomu, aby oblasti s vysokou lokalitou sklouzly mimo záběr.

3.4. Zachycení lokality
Protože obslužný program chyb stránky leží na cestě kritické pro výkon v operačním systému, měli bychom minimalizovat režii implementace navrhovaného schématu.
CCoW v podstatě vyžaduje mechanismus pro výpočet pokrytí a nejjednodušším způsobem implementace této funkce je sledování stránek spouštějících chyby stránek pomocí bitmapy, jak jsme popsali v části 3.2.
Při zpracování chyby stránky systém nastaví bit odpovídající chybné stránce. Během rozvětvení systém skenuje bitmapu, aby spočítal počet vadných stránek pro každý region a vypočítá pokrytí. Bitmapa se po výpočtu resetuje.
Tento přístup je jednoduchý, ale vyžaduje velká prostorová a časová omezení. Systém by měl udržovat jednobitovou bitmapovou položku pro každou stránku o velikosti 4 kB a během rozvětvení kontrolovat celou bitmapu. Vzhledem k obrovské paměti paměťově náročných aplikací budou tyto operace vyžadovat vysokou režii během rozvětvení, což kompenzuje výkonnostní přínos CCoW. Tuto implementaci optimalizujeme využitím vlastností chyby stránky.
Pokud na stránce dojde k chybě stránky, stránka nevyvolá další chyby stránky, dokud proces nevytvoří nový proces. Každá stránka tedy může vyvolat poruchu maximálně jedné stránky a v oblasti s n stránkami se chyby stránky mohou vyskytnout až nkrát. To znamená, že počítání počtu chyb stránky na oblast je dostatečné pro výpočet pokrytí, spíše než udržování bitmapy pro jednotlivé stránky.
Bitmapu tedy nahradíme čítačem chyb. Každá oblast je spojena s dvojicí čítačů takto: jeden pro počítání chyb stránek v poslední epoše a druhý pro počítání chyb stránek v aktuální epoše.
První slouží k určení prostorové lokality regionů, zatímco druhý slouží ke sledování prostorové lokality současné epochy. Během rozvětvení se aktuální počítadlo poruch zkopíruje do předchozího počítadla poruch.
Pokud je oblast zkopírována v této epoše, počet špinavých stránek v oblasti se místo toho zapíše do předchozího čítače chyb. Čítače se naplní při vytváření nové oblasti virtuální paměti (VMA) a získají zpět, když je jejich odpovídající VMA zmenšena nebo nezmapována. Tato optimalizace snižuje prostorovou režii CCoW z jednoho bitu na stránku na několik bajtů na oblast.

For more information:1950477648nn@gmail.com






