Wirtualna pamięć komputera łączy aktywną pamięć o dostępie swobodnym, jak również nieaktywną pamięć DASD, tworząc szeroki zakres kolejnych adresów. Wraz z pojawieniem się pierwszych komputerów, ta funkcja była obecna jako standard, ciągle się zmieniała i modernizowała.
Podstawowa koncepcja
W programowaniu pamięć wirtualna jest metoda kontroli urządzenie pamięciowe przeznaczone dla wielozadaniowych jąder. Jest to technologia wirtualizacji pamięci masowej dostępna dla określonych procesów lub zadań. Przede wszystkim odnosi się to do ciągłej przestrzeni adresowej, która jest unikalna dla każdego działającego procesu. System operacyjny zarządza wirtualną przestrzenią adresową, a także przypisuje pamięć rzeczywistą do pamięci wirtualnej. Procesor automatycznie tłumaczy adresy wirtualne na adresy fizyczne, wykorzystując specjalne zarządzanie pamięcią sprzętową, które jest często określane jako jednostka sterująca. Podczas gdy adresy wirtualne szukają prawdziwych lokalizacji pamięci, proces ten przebiega w sposób ciągły. Kiedy tłumaczenie takie nie powiedzie się, system operacyjny przejmuje i przekazuje niezbędne strony pamięci z pamięcią zapasową do pamięci głównej, przywracając przerwany proces. Gdy skończy się pamięć wirtualna, komputer zacznie działać niepoprawnie.
Upraszcza to organizację aplikacji w przypadku, gdy muszą używać więcej kodu i danych, niż mogą zmieścić się w pamięci. Ponadto podczas wykonywania procesów, gdy podano oddzielne przestrzenie adresowe, technika ta chroni aplikacje przez izolowanie pamięci od innych procesów.
Znaczenie
Pamięć wirtualna ułatwiła programowanie aplikacji ukrywając fragmentację pamięci fizycznej. Osiąga się to poprzez delegowanie do jądra hierarchii zarządzania pamięcią (eliminując konieczność obsługi nakładek przez program). Ponadto, gdy każdy proces działa we własnej dedykowanej przestrzeni adresowej, eliminując konieczność przenoszenia kodu programu.
Używanie
Pamięć wirtualna jest integralną częścią nowoczesnej architektury komputerowej, jej implementacja wymaga wsparcia sprzętowego, zwykle reprezentowanego jako jednostka zarządzania pamięcią wbudowana w procesor. W niektórych przypadkach emulatory i maszyny wirtualne mogą korzystać ze wsparcia sprzętowego w celu zwiększenia wydajności realizacji pamięci wirtualnej. Większość nowoczesnych systemów operacyjnych obsługujących pamięć wirtualną uruchamia również każdy proces we własnej dedykowanej przestrzeni adresowej. Wbudowane i inne specjalne typy systemów komputerowych, które wymagają bardzo szybkiej i stałej odpowiedzi, nie mogą wykorzystywać pamięci wirtualnej poprzez redukowanie determinizmu. Czasami system pamięci wirtualnej może wyzwalać nieprzewidywalne pułapki, które mogą prowadzić do niepożądanych fluktuacji podczas operacji we / wy. Dzieje się tak dlatego, że czasami używany jest sprzęt, który nie jest przeznaczony do takiego obciążenia.