CCW: Kopēšanas uz rakstīšanas optimizēšana, ņemot vērā darba slodžu telpisko atrašanās vietu, 2. daļa

Apr 02, 2024

Mazais lapas izmērs var radīt problēmas, jo sistēmas kļūst spējīgas apstrādāt milzīgu daudzumu fiziskās atmiņas. Izmantojot hierarhisku lapu tabulu organizēšanu, katrai virtuālās adreses tulkošanai ir nepieciešamas vairākas piekļuves atmiņai, pa vienai katram lapas tabulas līmenim, kas nav pieņemams.

Cilvēkam novecojot, atmiņa pakāpeniski pasliktinās. Tomēr fiziskā atmiņa nav viens no faktoriem, kas tieši ietekmē mūsu atmiņu. Atmiņa ir saistīta ar savienojumu stiprumu starp neironiem smadzenēs, ar smadzeņu veselību un ar to, cik bieži tiek izmantota atmiņa.

Mūsu smadzenēs neironus savieno sinapses. Šīs sinapses mudina mūs uzglabāt un izgūt informāciju. Tomēr, mums novecojot, šie sinaptiskie savienojumi samazinās, izraisot mūsu atmiņas pasliktināšanos. Tas nav tāpēc, ka mūsu fiziskā atmiņa ir samazināta, bet gan tāpēc, ka mūsu smadzenēs notiek noteiktas izmaiņas, kas ietekmē mūsu spējas.

Tomēr smadzeņu izmantošana var palīdzēt mums saglabāt labas atmiņas. Smadzenēm ir vajadzīgas slodzes, tāpat kā ķermenim, lai saglabātu veselību, tām ir nepieciešama atpūta un vingrinājumi. Labu domāšanas paradumu attīstīšana uzlabos jūsu smadzeņu veselību un efektivitāti. Piemēram, apgūstot jaunas lietas, izmantojot atmiņas metodes, spēlējot loģiskās mīklas utt., Tas viss var uzlabot jūsu smadzeņu kvalitāti un efektivitāti.

Tāpēc fiziskā atmiņa ir vienkārši smadzenēm pieejamā atmiņas ietilpība. Mūsu atmiņa ir cieši saistīta ar to, ko mūsu smadzenes var sasniegt. Pastāvīgi vingrinot smadzenes, mēs varam padarīt savu atmiņu noturīgāku un uzturēt to augstā līmenī. Lai uzlabotu atmiņu, mums jākoncentrējas uz smadzeņu vingrošanu, vienlaikus saglabājot pozitīvu attieksmi un labus veselības ieradumus. Var redzēt, ka mums ir jāuzlabo atmiņa, un Cistanche deserticola var ievērojami uzlabot atmiņu, jo Cistanche deserticola piemīt antioksidanta, pretiekaisuma un pretnovecošanās iedarbība, kas var palīdzēt samazināt oksidācijas un iekaisuma reakcijas smadzenēs, tādējādi aizsargājot nervu sistēmas veselība. Turklāt Cistanche deserticola var arī veicināt nervu šūnu augšanu un atjaunošanos, tādējādi uzlabojot neironu tīklu savienojamību un darbību. Šie efekti var palīdzēt uzlabot atmiņu, mācīšanos un domāšanas ātrumu, kā arī var novērst kognitīvo disfunkciju un neirodeģeneratīvo slimību attīstību.

increase brain power

Noklikšķiniet uz zināt veidus, kā uzlabot smadzeņu darbību

Lai mazinātu lielo pieskaitāmo izdevumu virtuālo un fizisko adrešu tulkošanai, daudzās mūsdienu arhitektūrās ir iekļauta kešatmiņa adrešu tulkošanai. TheMMU saglabā vairākus jaunākos tulkošanas rezultātus aparatūras loģikā, ko sauc par tulkošanas buferi, kas pazīstams arī kā TLB.

Parasti mūsdienu arhitektūras TLB var saturēt aptuveni 500 līdz 2000 ierakstu [6,7]. Ierakstus indeksē aparatūra, lai procesora kodols varētu ļoti ātri meklēt tulkojumu. Izmantojot atmiņas atsauču atrašanās vietu, daudzus adrešu tulkojumus var veikt, neizejot cauri lappušu tabulai (saukta par TLB trāpījumu).

Tā kā atmiņas apjoms lietojumprogrammām, kas aizņem daudz atmiņas, strauji pieaug, palielinās arī procesa virtuālo un fizisko lapu kartējumu skaits. Tomēr aparatūras ierobežojumu dēļ TLB ierakstu skaits nevar sekot līdzi lietojumprogrammu atmiņas nospiedumu straujajam pieaugumam. Tādējādi palielinās TLB izlaidumu biežums, radot vājās vietas tādu lietojumprogrammu veiktspējā, kuras prasa daudz atmiņas [8–11].

Lai pārvarētu šo ierobežojumu, dažas arhitektūras atbalsta papildu lapu izmērus, kas ir lielāki par 4 KB bāzes lapām. Piemēram, mūsdienu Intel arhitektūras atbalsta 2 MB un 1 GB lapu izmērus [7]. Ar tik milzīgu lapas izmēru viens adreses tulkojums var aptvert plašāku adrešu diapazonu, efektīvi palielinot pārklājumu, ko TLB var nodrošināt ar tādu pašu ierakstu skaitu.

