Skip to main content

Hvad er falsk deling?

Falsk deling er en situation, der kan forekomme i et computerprogram, når to applikationer, der kører samtidig, forsøger at få adgang til information i den samme logiske hukommelsesregion, som hvert program eller proces har gemt i sin egen cache.Dataene i hver applikations cache kopieres fra en fælles kilde, så ændring af den ene cache får den anden til at blive genindlæst fra kilden.Det falske aspekt af delingen opstår, når de ændringer, der er foretaget i cache -linjen ved et program, faktisk ikke påvirker de data, som det andet program bruger, i hvilket tilfælde at tvinge cachen til at blive genindlæst, er spild af systemressourcer og kan have negativ indflydelse påProgrammets ydelse.Problemet med falsk deling er svært at opdage, fordi det ikke er et direkte resultat af nogen kode indeholdt i applikationerne, selvom der er effektive måder at forhindre falsk deling på, såsom at flytte data, der er i en aktuelt cache -linje til en separat linje.

En af de primære årsager til, at der kan forekomme falsk deling i, hvordan et operativsystem eller hardware håndterer læsning og skrivedata.Når information fra en harddisk eller anden kilde læses eller skrev af et program, indlæses den normalt i en midlertidig cache, så den kan fås hurtigt adgang.Mængden af information, der er cachelagret fra kildeplaceringen, kaldes en cache -linje og er en logisk hukommelsesblok, der normalt kan være mellem 2 byte og 256 byte i længden.Under nogle operativsystemer eller systemarkitekturer er programmer i stand til at køre på samme tid, såsom parallel behandling.Dette betyder, at det er muligt for to separate programmer at forsøge at få adgang til information i den samme cache -linje, så hvert program vil have sin egen kopi af kildedataene, hvilket potentielt får ændringer i den ene cache til ikke at afspejles i den anden cache, hvilket ugyldiggør denData, det harhar ændret.Denne type hændelse er kendt som falsk deling, når dataene inden for cache -linjen, som hvert program får adgang til, ikke er relateret, så det at tvinge et program til at genindlæse cachen er spild af behandlingskraft og andre ressourcer.Dette er oftest et problem for et program, der aldrig vil ændre oplysningerne i dens cache, så der er ingen risiko for, at applikationen overskriver ændringer, som den anden proces har foretaget.

Der findes to fremherskende måder enten for at forhindre eller afbøde virkningerne af falskedeling.Den første er at tilføje tomme oplysninger før eller efter dataene i hukommelsen, hvilket i det væsentlige tvinger dem til en separat cache -linje, som ikke får adgang til et andet program.Den anden metode er at begrænse hyppigheden af læsning og skrivning til cache -linjen, så den genindlæses så lidt som muligt.Mere komplekse løsninger involverer styring på cache-niveau eller endda ændringer i, hvordan et operativsystem håndterer deling.