|
-
Aug 16th, 2006, 10:05 AM
#1
Thread Starter
New Member
Windows and Conventional Memory
The other day my instructor was talking about how there's a memory barrier with IBM compatible PCs. Here's how he put it.
Windows can only work in the first 640K of memory (conventional memory) and to utilize anything over 1024K they must use drivers such as HIMEM and EMM3886. Even then have to pull it into the conventional memory though. He pretty much said that they have to keep swapping and pulling things in and out of conventional memory.
I did a bit of research and my conclusion was as follows. Back in the DOS days they couldn't touch anything over 1MB while running in Real Mode. With the introduction of Windows and protected mode they used EMS which is slow and is where all the swapping comes into play. They can only bring in 64K at a time with EMS and have to continuosly swap back and forth. From my understanding this was eliminated with Windows NT and XMS because they could access the RAM as a whole.
I would really like a better understanding of this though. I did read about IBM's fault of putting the Conventional Memory before the Upper Memory and how that affects the older systems but does it affect us today with OSs like Windows XP and Linux?
Does windows still have to run in Conventional Memory?
Do 32bit programs have to run in Conventional Memory?
How does the whole memory process work? Can the OS just jump right to the location in memory and access it?
Say if IBM hadn't made this fault, I know it doesn't exist on a MAC, how much faster theoretically could we be running our computers today?
I would really just like a detailed explanation of this problem on up to date computers. Everything I've found doesn't mention anything about newer OSs.
Thank you,
anarchyPenguin
-
Aug 16th, 2006, 02:04 PM
#2
Re: Windows and Conventional Memory
 Originally Posted by anarchyPenguin
I did read about IBM's fault of putting the Conventional Memory before the Upper Memory
...
Say if IBM hadn't made this fault, I know it doesn't exist on a MAC, how much faster theoretically could we be running our computers today?
One of the main problems is segmented addressing, and this is inherent in the CPU architecture, not the implementation of the OS. x86 processors are segmented, 68k processors aren't. It's like asking "if our heads were attached to our feet, how high would airplanes fly"?
Upper memory is just that - the top of the addressing range. You can't put the top below the bottom ... it then becomes the bottom and the bottom becomes the top. If you're saying that IBM should have put the OS at the top of the memory range (the way a lot of other operating systems were built), DOS can do that, but it doesn't change speed. If everything, system area, code and data, video, OS, are in the same 1 meg space, things run faster - no swapping.
The most difficult part of developing a program is understanding the problem.
The second most difficult part is deciding how you're going to solve the problem.
Actually writing the program (translating your solution into some computer language) is the easiest part.
Please indent your code and use [HIGHLIGHT="VB"] [/HIGHLIGHT] tags around it to make it easier to read.
Please Help Us To Save Ana
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|