Piemēram, sistēma ar 1024 TLB ierakstiem un 4 KB bāzes lapas izmēru var nodrošināt 4 MB TLB pārklājumu, turpretim tāds pats ierakstu skaits ar 1 GB lielām lapām nodrošina 1 TB pārklājumu. Linux izmanto milzīgo lapu caurspīdīgu milzīgu lapu veidā. (THP). Kā liecina nosaukums, Linux, kad vien iespējams, netieši nodrošina lietotāju procesiem milzīgas lapas.

Ja THP nav iespējots, Linux piešķir atmiņu procesiem 4 KB pamatlapas vienībā. Ja THP ir iespējots, Linux mēģina piešķirt milzīgu lapu (2 MB lielumā), nevis pamatlapu, ļaujot izveidot rupju lapu kartēšanu. Šī lielā precizitāte nodrošina efektīvu lapu koplietošanu starp vecākiem un bērniem, izmantojot dakšiņu. Gadījumā, ja šobrīd nav iespējams veikt milzīgu lapu sadali, Linux atgriežas pie bāzes lapu sadalījuma. Linux periodiski skenē procesa adrešu telpas, lai atrastu pamatlapas un apvienotu tās milzīgās lapās.

improve your memory

Ir veikti pētījumi, kuros mēģināts veicināt lielu lapu veiktspēju, vienlaikus maskējot to trūkumus. Ingens [12,13] ierosina asinhroni sagatavot milzīgas lapas no kritiskā ceļa.

Hawkeye [14] piedāvā sīki izstrādātu milzīgu lapu veicināšanas shēmu, kuras pamatā ir atmiņas piekļuves modeļi, lai palielinātu veiktspēju ar minimālu milzīgu lapu reklāmu skaitu. Zhu et al. [15] vispārina lielu lapu izmantošanas procesus un optimizē milzīgu lapu dzīves ciklu. Part et al. [16] pieļauj caurumus lielās lapās, nodrošinot elastību atmiņas pārvaldībā ar lielām lapām.

Tomēr milzīgā lapa ir dubultasmens zobens. Palielināta pārvaldības vienības lieluma dēļ lapu piešķiršana cieš no iekšējas sadrumstalotības. Ja piešķirtais adrešu diapazons ir mazāks par milzīgo lapas izmēru, pārējo lapu nevar izmantot un tā tiek izšķērdēta. Šī tā sauktā atmiņas uzpūšanās var ievērojami samazināt atmiņas izmantošanu sistēmās ar lielām lapām [12–17].

Palielināts lapas izmērs var negatīvi ietekmēt arī programmas veiktspēju. Mūsdienu operētājsistēmas plaši izmanto kopēšanas-uzrakstīšanas shēmu efektīvai atmiņas koplietošanai starp procesiem. Tomēr CoW tiek apstrādāts tikai pamata lapas granularitātē.

Tādējādi, lai apstrādātu CoW uz milzīgas lapas, milzīgā lapa tiek sadalīta pamatlapās un tiek kopēta tikai bojātā lapa. Lielu lapu sadalīšana aizņem daudz laika, kā rezultātā periodiski tiek apstrādātas garas lapas kļūdas. Šajā ziņā dažas lietojumprogrammas, pat tās, kurām ir liela atmiņa, neiesaka izmantot lielas lapas, lai nodrošinātu stabilu veiktspēju un atmiņas izmantošanu [4,18].

Parasti procesa adrešu telpā ir adrešu telpas diapazoni, kur visām diapazona lapām ir vienādas atļaujas un īpašības. Pārvaldībā modernās operētājsistēmas parasti izmanto jēdzienu "virtuālās atmiņas apgabals (VMA)", lai attēlotu šādus adrešu telpas diapazonus. Mēs varam klasificēt lapas procesa adrešu telpā pēc to izcelsmes.

improving brain function

Dažas lapas var ielādēt no sekundārajā krātuvē esošā dublējuma faila, ko dēvē par “failu nodrošinātajām lapām”. Tā kā dažas lapas tiek dinamiski aizpildītas bez jebkādiem backingdatiem. Lapas kaudzes un kaudzes vajadzībām šajā gadījumā ir tā sauktās “anonīmas lapas”.

2.2. Fork un Copy-on-Write

Fork ir viens no POSIX standarta sistēmas izsaukumiem, lai izveidotu jaunu procesu. Kad process izsauc dakšu sistēmas izsaukumu, tiek izveidots jauns process kā izsaukšanas procesa atvasinājums.

Zem pārsega OS izveido bērnu procesu, dublējot visu zvanīšanas procesa adrešu telpu. Tas nozīmē, ka pakārtotajam procesam ir jāsākas ar tiem pašiem datiem, kas jāsāk ar vecāku procesu.

