Hva er bufrede data? Vil det føre til problemer hvis vi tømmer hurtigbufrede data?

Beste svaret

Takk for (flere) A2Aer.

Bufrede data er noen data datamaskinen / telefonen / hva som en gang jobbet veldig hardt for (lastet over et potensielt tregt nettverk, eller måtte bruke mye CPU på, eller til og med måtte lese fra disken). Det lagres et sted raskere enn det som ble brukt til å få / lage det først. Så hvis en fil på disken er hurtigbufret, er den ikke hurtigbufret på disken din, den er hurtigbufret i minnet ditt. Hvis en fil fra nettverket er hurtigbufret, kan den lagres i minnet eller på disken (eller begge deler).

Datamaskiner har mange forskjellige hurtigbuffere. Mye . Selv ting du kanskje tenker på som «rask» som RAM på datamaskinen din, er faktisk treg nok til at CPU-en din har en cache for RAM-verdier. Programmer har ofte flere cacher for forskjellige ting. Operativsystemet cacher diskfiler i RAM, og gir ofte ting som cache websider i RAM og / eller disk.

Alle bufrede data “skal” være noe som kan opprettes eller hentes igjen. I noen tilfeller kan det faktisk ikke, for eksempel hvis du har et bilde fra en webside bufret og av en eller annen grunn er hurtigbufferen tømt når du ikke har noe nettverk, kan du ikke få det bildet tilbake før nettverket kommer tilbake … eller nettsiden kan ha endret seg, i så fall kan verdien aldri komme tilbake.

Noen cacher har innebygd metoder for å forhindre at de blir foreldede (som om et nettsted endrer et bilde hver dag, ikke ønsker å se på bildet fra de siste månedene bare fordi det er «raskere»). Dette er faktisk et av de vanskeligste problemene innen informatikk (cache-ugyldighet). Det finnes mange politikker. Noen vanlige er «kast gamle ting», «spør nettstedet / filsystemet / hva som helst om tingen har endret seg», og en personlig favoritt «hvem bryr seg».

Så «i teorien» kaster borte kan ikke en cache forårsake et problem … og kan heller ikke fikse en. Bortsett fra i den virkelige verden, kan policyen for ugyldiggjøring av hurtigbuffer være feil, og gamle data er hurtigbufrede og nå foreldede. Hvis du tømmer hurtigbufferen, kan du fikse det (woot!). I den virkelige verden kan dataene også være «nå foreldede», men kan for øyeblikket ikke hentes tilbake, så hvis du tømmer hurtigbufferen, blir det et problem (boo!).

Tømning av hurtigbuffer vil også føre til at ting saktere mens ting som en gang var i hurtigbufferen og du trenger igjen blir beregnet / hentet / hva som helst igjen.

Svar

På datamaskinen din 🙂

hurtigbufferen er et stykke maskinvare også kjent som SRAM (statisk ram). Den har ekstremt god ytelse. Dette koster imidlertid. Bokstavelig. En kostnad som i mange $$$ fordi SRAM også er ekstremt dyrt. Hvis datamaskinene våre var sammensatt av helt SRAM, ville de være utrolig dyre. Som så mye at ingen ville ha råd til dem. Så vi kan se hvorfor vi ønsker å bruke SRAM (det fungerer betydelig bedre enn DRAM eller diskplass), men hvis det er så dyrt, hvorfor bruker vi det? Det er upraktisk dyrt, ikke sant?

Ja, det er det. Noen smarte ingeniører tenkte imidlertid på et kompromiss. Hva om flertallet av dataarkitekturen fremdeles var sammensatt av DRAM og diskplass (for å gjøre det rimelig), men for å fremdeles opprettholde ytelse som holder forbrukerne fornøyde, hva om alt vi trengte var en liten liten del av SRAM for å øke hastigheten på datamaskinytelse MYE. Stikkord: «liten flis»

Så hvor brukes «LRU-hurtigbufferen»? Vel, det er egentlig ikke en ting i seg selv som heter «LRU-cache». Moderne cacher, som du kan tenke på som våre små skiver av SRAM, har ikke uendelig plass til å holde data, og hvis du er en typisk forbruker som surfer på nettet, hele tiden går fra nettside til webside, plattform til plattform, dataene omsetningen på datamaskinen din kommer til å bli veldig høy.

Så hvordan kan vi bruke denne «bittesmå flisen» av SRAM når dataomsetningen vår har en tendens til å være så høy? Det vi gjør er at vi bestemmer hvilke datadeler vi mest sannsynlig vil bruke igjen, og vi prøver vårt beste for å holde disse delene innenfor vår lille bit av SRAM (cachen vår), så neste gang vi trenger tilgang til en felles data datamaskinen din har tilgang til dataene veldig raskt fordi den blir holdt i den delen av SRAM. Og hvordan bestemmer vi nøyaktig hva vi skal beholde og hva vi ikke skal beholde? Det er nettopp der konseptet med «LRU cache» kommer inn. Det er mange forskjellige cache-layouter som brukes av forskjellige grunner (fullt assosiative, sett assosiative, direkte kartlagt, osv.). De har hver sine fordeler / ulemper, men de fleste vanlig måte at operativsystemet ditt bestemmer hvilke dataopplysninger du skal ha i SRAM og hva du skal kaste, er å se på dataene som nylig har blitt brukt. Fornuftig, ikke sant? Hvis du bare klikket på noe, og du klikket på det dagen før det, og dagen før det, og dagen før det, osv … Det er sannsynligvis fornuftig å beholde den dataen i SRAM, så neste gang du klikker på den, BOOM, trekker den opp i et hjerteslag. Men hva med et nettsted du klikket på for tre måneder siden og ikke har gjort det siden?Vel, når dataomsetningen fortsetter å vokse, vil operativsystemet ditt på et bestemt tidspunkt måtte bestemme hva det trenger for å sparke ut fra SRAM, og det vil si at dette nettstedet ikke har blitt klikket på på tre måneder? Dette er den dataen vi nylig brukte i cachen vår, så la oss sparke den ut.

Cachen er en maskinvare kjent som SRAM som har veldig god ytelse. LRU-utkastelsesalgoritmen er hvordan operativsystemet ditt bestemmer hvilke datadeler som skal oppbevares og kastes ut fra den dyrebare SRAM.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *