CCoW: Optimiziranje Copy-on-Write s obzirom na prostornu lokaciju u radnim opterećenjima, dio 4

Apr 03, 2024

3.3. Praćenje pristupa unapred kopiranim stranicama

CCoW bi trebao amortizirati troškove za česte troškove rukovanja greškama stranice. Međutim, kopiranje stranica unaprijed dovodi do drugog problema: praćenje pristupa stranicama nakon kopiranja.

Postoji jaka veza između obrade grešaka i memorije. Za većinu ljudi na greške se često gleda kao na lošu stvar, ali za nas mogu biti prilike da učimo i rastemo. Ispravnim rukovanjem greškama možemo poboljšati svoje pamćenje i pomoći nam da bolje razumijemo i reagiramo na slične situacije.

Jedan od načina da se nosite sa greškama je razmišljanje i analiza. Kada pogriješimo, trebamo uzeti vremena da razmislimo o tome kako je došlo do greške i šta možemo učiniti da spriječimo da se slična greška ponovi. Kroz razmišljanje možemo identificirati korijenske uzroke problema i razviti protumjere za njihovo rješavanje. Ova vrsta analize ne odnosi se samo na greške, ona nam može pomoći da donesemo bolje odluke u drugim životnim situacijama i da poboljšamo svoje vještine i sposobnosti.

Drugi način da se nosite s greškama je da dozvolite sebi da ih prihvatite i krenete dalje. Ne trebamo dozvoliti da nas greške usporavaju ili frustriraju. Umjesto toga, trebali bismo ih gledati kao priliku za rast, dopuštajući sebi da učimo iz svojih grešaka i nastavimo da se usavršavamo. Ako možemo prihvatiti greške i nositi se s njima s pozitivnim stavom, možemo izgraditi snažan način razmišljanja i vjeru u sebe, što je vrlo važno za održavanje dobrog pamćenja.

Konačno, možemo ojačati svoje pamćenje tako što ćemo podijeliti svoje greške. Kada drugima pričamo o greškama koje smo napravili, skloni smo da se tih događaja dublje sjećamo. To je zato što kada kažemo drugima, moramo stvari učiniti jasnijim i prisjetiti se svakog detalja greške. Na ovaj način možemo bolje razumjeti ove greške i spriječiti da se one ponove.

Ukratko, postoji jaka veza između obrade grešaka i memorije. Ispravnim postupanjem s greškama možemo ojačati svoje pamćenje, poboljšati svoje vještine i sposobnosti i postati bolji ljudi. Greške trebamo posmatrati kao priliku, aktivno se suočavati s poteškoćama, učiti i rasti iz njih. Vidi se da moramo poboljšati pamćenje, a cistanche deserticola može značajno poboljšati pamćenje jer je cistanche deserticola tradicionalni kineski ljekoviti materijal koji ima mnogo jedinstvenih učinaka, od kojih je jedno poboljšanje pamćenja. Djelotvornost Cistanche deserticola dolazi od višestrukih aktivnih sastojaka koje sadrži, uključujući taninsku kiselinu, polisaharide, flavonoidne glikozide, itd. Ovi sastojci mogu promovirati zdravlje mozga na različite načine.

10 ways to improve memory

Kliknite na Znaj kratkoročno pamćenje kako poboljšati

U originalnoj shemi kopiranja-upisivanja, prvo upisivanje na svaku stranicu hvata rukovalac greške stranice.

Kopira se samo neispravna stranica, a sistem može precizno pratiti pristup svakoj stranici kroz obradu greške stranice. S druge strane, kada sistem kopira cijeli region, sve stranice u regionu se mapiraju u proces uz pismenu dozvolu.

Dakle, naknadna upisivanja na te kopirane stranice mogu se odvijati bez pokretanja mehanizma za rukovanje greškama stranice, tako da sistem ne može pratiti pristupe kopiranim stranicama. Ovo može biti problematično kada se proces više puta račva. Pretpostavimo da oblast ima visoku prostornu lokaciju i da je epoha definisana kao period između dva račva.

Visoki lokalitet se može uhvatiti prebrojavanjem grešaka stranica koje su se dogodile u regiji. Zatim pretpostavimo da proces kreira novi proces pomoću viljuške. Kada se nova epoha započne sa forkom, prvi pristup pisanju jednoj od stranica u regionu će pokrenuti CCoW, kopirajući sve stranice u regionu. Sada proces ima sve stranice sa dozvolom za pisanje, i ne generišu se dalje greške stranice iz regiona do kraja epohe.

Kada se ponovo započne nova epoha, smatra se da region ima nisku pokrivenost u epohi, s obzirom da region ima samo jednu stranicu za kopiranje na upis. Dakle, svako upisivanje u regiju se obrađuje kroz originalni mehanizam kopiranja na upisivanje po stranici, čime se ugrožava mogućnost optimizacije performansi čak i ako regija ima visoku lokaciju.

Imajte na umu da se smatra da region ponovo ima visoku lokaciju u sledećoj epohi, a proces se ponavlja da bi se situacija promenila. Da bismo rešili ovaj problem, potreban nam je mehanizam za praćenje pristupa stranici nakon kopiranja.