Lai efektīvi apstrādātu adrešu telpas dublēšanos, lielākā daļa moderno OS izmanto kopēšanas-uzrakstīšanas (CoW) paņēmienu. Lai dublētu vecāku adreses telpu, OS nekopē katru lapu. Tā vietā pakārtotā procesa lappušu tabula tiek veidota, kopējot vecākprocesa lappušu tabulu.

Tas efektīvi veido koplietojamo kartēšanu vecāka adreses telpai. Veicot koplietojamo kartēšanu, katras lapas rakstīšanas atļauja tiek atmesta, notīrot atļaujas bitu attiecīgajā PTE.

Pēc kartēšanas kopēšanas gan vecāki, gan bērni var lasīt koplietotās lapas kā savas lapas. Kad kāds no procesiem nodrošina rakstīšanas piekļuvi lapai, MMU rakstīšanas atļaujas trūkuma dēļ aktivizē lapas kļūdu. Lapas kļūdu apstrādātājā OS piešķir jaunu lapu, kopē sākotnējo lapu un ar rakstisku atļauju atjaunina atbilstošo kļūdu izraisošā procesa lapas kartējumu.

Šajā brīdī vecākam un bērnam var būt dažādi dati vienā virtuālajā adresē. Šis kopēšanas-uzrakstīšanas mehānisms tiek plaši izmantots kā pamata atslēgas mehānisms daudzu virtuālās atmiņas funkciju realizēšanai. Konkrēti, neinicializētu kaudzes apgabalu nolasīšana parasti tiek apstrādāta, izmantojot kopīgu kartēšanu uz nulles lapu, kas ir īpaša lapa, kurā ir visas nulles.

Kodola vienas lapas sapludināšana (KSM) ir paņēmiens, kā sistēmā atņemt vienas un tās pašas lapas. OS skenē sistēmas lapas, lai identificētu lapas ar identiskiem datiem. Kad šādas lapas tiek atrastas, OS atgūst visas lapas, izņemot vienu, un atjaunina atbilstošās lapu tabulas, lai kopīgotu atlikušo lapu.

Apstrādē rakstīšanas atļauja tiek atmesta, lai tiktu identificēta un kopēta turpmākā rakstīšanas piekļuve lapai. Pateicoties augstajai kopēšanas un rakstīšanas efektivitātei, procesa izveide kļūst efektīva, un dažas datu ietilpīgas lietojumprogrammas izmanto šo priekšrocību, lai izveidotu datu kopiju. .

Viens no tādiem gadījumiem ir Redis, viens no populārajiem atslēgu vērtību krātuves pakalpojumiem atmiņā [4] [19]. Redisis ir paredzēts, lai galvenokārt saglabātu datus atmiņā, lai nodrošinātu augstu caurlaidspēju un zemu latentumu.

Tomēr dažām lietojumprogrammām ir nepieciešama saglabāto datu noturība, un tas atkārtoti papildina atmiņā esošo dizainu ar dakšiņu. Redis piemēro ienākošos pieprasījumus tikai atmiņā esošajam indeksam un datu struktūrām un periodiski izsauc dakšas sistēmas izsaukumu. Tādējādi tiek izveidots bērnprocess ar dublētiem sākotnējā Redisprocess atmiņas saturiem, un izsaukšanas process (ti, sākotnējais process) turpina apstrādāt ienākošos pieprasījumus.

Bērna process novirza tā izpildi; izmantojot pašreizējo atmiņas saturu kā momentuzņēmumu, tas serializē atmiņā esošās datu struktūras failos, tādējādi nodrošinot atmiņā esošā momentuzņēmuma noturību. Pēc momentuzņēmuma izskalošanas pakārtotais process tiek pārtraukts.

Sākotnējais process var izveidot vēl vienu momentuzņēmumu tādā pašā veidā, un pēc sistēmas avārijas Redis var atgūt, nolasot pēdējo momentuzņēmumu. Lai gan dakša ir nenovērtējams sistēmas izsaukums, tā pieskaitāmās izmaksas ir kritizētas.

supplements to boost memory

Baumann et al. [20] analizēja dakšu un atklāja, ka dakša izraisa veiktspējas pasliktināšanos mūsdienu lietojumos. Piemēram, tā kā mūsdienu lietojumprogrammas kļūst sarežģītākas, operētājsistēmai ir jāapsver aptuveni 25 īpaši gadījumi, lai sāktu dakšas sistēmas izsaukuma apstrādi, lai tā atbilstu POSIX specifikācijai. Viņi apkopoja forksystem izsaukuma problēmas un ieteica funkcijas, kurām modernajam datoram vajadzētu būt fork sistēmas izsaukumam.

Tie nodrošina arī alternatīvus dakšu nomaiņas veidus. Zhao et al. [19] norādīja, ka dakšu ieviešana pašreizējās sistēmās ir neefektīva, jo lietojumprogrammām ar lielu atmiņas apjomu ir nepieciešams ilgs laiks, lai iestatītu lapu tabulu. Kā risinājumu viņi vispārināja kopēšanas-uz-rakstīšanas paņēmienu, lai lappušu tabula tiktu kopēta gan uz rakstiem, gan parastajām lapām.


For more information:1950477648nn@gmail.com

Jums varētu patikt arī