Co je falešné sdílení?
False Sdílení je situace, která se může vyskytnout v počítačovém programu, když se dvě aplikace, které běží současně, pokoušejí přístup k informacím ve stejné logické oblasti paměti, které každý program nebo proces uložil ve své vlastní mezipaměti. Data v mezipaměti každé aplikace jsou zkopírována ze společného zdroje, takže úprava jedné mezipaměti způsobuje, že druhá musí být znovu načtena ze zdroje. Nepravdivý aspekt sdílení se objevuje, když změny provedené v linii mezipaměti jedním programem ve skutečnosti neovlivňují data, která druhý program používá, v tomto případě nutí k opětovnému načtení mezipaměti je plýtvání systémovým zdrojům a negativně ovlivní výkon programu. Problém falešného sdílení je obtížné odhalit, protože to není přímý výsledek jakéhokoli kódu obsaženého v aplikacích, ačkoli existují účinné způsoby, jak zabránit nesprávnému sdílení, jako jsou přesun, která jsou v aktuálně ukládání do mezipaměti na samostatnou linii.
Jeden z primárních důvodů, proč může dojít k falešnému sdílení, je nalezen v tom, jak operační systém nebo hardware zpracovává data čtení a psaní. Pokud jsou informace z pevného disku nebo jiného zdroje čteny nebo zapsány programem, obvykle se načtou do dočasné mezipaměti, takže je lze rychle přistupovat. Množství informací, které jsou z mezipaměti ze zdrojového umístění, se nazývá mezipaměťová linka a je logickým blokem paměti, které obvykle mohou být mezi 2 bajty a 256 bajtů. V rámci některých operačních systémů nebo systémových architektur jsou programy schopny běžet současně, například v paralelním zpracování. To znamená, že je možné, aby se dva samostatné programy pokusily o přístup k informacím ve stejné linii mezipaměti, takže každý program bude mít vlastní kopii zdrojových dat, což potenciálně způsobí změny v jedné mezipaměti, které se neodrážejí v druhé mezipaměti, což zneplatňuje data, která drží.
K HA existuje řada mechanismůPokus o situaci, kdy se dva programy pokoušejí získat přístup ke stejné linii mezipaměti, ale výsledkem je nejčastěji to, že jeden program je nucen znovu načíst svou mezipaměť pomocí aktualizovaných informací, které druhý program upravil. Tento typ incidentu je známý jako falešné sdílení, když data v mezipaměti, ke kterému každý program přistupuje, nesouvisí, takže nutit jeden program k opětovnému načtení mezipaměti je plýtváním výkonu a další zdroje. To je nejčastěji problém pro program, který nikdy neupravuje informace ve své mezipaměti, takže neexistuje žádné riziko změn přepisu aplikace, kterou druhý proces provedl.
existují dva převládající způsoby, jak zabránit nebo zmírnit účinky falešného sdílení. Prvním z nich je přidat prázdné informace před nebo po datech v paměti, což je v podstatě nutit do samostatné linky mezipaměti, ke kterému není přístupný jiným programem. Druhou metodou je omezit frekvenci čtení a psaní na linku mezipaměti, takže je znovu načten jako littlE co nejvíce. Složitější řešení zahrnují správu úrovně mezipaměti nebo dokonce změny, jak operační systém zpracovává sdílení.