Ova studija predlaže korištenje prljavog bita u unosu u tablicu stranica (PTE). Općenito, moderne arhitekture održavaju različite informacije u PTE-u za svaku stranicu, a prljavi bit je jedno od polja koje podržava većina arhitektura.

Kada MMU obradi pristup memoriji za pisanje, automatski postavlja prljavi bit odgovarajuće stranice. Ovo obrnuto implicira da kada se postavi prljavi bit za stranicu, stranica je ažurirana pristupima za pisanje.

Na osnovu ove ideje modificirali smo mehanizam za izračunavanje pokrivenosti. U početku se svi regioni smatraju normalnim regionima. Tokom račvanja, pokrivenost za normalne regione se izračunava sa brojem kopiranja na upisivanje pomoću jednačine (1).

ways to improve memory

Prilikom rukovanja greškom stranice za regiju visoke lokacije, sve stranice u regiji se kopiraju sa obrisanim njihovim prljavim bitom. Nadalje, regija je označena kao prethodno kopirana regija. Tokom račvanja, pokrivenost kopiranog regiona se izračunava sa brojem prljavih stranica u toj oblasti na sledeći način:

improve memory

Izračunata pokrivenost za svaku regiju prenosi se kroz viljušku i koristi se kao metrika za prostorni lokalitet regije. Kada dođe do greške stranice upisivanja u regiji, sistem provjerava pokrivenost regije i može unaprijed kopirati stranice za regije visoke lokacije.

Slika 2 ilustruje situaciju u kojoj se pokrivenost izračunava nakon prekopiranja. Pretpostavimo da su oba regiona kopirana (osenčena crvenom bojom), a stranice 0, 2, 3, 4 i 11 imaju postavljene prljave bitove.

Da bi izračunao pokrivenost tokom obrade viljuške, sistem koristi prljavi bit umjesto brojanja kopiranja na upisivanje pošto su regije kopirane u trenutnoj epohi. Dakle, regija 0 ima pokrivenost od 66%.
Dok je pokrivenost regiona 1 15%. Za rješavanje greške stranice za stranicu 3, regija 0 se ponovo kopira, dok se greška stranice za stranicu 9 rješava originalnim mehanizmom. Na ovaj način možemo spriječiti da regije s visokom lokacijom izmaknu iz fokusa.

boost memory

3.4. Snimanje lokaliteta

Kako rukovalac greškama stranice leži na putanji koja je kritična za performanse u OS-u, trebali bismo minimizirati troškove implementacije predložene šeme.
U osnovi, CCoW zahtijeva mehanizam za izračunavanje pokrivenosti, a najjednostavniji način implementacije ove funkcije je praćenje stranica koje pokreću greške stranice pomoću bitmapa kao što smo opisali u odjeljku 3.2.

Prilikom rukovanja greškom stranice, sistem postavlja bit koji odgovara neispravnoj stranici. Tokom račvanja, sistem skenira bitmapu da izbroji broj neispravnih stranica za svaki region i izračunava pokrivenost. Bitmapa se resetuje nakon proračuna.

Ovaj pristup je jednostavan, ali nameće velika prostorna i vremenska ograničenja. Sistem bi trebao održavati jednobitni unos bitmape za svaku stranicu od 4 KB i pregledati cijelu bitmapu tokom račvanja. Uzimajući u obzir ogroman memorijski otisak aplikacija koje intenzivno koriste memoriju, ove operacije će izazvati velike troškove tokom račvanja, nadoknađujući prednost performansi CCoW. Optimiziramo ovu implementaciju iskorištavanjem karakteristika greške stranice.

Ako se greška stranice dogodi sa stranice, stranica ne uzrokuje dodatne greške stranice sve dok proces ne kreira novi proces. Dakle, svaka stranica može pokrenuti grešku na jednoj stranici najviše, a za regiju sa n stranica, greške stranice mogu se dogoditi samo do n puta. Ovo implicira da je brojanje broja grešaka stranica po regionu dovoljno za izračunavanje pokrivenosti, umjesto da se održava bitmap za pojedinačne stranice.

Dakle, bitmap zamjenjujemo brojačima grešaka. Svaki region je povezan sa parom brojača na sledeći način: jedan za brojanje grešaka stranice u poslednjoj epohi, a drugi za brojanje grešaka stranica u tekućoj epohi.

Prvi se koristi za određivanje prostornog lokaliteta regiona, dok se drugi koristi za praćenje prostornog lokaliteta tekuće epohe. Tokom račvanja, trenutni brojač grešaka se kopira na prethodni brojač grešaka.

Ako je regija kopirana u ovoj epohi, broj prljavih stranica u regiji se umjesto toga upisuje u prethodni brojač grešaka. Brojači se popunjavaju prilikom kreiranja novog područja virtualne memorije (VMA) i vraćaju se kada se njihov odgovarajući VMA skupi ili ne mapira. Ova optimizacija smanjuje opterećenje prostora za CCoW sa jednog bita po stranici na nekoliko bajtova po regiji.

memory enhancement


For more information:1950477648nn@gmail.com

Moglo bi vam se i svidjeti