Windows manages memory differently

By: rwessel (robertwessel.delete@this.yahoo.com), May 14, 2007 6:09 pm
Room: Moderated Discussions
Tzvetan Mikov (tzvetanmi@yahoo.com) on 5/14/07 wrote:
---------------------------
>You are right, of course, although I don't quite understand why you brought up
>PAE. I was explicitly talking about less than 4 GB RAM. There has been some confusion
>on this because in Linux anything above 1 GB is considered HIGHMEM. This however
>is a design decision specific to Linux and is not necessarily an absolute requirement for a 32-bit x86 OS.
>
>If your applications do not _individually_ require more than 2 GB address space,
>and if your RAM plus your PCI devices is <= 4 GB, why do you really need a 64-bit OS ?
>
>Let's see. Fundamentally, what does the OS kernel need address space for ? Let's assume a 3G:1G user/kernel split.
>
>a) For its own code and data structures, including page tables. 1 GB should be
>more than sufficient for that on a 32-bit system.
>
>b) For memory-mapped hardware. With graphics cards with 512MB RAM and more this
>can be a problem on 32-bit systems. A solution is to map such hardware only in user space.
>
>c) In a system call the OS kernel has to be able access the entire address space
>of the calling process. Obviously this is not a problem, as the kernel can use the user addresses directly.
>
>d) Sometimes the kernel has to access parts of the address space of an arbitrary
>process. Since it needs only parts, not the entire space, it can lock & map the
>necessary address pages to kernel space. Windows does this persistently (the pages
>are mapped in advance). 32-bit Linux ends up doing it dynamically - it maps a page
>if it needs it and it is > 1 GB, and then unmaps it ASAP.
>
>e) For caches. This is the only problematic part. Ideally the kernel should be
>able to use all available RAM as cache, but it can't fit all in the kernel address
>space. However since this is a specialized data structure, it should be possible to map memory in & out as needed.
>
>Am I missing something ?
>
>The point is, the OS doesn't need generic access to all memory at all times.
>So, unless your applications require lots of virtual address space, having 2-3G
>of RAM doesn't necessarily have to be a cause for moving to 64-bit.


It's a long thread, PAE was in there somewhere... ;-)

Anyway, for some OSs, with the limits you listed (<4GB RAM+devices, all small processes), there's no particular pressure to go 64 bit, although that's not universally true.

The one place you run into a problem is with I/O, especially at interrupt time.

Having both the user address space that you're servicing and the real address space accessible at the same time is quite handy for some types of I/O operations. In that case you need more virtual address space than physical. The alternative involves either special casing the driver's environment to always deal with real addresses (extra overhead for many operations), or requiring the driver to know when it needs to use the real or virtual addresses (extra complexity in the driver). In Windows, for example, that’s just part of the basic design of the kernel/driver interface, so in a sense getting to the 4GB limit is “free” because all drivers have had to pay the hidden cost to support it (because of a more complex interface/environment).

There have been OSs where all the address spaces are accessible to the kernel/drivers. Obviously if you do that just with virtual address bits, you'll burn a lot of them, but it does make your life in a driver rather simpler. And having spent a lot of my life in that environment, I think almost anything that simplifies a device driver's existence is a good idea.

