Quote:
Originariamente inviato da Conner
X gugoXX
lo spazio di indirizzamanto virtuale ( i 64 Tb che citavi) e la memoria virtuale suno 2 cose completamente diverse anche se i nomi possono trarre in inganno.
.
|
Non e' cosi' diverso come pensi, se leggi la seguente nota Microsoft
http://support.microsoft.com/kb/555223
Quote:
All processes (e.g. application executables) running under 32 bit Windows gets virtual memory addresses (a Virtual Address Space) going from 0 to 4,294,967,295 (2*32-1 = 4 GB), no matter how much RAM is actually installed on the computer.
In the default Windows OS configuration, 2 GB of this virtual address space are designated for each process’ private use and the other 2 GB are shared between all processes and the operating system.
|
Fin qui per dire quanto mi sembra di aver capito hai recepito anche tu, ovvero che lo spazio di indirizzamento virtuale e' alto, appunto 64TB,
ma se continui...
Quote:
RAM is a limited resource, whereas virtual memory is, for most practical purposes, unlimited. There can be a large number of processes each with its own 2 GB of private virtual address space. When the memory in use by all the existing processes exceeds the amount of RAM available, the operating system will move pages (4 KB pieces) of one or more virtual address spaces to the computer’s hard disk, thus freeing that RAM frame for other uses
|
E da qui io capisco che sono la stessa cosa. Soprattutto c'e' scritto unlimited.
E non ultimo si fa esplicitamente riferimento al file di scambio e alla paginazione su hard disk.
Riusciamo a fare chiarezza?
La domanda e': perche' mai un 386 non dovrebbe riuscire a gestire un file di scambio piu' grande di 4GB?
Una apparente risposta potrebbe essere che il 386 ha solo 32 linee di indirizzo, e quindi non avrebbe modo di chiedere al "mondo esterno" indirizzi che superano i 4GB.
Ma in realta' sta chiedendo al mondo esterno un aiuto apposta. L'unita' di paginazione emettera' un interrupt di page fault (INT 14) quando dovesse essere chiesta una pagina tra le 64TB virtuali non presente in memoria fisica. Come dati dell'interrupt 14, presumo nello stack,verranno messe le informazioni necessarie al sistema operativo per andare a recuperare proprio la pagina (da 4Kb, 4MB o 2MB a seconda della granularita' scelta) dal file di scambio.
Altrimenti, come ce lo spieghiamo questo schema, che fra l'altro contraddice quanto da te detto nel post precedente?
http://www.microsoft.com/windowsxp/6...cts/top10.mspx
Quote:
Address space 32-bit Windows
Virtual memory
4 GB
Paging file
16 terabytes
Paged pool
470 MB
Non-paged pool
256 MB
System cache
1 GB
|