Co to jest fałszywe udostępnianie?

Fałszywe udostępnianie to sytuacja, która może wystąpić w programie komputerowym, gdy dwie aplikacje, które jednocześnie próbują uzyskać dostęp do informacji w tym samym regionie pamięci logicznej, który każdy program lub proces przechowywał we własnej pamięci podręcznej. Dane w pamięci podręcznej każdej aplikacji są kopiowane ze wspólnego źródła, więc modyfikacja jednej pamięci podręcznej powoduje, że druga musi zostać ponownie załadowana ze źródła. Fałszywy aspekt udostępniania powstaje, gdy zmiany wprowadzone w linii pamięci podręcznej według jednego programu nie wpływają na dane, które korzysta drugi program, w którym to przypadku zmuszanie do ponownego załadowania pamięci podręcznej jest marnotrawstwem zasobów systemowych i mogą negatywnie wpływać na wydajność programu. Problem fałszywego udostępniania jest trudny do wykrycia, ponieważ nie jest to bezpośredni wynik żadnego kodu zawartego w aplikacjach, chociaż istnieją skuteczne sposoby zapobiegania fałszywemu udostępnianiu, takich jak przenoszenie danych, które są obecnie buforowane do osobnej linii.

.

Jednym z głównych powodów, dla których może wystąpić fałszywe udostępnianie, jest sposób, w jaki system operacyjny lub sprzęt obsługuje dane i pisanie danych. Gdy informacje z dysku twardego lub innego źródła są czytane lub zapisywane przez program, zwykle są one ładowane do tymczasowej pamięci podręcznej, aby można było uzyskać do niej szybki dostęp. Ilość informacji buforowanych z lokalizacji źródłowej nazywana jest linią pamięci podręcznej i jest logicznym blokiem pamięci, która zwykle może wynosić od 2 bajtów do 256 bajtów długości. W niektórych systemach operacyjnych lub architektur systemowych programy mogą działać jednocześnie, na przykład w równoległym przetwarzaniu. Oznacza to, że możliwe jest, aby dwa osobne programy próbowały uzyskać dostęp do informacji w tej samej linii pamięci podręcznej, więc każdy program będzie miał swoją własną kopię danych źródłowych, potencjalnie powodując zmiany jednej pamięci podręcznej, które nie zostaną odzwierciedlone w drugiej pamięci podręcznej, unieważniając przechowywane dane.

.

Istnieje wiele mechanizmów wykorzystywanych do HANDDE sytuacja, w której dwa programy próbują uzyskać dostęp do tej samej linii pamięci podręcznej, ale najczęściej wynikiem jest to, że jeden program jest zmuszony do ponownego załadowania pamięci podręcznej z zaktualizowanymi informacjami, które zmodyfikował drugi program. Ten rodzaj incydentu jest znany jako fałszywe udostępnianie, gdy dane w wierszu pamięci podręcznej, do których uzyskuje się każdy program, nie są powiązane, więc zmuszanie jednego programu do ponownego załadowania pamięci podręcznej jest marnotrawstwem mocy przetwarzania i innych zasobów. Najczęściej jest to problem dla programu, który nigdy nie zmodyfikuje informacji w pamięci podręcznej, więc nie ma ryzyka zmian nadpisania aplikacji, które dokonał drugi proces.

Istnieją dwa powszechne sposoby, aby zapobiec lub złagodzić skutki fałszywego udostępniania. Pierwszym z nich jest dodanie pustych informacji przed lub po danych do pamięci, zasadniczo zmuszając je do oddzielnej linii pamięci podręcznej, do której nie jest dostępny przez inny program. Drugą metodą jest ograniczenie częstotliwości czytania i pisania do linii pamięci podręcznej, aby została ponownie załadowana jako little, jak to możliwe. Bardziej złożone rozwiązania obejmują zarządzanie na poziomie pamięci podręcznej, a nawet zmiany w zakresie obsługi dzielenia się systemem operacyjnym.

INNE JĘZYKI