Questions asked while teaching Windows Vista and Computer Hardware courses



  • I was a part-time instructor at a local community college for three years. I enjoyed teaching but my current job no longer affords me the time to do it.

    My students were a mix of traditional freshman/sophomores and non-traditional students, including adults looking for a refresher course on technology, those retraining for technology jobs, and those who knew what the power button is but nothing else. 

    These are some questions brought up during class. I know these aren't true "WTFs" but I thought we could all use a little laugh.

    • "Does a hardrive weigh more when it gets formatted?"
    • (On VMWare, which we used to run the VMs of Vista for the class) "My DVD player thingy is locked up. How do I eject Vista?"
    • "Does using RAID like, keep bugs away or something?" (I kid you not)
    • (Question regarding an external hard drive, which was required for the Vista course to store VMWare machines) "I don't have a hard drive...can I just use these {spindle of CD-Rs} instead?"
    • (Not a question, but humorous anyhow. Again, VMWare is involved.) Student A to Student B: "No, you're on the wrong Vista. You are on the host machine. You need to do that on the parasite machine."

    I have some more written down somewhere but I think these were among the best.



  • @citking said:

    "Does a hardrive weigh more when it gets formatted?"
     

    I've had that question and it led into an interesting discussion of metaphysics.

     



  • @citking said:

    "Does using RAID like, keep bugs away or something?" (I kid you not)
    Before, while or after you explained what RAID was?



    When I took courses for system administration there was one guy who just couldn't understand why all of the 4GB of RAM wouldn't show up on a 32-bit XP install (despite being explained this multiple times).



    Then there's shitty applications that are so enterprisey they're actually like 8 seperate user-end programs and are so shitty they don't even inform the users which application they're using so HD gets calls like "Peoplesoft broke" "which application?" "Peoplesoft" "General-ledger, Accounting... which application?" "Peoplesoft, why the fuck can't you people just help me with Peoplesoft?" "because there's 8 Peoplesoft applications and 7 more [something I forgot the name of] applications that are replacing them but get called Peoplesoft as well and each one has its own application admin team and we don't have any tools to deal with any 'Peoplesoft' issue." "Oh... well X helped me last time" "Accounts Recievable it is then".



  • @Lingerance said:

    one guy who just couldn't understand why all of the 4GB of RAM wouldn't show up on a 32-bit XP install
     

    I've never heard a proper explanation for that one either, beyond "32 bit can't allocate all that RAM" despite 2^32 being precisely enough to address every byte in 4GB. Also tons of noise when doing a little googlin' on the subject, so that's not helping either.



  • @dhromed said:

    I've never heard a proper explanation for that one either, beyond "32 bit can't allocate all that RAM" despite 2^32 being precisely enough to address every byte in 4GB. Also tons of noise when doing a little googlin' on the subject, so that's not helping either.
     

    Windows uses some of the memory space for DMA things like accelerated graphics or talking with hardware.  This is why there isn't an exact number as to how much memory is available: it could be anywhere between 2.5GB and 3.75GB depending on BIOS settings and installed hardware.

    DOS had a similar restriction: there was 1MB addressable (20 bits) in the early Intel CPUs - but only 640KB available to DOS. The 384KB between 640KB and 1024KB was used for graphics and extended/expanded memory pages. Later CPUs could use other memory for that use so some of the "upper memory" became available for device drivers (TSRs).



  • It is rather simple, the top 2 GB of virtual memory is reserved for the system. (top 1 GB if specifically compiled).

    In physical memory, some addresses are used for memory mapped IO devices, like the harddrive and what not.



  • @Zemm said:

    Windows uses some of the memory space for DMA
    things like accelerated graphics or talking with hardware.  This is why
    there isn't an exact number as to how much memory is available: it could
    be anywhere between 2.5GB and 3.75GB depending on BIOS settings and
    installed hardware.
     

    But if I have 1GB installed, XP
    reports 1GB just fine, and it will use that extra memory space all the
    same. So it makes no sense that XP doesn't report the full 4GB.




  • @dhromed said:

    But if I have 1GB installed, XP
    reports 1GB just fine, and it will use that extra memory space all the
    same. So it makes no sense that XP doesn't report the full 4GB.
     

    There's 4GB of addressable space with 32 bits. Windows needs "some", let's say 512MB, for DMA and hardware devices - things need a block of memory addresses meaning that you can't use those blocks for general memory. That means there's only 3.5GB left as "RAM". If you only have 1GB installed then it can see the entire 1GB, since it can organise its memory mapping so that the devices are in the "top" part of the address space.

    I think 32 bit Windows 7 actually reports something like "4GB installed, 3.5GB available" in its system properties, so I guess the "misreporting" is fixed...

     



  • @Zemm said:

    If you only have 1GB installed then it can see the entire 1GB, since it can organise its memory mapping so that the devices are in the "top" part of the address space.
     

    But... that top part doesn't exist. I only have the one GB.

    Those top mappings refer to the page file, then?

     

     



  • @dhromed said:

    @Zemm said:

    If you only have 1GB installed then it can see the entire 1GB, since it can organise its memory mapping so that the devices are in the "top" part of the address space.
     

    But... that top part doesn't exist. I only have the one GB.

     

     

    Is this one of them troll posts i read about?



  • @dhromed said:

    @Zemm said:

    Windows uses some of the memory space for DMA things like accelerated graphics or talking with hardware.  This is why there isn't an exact number as to how much memory is available: it could be anywhere between 2.5GB and 3.75GB depending on BIOS settings and installed hardware.
     

    But if I have 1GB installed, XP reports 1GB just fine, and it will use that extra memory space all the same. So it makes no sense that XP doesn't report the full 4GB.


    Seems that XP's physical memory limit is 4GB. My guess would be that the problem is accounting.



  • @dhromed said:

    @Zemm said:

    If you only have 1GB installed then it can see the entire 1GB, since it can organise its memory mapping so that the devices are in the "top" part of the address space.
     

    But... that top part doesn't exist. I only have the one GB.

    Those top mappings refer to the page file, then?

     

     

    4GB of accessible memory (void* size 4 bytes) which will include your video memory, other device flash memory and the remaining part goes to your main memory.



  • @dhromed said:

    But... that top part doesn't exist. I only have the one GB.

    Those top mappings refer to the page file, then?

     

    Assuming you aren't trolling and are genuinely curious, here's my attempt at explaining (and this is simplified somewhat):

    The OS always has an address space of 4GB worth of memory locations. Memory locations are used for TWO things essentially, the primary one being the actual physical memory chips installed on your motherboard, the second thing being memory addresses in your hardware (like your video card); this being called DMA (Direct Memory Access).

    The reason DMA is done is to provide a fast and direct way for the CPU to write information to and from the device, so instead of the CPU having to perform an I/O instruction to send pixels to the video device, it can just write to a specific memory location, which the video card intercepts and puts on the screen.

    So, 32 bit XP ALWAYS has a total of 4GB of memory "space" for it to use, regardless of how much physical memory is installed. This is simplifying a bit, but the actual memory chips end up at the bottom of this space, and the DMA hardware ends up at the top of this space. So if you have 2GB of physical memory installed into your machine,  the bottom 2GB of the memory address space will be assigned to this physical memory, and a little bit at the top of the 4GB of space will be used for the DMA devices (typically around 500MB is used for DMA type stuff). 

    So you have this 4GB of available addresses, which can be used for one of two things, actual physical memory, or DMA. You NEED to have the DMA address space for your computer to work at any efficient speed at all (or else we'd be back to the goode olde days where everything was slow), so you always have this ~500MB chunk of used addresses at the top of the space. If you install 4GB of actual physical memory, now you have a problem, because you're trying to fill 4GB worth of possible addresses with 4.5GB of stuff. Unfortunately because you need the DMA address space, you "lose" some of your physical memory. 

    Obviously if you haven't used all of your 4GB of available addresses, you're going to have "unused" addresses at which there is neither physical memory or a DMA device. 



  • @XIU said:

    which will include your video memory, other device flash memory and the remaining part goes to your main memory.

    Man, it's like a broken record.

    1GB is fully reported and (apparently) fully used for user programs. Where does shared video memory + device flash mem + whatever go when I have only 1GB?



  • @EJ_ said:

    Assuming you aren't trolling and are genuinely curious
     

    I'm curious why my questions are considered ridiculous when this information is nowhere to be found, or, probably more accurately, lost in the incredible noise of confused people on idiot forums.

    In fact, I had never even seen any reference to DMA anywhere regarding this subject. You're the first one to bring it up, which is quite a leap.

    @EJ_ said:

    stuff

    Finally. You're the first one to actually resolve the conundrum of an OS using addresses for memory that does not exist as sticks of RAM. Thanks for that.

     

    Just so I got this straight, my video card, with 1GB of RAM, will have its memory addressed by Windows, chipping off a GB of my 4GB?



  • Here's some awesome paint.exe pictures I drew to help illustrate:

    You have 4GB of address space total to use for "whatever". In this example you have a 2GB memory stick installed and ~500MB for the IO stuff (DMA, other acronyms):

    2gb

     Here is what it looks like with a 4GB memory stick installed:

    4gb

    You can see that were it not for this IO Space requirement, all 4GB of your physical installed memory would be addressable, but alas, you only have 4GB of addresses that the CPU can give out, and 4.5GB of things wanting those addresses, so somebody doesn't get an address.

    I think what trips people up is confusing "physical memory installed" with "addressable memory space". They're separate entities.

    Using a 64-bit cpu and OS (or using other memory trickery) doesn't technically "solve" this problem, it just makes your total addressable space much, much larger. Some day we'll run up against the 64 bit wall, and there'll be holo-forum posts with people asking "why aren't all 16 exabytes of memory being recognized??"



  • @dhromed said:

    I'm curious why my questions are considered ridiculous when this information is nowhere to be found, or, probably more accurately, lost in the incredible noise of confused people on idiot forums.

    I'm with you, man. I didn't know any of this and I was thinking the same thing you asked until I finished this thread. I don't know why people considered the questions ridiculous.



  • Back in the old days, we had lots of ways of tricking cpu's into accessing ram beyond the normally addressable ranges -- bank switching and what not.



  • @Medezark said:

    Back in the old days, we had lots of ways of tricking cpu's into accessing ram beyond the normally addressable ranges -- bank switching and what not.

     

    A boot disk with a modified autoexec.bat to read extended memory so I could play DOOM.



  • @EJ_ said:

    Here's some awesome paint.exe pictures I drew to help illustrate:
     

    My special powers of abstract visualisation are strong enough to get the idea, but thanks for the effort. 🙂


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.