Re: Out Of Memory with Memory_limit à -1 [message #169868 is a reply to message #169865] |
Wed, 29 September 2010 00:25 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 9/28/2010 7:51 PM, rf wrote:
> "Jerry Stuckle"<jstucklex(at)attglobal(dot)net> wrote in message
> news:i7sjvm$jo5$2(at)news(dot)eternal-september(dot)org...
>> On 9/28/2010 5:35 AM, rf wrote:
>>> "Bernd Schulz"<ask_me_for_email(at)invalid(dot)invalid> wrote in message
>>> news:4ca1af53$0$6773$9b4e6d93(at)newsspool3(dot)arcor-online(dot)net...
>>>> Am 28.09.2010 01:09, schrieb rf:
>>>> >>>
>>>> >>> Do you have a hint?
>>>> >> Maybe PHP can only access 2GB, cause it is 32Bit.
>>>> >
>>>> > A 32 bit address space is 4MB.
>>>> >
>>>> An when it is used signed, then 2GB.
>>>
>>> Addresses are not signed. 32 bits define a 4MB address space.
>>>
>>
>> Not necessarily. It depends on how the value is set up. In Windows, it
>> is a signed value and applications are limited to 2GB.
>
> The 32 bit adress is *not* a signed value. It is unsigned and ranges from
> 0x00000000 to 0xffffffff.
>
> Each process runs in a virtual address space of 4GB.
>
> By default this 4GB is divided into two partitions, ont for use by the
> process and the other reserved for use by the system.
>
> By default the partitions are 2GB each. The lower 2GB (addresses 0x00000000
> to 0x7fffffff) used by the process and the higher (addresses 0x80000000 to
> 0xffffffff) used by the system. Note the use of that high bit in the address
> there, the one that, in a signed number, is the sign bit. In an address it
> is *not* a sign bit.
>
> However there is a facility called 4-Gigabyte Tuning. If this is enabled
> then 3GB is available to the application and 1GB to the system.
>
> http://msdn.microsoft.com/en-us/library/aa366912%28VS.85%29.aspx
>
> Note that this is *not* a wikipedia page. It is a microsoft page. I would
> think *they* know how their operating systems work.
>
Yes, and it takes more than just setting a bit in the application to
activate it. But you don't understand how it all works, do you?
>>> However I was thinking about something else when I made my original post.
>>> Of
>>> the 4MB available in the virtual address space in which the application
>>> runs
>>> 2GB is allocated to the user space and 2GB is allocated to the kernel,
>>> shared between all address spaces.
>
>> Not true. Kernel runs in a different address space. The modules required
>> to link between the kernel and the application come out of the application
>> space.
>
> The system (kernel and other things) do not run in a different address
> space. The system is mapped into the upper half of every processes address
> space. So we have the application in the lower 2GB of the address space and
> the system in the upper 2GB.
>
> If this were not so then how would the system be able to do things such as
> fill the applications buffers. If the system were in a different address
> space it, by definition, would not have access to anything in the
> applications address space.
>
> This time, Jerry, it is you who is wrong.
>
>
I really am sorry you are so unable to understand simple technical
language, even if it is from Microsoft. That is the page I was
referencing when I made my comments.
And you obviously have no idea how an OS works internally. The kernel
is quite capable of mapping ANY virtual address in ANY process to its
own memory. That, in fact, is required for it to work.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|