Changes

Jump to navigation Jump to search
no edit summary
Line 17: Line 17:  
:: I would say that it isn't true in _any_ situation.
 
:: I would say that it isn't true in _any_ situation.
   −
:: * On 32-bit Windows, it isn't true as far as I have ever been aware. `increaseuserva` specifies that you want processes to have 3 GiB of virtual address space available instead of the default 2 GiB. The default was specified as many much older programs assumed that logical addresses wouldn't be larger than that and would fail.
+
:: *On 32-bit Windows, it isn't true as far as I have ever been aware. <code>increaseuserva</code> specifies that you want processes to have 3 GiB of virtual address space available instead of the default 2 GiB. The default was specified as many much older programs assumed that logical addresses wouldn't be larger than that and would fail.
:: * Process logical address space _is not shared between processes_. _Physical_ memory is, but that is mapped to processes (into their logical address space). Even 32-bit NT can address more than 4 GiB of physical RAM via PAE. If you have two 32-bit processes, they do not share a 2 GiB logical address space. Or a 3 GiB logical address space. They have their own logical address spaces. They compete for _physical_ memory, but that's true of any system.
+
:: *Process logical address space _is not shared between processes_. ''Physical'' memory is, but that is mapped to processes (into their logical address space). Even 32-bit NT can address more than 4 GiB of physical RAM via PAE. If you have two 32-bit processes, they do not share a 2 GiB logical address space. Or a 3 GiB logical address space. They have their own logical address spaces. They compete for _physical_ memory, but that's true of any system.
:: * On 64-bit Windows, obviously the same applies. Except that if a process is flagged as `LARGEADDRESSAWARE`, it gets access to the full 4 GiB address space instead of 3, as the kernel does not need to be mapped within the 4 GiB address space (during an interrupt, the processor switches back to long mode and the kernel can access its own memory which is mapped outside of what the process is aware of).
+
:: *On 64-bit Windows, obviously the same applies. Except that if a process is flagged as <code>LARGEADDRESSAWARE</code>, it gets access to the full 4 GiB address space instead of 3, as the kernel does not need to be mapped within the 4 GiB address space (during an interrupt, the processor switches back to long mode and the kernel can access its own memory which is mapped outside of what the process is aware of).
    
:: I mean, unless we're talking about Windows 9x. Those could and would operate weirdly... but Windows NT has _never_ operated this way.
 
:: I mean, unless we're talking about Windows 9x. Those could and would operate weirdly... but Windows NT has _never_ operated this way.
8

edits

Navigation menu