Wat is onjuist delen?

Niet -delen is een situatie die kan optreden in een computerprogramma wanneer twee applicaties die tegelijkertijd actief zijn, proberen toegang te krijgen tot informatie in hetzelfde logische geheugengebied dat elk programma of proces in zijn eigen cache heeft opgeslagen. De gegevens in de cache van elke applicatie worden gekopieerd uit een gemeenschappelijke bron, dus het wijzigen van de ene cache zorgt ervoor dat de andere opnieuw moet worden geladen uit de bron. Het valse aspect van het delen ontstaat wanneer de wijzigingen in de cachelijn door één programma niet daadwerkelijk de gegevens hebben beïnvloed die het tweede programma gebruikt, in welk geval het dwingen van de te herladen cache is een verspilling van systeembronnen en kan de prestaties van het programma negatief beïnvloeden. Het probleem van vals delen is moeilijk te detecteren, omdat het geen direct resultaat is van een code in de applicaties, hoewel er effectieve manieren zijn om vals delen te voorkomen, zoals bewegende gegevens die in een momenteel in cache zijn naar een afzonderlijke regel.

Een van de belangrijkste redenen waarom vals delen kan optreden, is te vinden in hoe een besturingssysteem of hardware omgaat met lees- en schrijfgegevens. Wanneer informatie van een harde schijf of een andere bron wordt gelezen of geschreven door een programma, wordt deze meestal in een tijdelijke cache geladen, zodat deze snel toegankelijk is. De hoeveelheid informatie die uit de bronlocatie wordt opgeslagen, wordt een cachelijn genoemd en is een logisch geheugenblok dat normaal tussen 2 bytes en 256 bytes lang kan zijn. Onder sommige besturingssystemen of systeemarchitecturen kunnen programma's tegelijkertijd worden uitgevoerd, zoals in parallelle verwerking. Dit betekent dat het mogelijk is voor twee afzonderlijke programma's om te proberen toegang te krijgen tot informatie in dezelfde cache -lijn, dus elk programma heeft zijn eigen kopie van de brongegevens, waardoor mogelijk wijzigingen in de ene cache worden weerspiegeld die niet worden weerspiegeld in de andere cache, die de gegevens die het bevat ongeldig zijn.

Er zijn een aantal mechanismen gebruikt om HADe situatie waarin twee programma's proberen toegang te krijgen tot dezelfde cachelijn, maar het resultaat is meestal dat het ene programma gedwongen wordt zijn cache opnieuw te laden met de bijgewerkte informatie die het andere programma heeft aangepast. Dit type incident staat bekend als vals delen wanneer de gegevens in de cachelijn die elk programma toegang heeft, niet gerelateerd zijn, dus het dwingen van één programma om de cache te herladen is een verspilling van verwerkingskracht en andere bronnen. Dit is meestal een probleem voor een programma dat de informatie in de cache nooit zal wijzigen, dus er is geen risico dat de wijzigingen in de toepassing die het andere proces heeft aangebracht, heeft aangebracht.

Er bestaan ​​twee veel voorkomende manieren om de effecten van vals delen te voorkomen of te verminderen. De eerste is om blanco informatie voor of na de gegevens in het geheugen toe te voegen, deze in wezen te dwingen in een afzonderlijke cachelijn die niet door een ander programma wordt toegankelijk. De tweede methode is om de frequentie van lezen en schrijven te beperken tot de cachelijn, zodat deze opnieuw wordt geladen als little mogelijk. Meer complexe oplossingen omvatten het beheer van cache-niveau of verandert zelfs in hoe een besturingssysteem omgaat met het delen.

ANDERE TALEN