ramdisk powyżej 4GB na Win7 32 bit

0

Mam 8GB i Windows 7 32 bity, który używa tylko niecałe 3GB.

Podobno można użyć ten ram powyżej 4GB ale poprzez ramdrive.

Ja to zrobić?

Win 64bit też znam i mam nawet zainstalowany na drugiej patrycji,
więc proszę nie udzielać rad typu: zainstaluj sobie 64bitowy winds, itd.

Sankuju verysmycz.

1

Podobno można użyć ten ram powyżej 4GB ale poprzez ramdrive.

Użyć programu do ramdrive'a, który to obsługuje?
Nie znam żadnego takiego z nazwy.

Z programistycznego punktu widzenia do pamięci powyżej dostępnej przestrzeni adresowej można się dostać poprzez funkcję CreateFileMapping() podając INVALID_HANDLE_VALUE jako plik. Potem za pomocą MapViewOfFile() tworzymy sobie okienko w przestrzeni adresowej, które wskazuje na pamięć powyżej 4GB. (okienko musi być w miarę małe, góra kilkaset mega; trzeba je sobie ręcznie przesuwać po obszarze „górnej” pamięci).

Tak więc da się, i można napisać dowolny program (nie tylko ramdysk...) który będzie z tego mechanizmu korzystał.

PS. jest możliwość zhackowania 32-bitowego kernela Windows 7 (ntkrnlpa.exe) by widział powyżej 4 GB RAM. pojedynczy proces 32-bitowy będzie oczywiście nadal ograniczony, ale łączna ilość pamięci zaalokowanej przez różne procesy może przekroczyć 4 GB. instrukcję kiedyś znalazłem na jakiejś niemieckiej stronie, ale nie chce mi się tego teraz szukać.
zarejestruj się na forum to dostaniesz ode mnie info na priv.

0

Możesz użyć programu SunriseSeven. On ma opcję: "Odblokuj obsługę do 128GB RAM dla x86". Na mojej poprzedniej instalacji x86 działało. Po SP1 nie ma 100% gwarancji, że zadziała.

0

Słowa-klucze to PAE i AWE.

0
Azarien napisał(a):

Podobno można użyć ten ram powyżej 4GB ale poprzez ramdrive.

Użyć programu do ramdrive'a, który to obsługuje?
Nie znam żadnego takiego z nazwy.

O taki programik właśnie mi chodziło, i darmowy oczywiście.

Azarien napisał(a):

Z programistycznego punktu widzenia do pamięci powyżej dostępnej przestrzeni adresowej można się dostać poprzez funkcję CreateFileMapping() podając INVALID_HANDLE_VALUE jako plik. Potem za pomocą MapViewOfFile() tworzymy sobie okienko w przestrzeni adresowej, które wskazuje na pamięć powyżej 4GB. (okienko musi być w miarę małe, góra kilkaset mega; trzeba je sobie ręcznie przesuwać po obszarze „górnej” pamięci).

Chyba jakieś głupoty opowiadasz.
Adresy do mapowania są raczej 32-bitowe w sys. 32bit.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537%28v=vs.85%29.aspx

Podając tam INVALID_HANDLE_VALUE tworzysz coś na swapie, który siedzi na dysku, zatem jeśli ten swap ustawimy na tym ramdrive wówczas faktycznie będzie to ram.

0

Podając tam INVALID_HANDLE_VALUE tworzysz coś na swapie, który siedzi na dysku, zatem jeśli ten swap ustawimy na tym ramdrive wówczas faktycznie będzie to ram.

Nieprawda. Masz dwa DWORD-y na rozmiar, czyli możesz zaalokować 64-bitowy rozmiar. Jeśli masz np. 8 giga RAM-u i podasz do funkcji 5 giga to ci to przejdzie. Nawet przy wyłączonym swapie.

Ten ramdrive korzysta z tego samego mechanizmu.

0

ramdrive używa raczej PAE, czyli 36 bitów chyba nie 32.

A ten rozmiar 64 bitowy to może dla plików ma sens, ale nie dla ramu.

0

Przestań bzdury opowiadać.
Z handle = -1 to mapuje obszar na pagefile a nie ram, a zwłaszcza powyżej 4GB.

0

Coś takiego znalazłem:

http://memory.dataram.com/products-and-services/software/ramdisk?

tam jest do 8GB free, więc wystarczyłoby.

Może ktoś to sprawdzi, np. w biurze, bo szkoda zaśmiecać swój własny komputer, jeśli to jakaś podpucha - reklamowy szajs, itp. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1