Hva er falsk deling?

Falske deling er en situasjon som kan oppstå i et dataprogram når to applikasjoner som kjører samtidig prøver å få tilgang til informasjon i det samme logiske minneområdet som hvert program eller prosess har lagret i sin egen cache. Dataene i hurtigbufferen til hvert program blir kopiert fra en vanlig kilde, så å endre den ene cachen fører til at den andre må lastes inn på nytt fra kilden. Det falske aspektet ved delingen oppstår når endringene som er gjort på hurtigbufferlinjen av et program, faktisk ikke påvirker dataene som det andre programmet bruker, i hvilket tilfelle å tvinge hurtigbufferen til å bli lastet igjen er bortkastet systemressurser og kan negativt påvirke resultatene av programmet. Problemet med falsk deling er vanskelig å oppdage, fordi det ikke er et direkte resultat av noen kode som finnes i applikasjonene, selv om det er effektive måter å forhindre falske delinger, for eksempel å flytte data som ligger i en hurtigbufret linje til en egen linje .

En av de viktigste årsakene til at falske delinger kan oppstå finnes i hvordan et operativsystem eller maskinvare håndterer lese- og skrivedata. Når informasjon fra en harddisk eller annen kilde leses eller skrives av et program, lastes den vanligvis inn i en midlertidig hurtigbuffer slik at den raskt kan nås. Mengden informasjon som er lagret fra kildeposisjonen kalles en hurtigbufferlinje og er en logisk hukommelsesblokk som normalt kan være mellom 2 byte og 256 byte i lengde. Under noen operativsystemer eller systemarkitekturer kan programmer kjøres på samme tid, for eksempel ved parallell behandling. Dette betyr at det er mulig for to separate programmer å forsøke å få tilgang til informasjon i den samme cache-linjen, slik at hvert program har sin egen kopi av kildedataene, noe som potensielt kan føre til at endringer i den ene cachen ikke reflekteres i den andre cachen, og ugyldiggjør data den har.

Det er en rekke mekanismer som brukes for å håndtere situasjonen når to programmer prøver å få tilgang til den samme hurtigbufferlinjen, men resultatet er ofte at ett program blir tvunget til å laste inn hurtigbufferen på nytt med den oppdaterte informasjonen det andre programmet har endret. Denne typen hendelser er kjent som falsk deling når dataene i hurtigbufferlinjen som hvert program får tilgang til ikke er relatert, så å tvinge ett program til å laste inn hurtigbufferen igjen er bortkastet prosessorkraft og andre ressurser. Dette er ofte et problem for et program som aldri vil endre informasjonen i cachen, så det er ingen risiko for at programmets overskrivingsendringer den andre prosessen har gjort.

To utbredte måter finnes enten for å forhindre eller dempe virkningene av falsk deling. Den første er å legge til blank informasjon før eller etter dataene i minnet, i det vesentlige å tvinge den til en egen cache-linje som ikke er tilgang til av et annet program. Den andre metoden er å begrense frekvensen av lesing og skriving til hurtigbufferlinjen slik at den blir lagt inn så lite som mulig. Mer komplekse løsninger involverer styring på cache-nivå eller endringer i hvordan et operativsystem håndterer deling.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?