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, ikke påvirker de data, 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, såsom bevægelige data, der er i en aktuelt cache -linje til en separat linje.
En af de primære årsager til, at der findes falsk deling, findes i, hvordan et operativsystem eller hardware håndterer læsning og skrivningsdata. 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 de data, den har.
Der er en række mekanismer, der er anvendt til HANdle situationen, hvor to programmer forsøger at få adgang til den samme cache -linje, men resultatet er oftest, at et program tvinges til at genindlæse sin cache med de opdaterede oplysninger, som det andet program har æ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 falsk deling. 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 som Little som muligt. Mere komplekse løsninger involverer styring på cache-niveau eller endda ændringer i, hvordan et operativsystem håndterer deling.