Also, there are good reasons to want your virtual address space to be fairly sparse, to make it easier to support things like shared memory. Shared memory in Windows is painful since there's no guarantee that it's mapped to the same place in both processes.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Rock/Tukwila rumorsmas05/05/07 12:59 PM
  Rock/Tukwila rumorsDavid Kanter05/05/07 02:33 PM
    Rock/Tukwila rumorsDean Kent05/05/07 03:35 PM
      K8 vs Win64 timelineanonymous05/05/07 06:19 PM
        Yes, I misremembered...Dean Kent05/05/07 10:03 PM
    RockDaniel Bizó05/06/07 02:34 AM
      RockDean Kent05/06/07 07:11 AM
    Rock/Tukwila rumorsJoe05/06/07 11:24 AM
      Rock/Tukwila rumorsDean Kent05/06/07 11:49 AM
      Rock/Tukwila rumorsLinus Torvalds05/06/07 12:09 PM
      Rock/Tukwila rumorsanon05/07/07 01:32 AM
        Rock/Tukwila rumorsRakesh Malik05/07/07 09:36 AM
          Rock/Tukwila rumorsMichael S05/07/07 10:06 AM
          Rock/Tukwila rumorsanon05/07/07 09:48 PM
            Rock/Tukwila rumorsRakesh Malik05/08/07 06:45 AM
              Rock/Tukwila rumorsanon05/08/07 05:30 PM
                Wow. (nt)Brannon05/08/07 06:16 PM
                Rock/Tukwila rumorsrwessel05/08/07 09:48 PM
                  Rock/Tukwila rumorsJS05/08/07 10:07 PM
                    Rock/Tukwila rumorsJS05/09/07 06:44 AM
                Rock/Tukwila rumorsRakesh Malik05/09/07 05:35 AM
                  Much ado about xMichael S05/09/07 09:39 AM
                    Call it x86-64Linus Torvalds05/09/07 10:27 AM
                      (i)AMD64Michael S05/09/07 12:16 PM
                        (i)AMD64Linus Torvalds05/09/07 12:29 PM
                          (i)AMD64Groo05/09/07 04:45 PM
                          TIFNAAanonymous05/09/07 05:49 PM
                            Inspired by FYR Macedonia? (NT)Michael S05/09/07 11:21 PM
                              More likely...rwessel05/10/07 12:39 AM
                            TIFNAAGabriele Svelto05/09/07 11:57 PM
                          (i)AMD64James05/10/07 02:27 AM
                        i86Dean Kent05/09/07 12:30 PM
                        (i)AMD64Max05/09/07 01:28 PM
                          wide86? long86?hobold05/10/07 05:05 AM
                            x87 perhaps, it is one more. :) (NT)Groo05/10/07 05:50 AM
                              x86+Dean Kent05/10/07 08:44 AM
                                Does it really matter?Doug Siebert05/10/07 09:10 AM
                                  let's stay with x86-64 for now, pleaseMarcin Niewiadomski05/10/07 11:50 AM
                                    let's stay with x86-64 for now, pleaseDean Kent05/11/07 06:11 AM
                                      let's stay with x86-64 for now, pleaserwessel05/11/07 02:46 PM
                                        let's stay with x86-64 for now, pleaseDean Kent05/11/07 06:03 PM
                                          let's stay with x86-64 for now, pleaseMichael S05/12/07 10:49 AM
                                            let's stay with x86-64 for now, pleaseDean Kent05/12/07 01:05 PM
                                              let's stay with x86-64 for now, pleaseMichael S05/12/07 01:25 PM
                                                let's stay with x86-64 for now, pleaseDean Kent05/12/07 03:39 PM
                                                  let's stay with x86-64 for now, pleaseJasonB05/13/07 07:43 AM
                                                    client consolidationMichael S05/13/07 08:37 AM
                                                  let's stay with x86-64 for now, pleaseTzvetan Mikov05/13/07 03:44 PM
                                                let's stay with x86-64 for now, pleaserwessel05/14/07 02:42 PM
                                      What's your point?Doug Siebert05/11/07 02:56 PM
                                        What's your point?Linus Torvalds05/11/07 04:15 PM
                                          What's your point?Doug Siebert05/13/07 03:11 PM
                                            What's your point?Dean Kent05/13/07 07:04 PM
                                              What's your point?JasonB05/14/07 02:06 AM
                                                What's your point?Dean Kent05/14/07 07:20 AM
                                                  What's your point?JasonB05/14/07 04:35 PM
                                                  What's your point?JasonB05/14/07 07:35 PM
                                                    What's your point?Dean Kent05/14/07 08:12 PM
                                        What's your point?Dean Kent05/11/07 06:06 PM
                                        What's your point?Stephen H05/13/07 01:55 AM
                                          Why didn't MS take advantage of PAE?David W. Hess05/13/07 08:37 AM
                                            PAE sucks (Why didn't MS take advantage of PAE?)Linus Torvalds05/13/07 10:20 AM
                                              PAE sucks (Why didn't MS take advantage of PAE?)Dean Kent05/13/07 10:49 AM
                                              PAE sucks (Why didn't MS take advantage of PAE?)David W. Hess05/13/07 12:37 PM
                                              > 1 GB RAM on a 32-bit systemTzvetan Mikov05/13/07 01:44 PM
                                                > 1 GB RAM on a 32-bit systemS. Rao05/13/07 03:00 PM
                                                  > 1 GB RAM on a 32-bit systemTzvetan Mikov05/13/07 05:32 PM
                                                    > 1 GB RAM on a 32-bit systemS. Rao05/14/07 12:19 AM
                                                > 1 GB RAM on a 32-bit systemLinus Torvalds05/13/07 03:46 PM
                                                  > 1 GB RAM on a 32-bit systemTzvetan Mikov05/13/07 05:23 PM
                                                  > 1 GB RAM on a 32-bit systemJasonB05/13/07 06:37 PM
                                                    Windows manages memory differentlyTzvetan Mikov05/13/07 08:31 PM
                                                      Windows manages memory differentlyJasonB05/14/07 01:50 AM
                                                        Windows manages memory differentlyTzvetan Mikov05/14/07 08:56 AM
                                                          Windows manages memory differentlyrwessel05/14/07 03:40 PM
                                                            Windows manages memory differentlyDavid W. Hess05/14/07 04:07 PM
                                                              Windows manages memory differentlyrwessel05/14/07 04:51 PM
                                                            Windows manages memory differentlyTzvetan Mikov05/14/07 05:40 PM
                                                              Windows manages memory differentlyrwessel05/14/07 06:09 PM
                                                      Windows manages memory differentlyHoward Chu05/14/07 11:17 AM
                                                        Windows manages memory differentlyJukka Larja05/14/07 11:30 AM
                                                        Windows manages memory differentlyTzvetan Mikov05/14/07 01:54 PM
                                                          Windows manages memory differentlyHoward Chu05/15/07 03:35 AM
                                                            Windows manages memory differentlyGroo05/15/07 07:34 AM
                                                      Anyone know what OS X (10.4, Intel, desktop) does?Matt Sayler05/15/07 06:23 AM
                                                        Anyone know what OS X (10.4, Intel, desktop) does?Wes Felter05/15/07 08:37 AM
                                                        Anyone know what OS X (10.4, Intel, desktop) does?Anonymous05/15/07 10:49 AM
                                                        Anyone know what OS X (10.4, Intel, desktop) does?anon205/15/07 07:13 PM
                                              PAE sucks (Why didn't MS take advantage of PAE?)Paul05/13/07 03:40 PM
                                                PAE sucks (Why didn't MS take advantage of PAE?)Peter Arremann05/13/07 05:38 PM
                                                  PAE sucks (Why didn't MS take advantage of PAE?)Henrik S05/14/07 03:31 AM
                                              The fragility of your argumentslacker05/13/07 03:56 PM
                                                The fragility of your argumentnick05/13/07 05:42 PM
                                                The fragility of your argumentHoward Chu05/14/07 02:52 AM
                                                  The fragility of your argumentDean Kent05/14/07 09:19 AM
                                                The fragility of your argumentanon205/14/07 08:26 AM
                                                  The fragility of your argumentTzvetan Mikov05/14/07 09:01 AM
                                                  The fragility of your argumentDean Kent05/14/07 09:16 AM
                                                    The fragility of your argumentLinus Torvalds05/14/07 11:57 AM
                                                      The fragility of your argumentJasonB05/14/07 04:48 PM
                                                        The fragility of your argumentDean Kent05/14/07 07:36 PM
                                                          The fragility of your argumentRicardo B05/16/07 02:40 AM
                                                            The fragility of your argumentDean Kent05/16/07 03:32 AM
                                                              The fragility of your argumentRicardo B05/16/07 06:41 AM
                                                                PSRicardo B05/16/07 06:50 AM
                                                                The fragility of your argumentDean Kent05/16/07 09:07 AM
                                                                  Modern web browsingS. Rao05/16/07 09:16 AM
                                                                    Aha!Dean Kent05/16/07 09:27 AM
                                                                      Aha!Dean Kent05/16/07 09:32 AM
                                                                        Aha!S. Rao05/16/07 10:34 AM
                                                                  The fragility of your argumentRicardo B05/16/07 10:00 AM
                                                      The fragility of your argumentVincent Diepeveen05/16/07 10:10 AM
                                                        The fragility of your argumentPaul05/16/07 03:01 PM
                                                          The fragility of your argumentVincent Diepeveen05/17/07 03:05 AM
                                                    The fragility of your argumentanon205/15/07 01:35 AM
                                                    Splits vs page allocations?Matt Sayler05/15/07 07:33 AM
                                          What's your point?Michael S05/13/07 08:55 AM
                                            What's your point?anonymous05/13/07 11:08 AM
                                              What's your point?Michael S05/13/07 11:31 AM
                                      let's stay with x86-64 for now, pleaseJasonB05/13/07 07:16 AM
                                x864 =) (NT)some105/15/07 03:03 AM
    Rock/Tukwila rumorsIntelUser200005/06/07 02:27 PM
  Rock/Tukwila rumorsm05/13/07 08:05 AM
  Rock/Tukwila rumorsmas05/15/07 09:40 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?