Skip to main content

Hva er falsk deling?

Falsk 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 hver applikasjons cache kopieres fra en vanlig kilde, så å endre en cache får den andre til å lastes på nytt fra kilden.Det falske aspektet ved delingen oppstår når endringene som er gjort i cache -linjen av ett program, faktisk ikke påvirker dataene som det andre programmet bruker, i hvilket tilfelle å tvinge cachen til å lastes på nytt er bortkastet systemressurser og kan påvirke negativtytelsen til 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 falsk deling, for eksempel å flytte data som er i en hurtigbufret linje til en egen linje.

En av de viktigste årsakene til at falsk deling kan oppstå, finnes i hvordan et operativsystem eller maskinvare håndterer lesing og skrivedata.Når informasjon fra en harddisk eller annen kilde blir lest eller skrevet av et program, blir den vanligvis lastet inn i en midlertidig cache, slik at den kan nås raskt.Mengden informasjon som er hurtigbufret fra kildeplassen, kalles en hurtigbufferlinje og er en logisk minneblokk som normalt kan være mellom 2 byte og 256 byte i lengde.Under noen operativsystemer eller systemarkitekturer er programmer i stand til å kjøre samtidig, for eksempel i parallell prosessering.Dette betyr at det er mulig for to separate programmer å prøve å få tilgangData det har.

Det er en rekke mekanismer som brukes for å håndtere situasjonen når to programmer prøver å få tilgang til den samme cache -linjen, men resultatet oftest er at ett program blir tvunget til å laste inn hurtigbufferen sin med den oppdaterte informasjonen det andre programmethar endret.Denne typen hendelser er kjent som falsk deling når dataene i cache -linjen som hvert program får tilgang til ikke er relatert, så å tvinge ett program til å laste inn hurtigbufferen på nytt er sløsing med prosessorkraft og andre ressurser.Dette er oftest et problem for et program som aldri vil endre informasjonen i hurtigbufferen, så det er ingen risiko for at applikasjonsoverskrivende endringer den andre prosessen har gjort.

To utbredte måter eksisterer verken for å forhindre eller dempe effekten av falskedeling.Den første er å legge til tom informasjon før eller etter dataene i minnet, og i det vesentlige tvinge den til en egen hurtiglinje som ikke får tilgang til et annet program.Den andre metoden er å begrense frekvensen av lesing og skriving til cache -linjen slik at den lastes på nytt så lite som mulig.Mer komplekse løsninger involverer styring av cache-nivå eller til og med endringer i hvordan et operativsystem håndterer deling.