memory ???

  • Thread starter Thread starter axeman_ukl
  • Start date Start date
A

axeman_ukl

New member
i know that xp is a 32 bit program and can use up to 2 gig of memory ,now for the bit that i dont get say if you had 4gig of memory and used cubase 4 with a dual core cpu would you need xp64 or vista 64 to use the other 2 gig or does each core use 2 gig ?

now if you need a 64 bit operating system to use more than 2 gig of memory would cubase use 4 gig or is that a 32 bit program along with my bfd program
that even if you had 4gig of memory the 64bit operating system would not be able to use.
and be a complete waste of money untill all the programs go 64bit.

if this sounds a bit blah then i should not post after going to the pub !:)
 
Someone correct me if I'm wrong on some of this...

To use 4GB of RAM, your operating system needs to be 64-bit.

A 32-bit program can still use 4GB of RAM if running on a 64-bit operating system. But it depends on how the software was made.

I can write a program that handles 64-bit data on a 32-bit OS like XP, but actual RAM access is limited to 2GB on any 32-bit operating system. But a 32-bit operating system is still capable of working with 64-bit data (like large numbers) if the program was made accordingly. But to use 4GB of RAM, I think is dependent on the OS.

So, I guess my short answer is: To use 4GB of memory, get a 64-bit OS. Cubase must also be written to handle large (64-bit) numbers to use all available 4GB, and I would guess it is.
 
Actually, technically a 32-bit OS can address UP TO 4 GB of memory. In XP, 2 GB is in shared kernel space, and 2 GB is dedicated to applications. However, I don't have the means to test this. Just what I read from a Google search. I've seen people using 4 gigs in Linux, just don't know many XP users who would NEED 4 gigs of memory.

Edit:
It looks like in XP, you must have the PAE extension enabled to use 4 GB.

Edit2:
Also, if you use the /3GB switch in your boot.ini, Windows will allocate 3 GB to applications and 1 GB to your kernel.
 
I can write a program that handles 64-bit data on a 32-bit OS like XP, but actual RAM access is limited to 2GB on any 32-bit operating system. But a 32-bit operating system is still capable of working with 64-bit data (like large numbers) if the program was made accordingly. But to use 4GB of RAM, I think is dependent on the OS.

Not really true. Photoshop can use way more than 2 gigs of RAM in Mac OS X and that's a 32-bit app running on a 32-bit OS.

As timthetortoise noted, the 2 gig limit is only true in Windows because it by default does a "2/2 split" with two gigs of address space for user space and gigs of address space for the kernel. The purpose of this is for faster data transfer between user space and the kernel, but the net effect is that you have a more limited address space in both places. User-space apps are limited to 2 gigs, and graphics cards start biting you in the ass with modern hardware because you have to be able to map their entire aperture into the kernel and... oops, two one gig graphics cards and you have to drop the 2/2 mapping or you won't boot. :D

I -think- Linux typically uses a 3/1 mapping, which means that the kernel has a gig and user space gets three. This is more workable in Linux because the graphics card aperture gets mapped into the X11 binary itself under normal circumstances, and the kernel drivers only map a fraction of the graphics RAM for a text console.

Mac OS X uses a 4/4 mapping, which means that user space and the kernel both have a full 4 GB address space that does not overlap. This means you can't just treat kernel and user-space addresses as being equivalent and you have to explicitly map data when going back and forth. There's a slight performance hit, but the functionality advantages are significant if you have the RAM to take advantage of them.

As a caveat, though, the memory available to applications is reduced by shared library code, the stack, etc. (We normally don't consider the stack as application memory because it can't be freely allocated and deallocated and is context sensitive.) Thus, in Mac OS X, the space typically available to an application is more on the order of 3 gigs, with only about 2.5 contiguous, if memory serves. Of course, this also means that in Windows, it is far less than two gigs. Also, don't forget that your application's actual executable code comes out of that.

Even better, though, Photoshop does its own virtual memory scheme in which it memory maps chunks of large files on disk into RAM. Although it can only see a 2.5-ish gig combined window into those files, the operating system is still keeping track of recently-accessed blocks on disk in its buffer cache. The net effect is that the total portion of those files in RAM can be arbitrarily large---in theory, up to the limits of memory.

While it is slightly slower to map those chunks of RAM into the application's address space than it would be if you actually had 16 GB of usable application memory, the application can still access that extra RAM in your computer at a speed orders of magnitude faster than actually paging from disk. Thus, in effect, Photoshop is able to use way more than even 4 GB of memory even as a 32-bit application on a 32-bit OS. :D

To some degree, even audio apps take advantage of this when the OS buffers file reads from raw audio files, but not nearly to the degree that apps like Photoshop do....
 
does this mean that even a 64bit os will split 4 gig 2/2 thus giving you no more memory than you had before.benifits only work at 8gig of memory giving you a true 4 gig available to apps

am i right in saying that if the computer had 2 gig in it only half of that is available to apps ?

also if you can split it 3/1 would there be any slow down in the system side of things because the kennel only has 1 gig of memory ?
 
does this mean that even a 64bit os will split 4 gig 2/2 thus giving you no more memory than you had before.benifits only work at 8gig of memory giving you a true 4 gig available to apps

No. Most 64-bit OSes don't split the address space at all, AFAIK.

That said, you do have less usable memory in a 64-bit OS than in a 32-bit OS. For one thing, the OS takes more RAM, as does the application. For another, the OS has to support both 32-bit and 64-bit apps, so it basically ends up with two copies of most of the OS in memory at once, so the OS takes a LOT more memory if you are mixing 32-bit and 64-bit apps. :)


am i right in saying that if the computer had 2 gig in it only half of that is available to apps ?

No. This is about address space, not RAM.

With computers, locations in memory can be described as either being a physical address or a virtual address. A physical address is a location within the actual RAM in your machine. A virtual address is a location within the application. The OS maintains (and the CPU supports) mappings between these two addresses. The main reason for this is so that the OS can push data that hasn't been used in a while out to disk so it doesn't waste actual RAM if it probably won't be needed for a while.

The virtual address space (in a 32-bit application, a private 4 gigabyte chunk of "memory" specific to a given application) is what is divided between the application and the kernel. The result is that any single application can only address a couple of gigs at once, but if you have multiple apps running, they can -each- address a couple of gigs of RAM at once provided you actually have that much RAM. If not, some of those apps will find some of their data pushed out to disk....
 
Back
Top