Don?t confuse x86 segmentation with Multics/Burroughs segmentation.
The former was a pain in the bum, the latter was an elegant solution
to programs being bigger than available physical memory.
"Elegant" depends on point of view. Other people would call
it "wasteful". Multics segmentation worked well because there
was large number of large segments. But that had its costs:
general pointers were twice as large as on comparative non
segmented machine. For prgrams that just use arrays this is
not a problem, but if you have interesting dynamic data
structures you will have a lot of pointers. Pointers may be
hidden by langage machinery, but you still pay cost of them.
x86 was born in/for penny pinching world and you see consequences
in the design.
According to Waldek Hebisch <antispam@fricas.org>:
Don?t confuse x86 segmentation with Multics/Burroughs segmentation.
The former was a pain in the bum, the latter was an elegant solution
to programs being bigger than available physical memory.
"Elegant" depends on point of view. Other people would call
it "wasteful". Multics segmentation worked well because there
was large number of large segments. But that had its costs:
general pointers were twice as large as on comparative non
segmented machine. For prgrams that just use arrays this is
not a problem, but if you have interesting dynamic data
structures you will have a lot of pointers. Pointers may be
hidden by langage machinery, but you still pay cost of them.
Nonetheless one of the reasons Multics died was that it ran out of
address bits. An 18 bit word offset was about a megabyte which wasn't
big enough, and kludges to try and spread larger data objects across
multiple segments are always ugly.
Also, segmentation without paging causes memory fragmentation and the >operating system has to shuffle segments around to get contiguous free
space.
That didn't help either. The 386 cheaped out by mapping all the
segments into one paged address space rather than paging the segments
like Multics did, but by that time it was clear that segments were a
dead end.
| Sysop: | Jacob Catayoc |
|---|---|
| Location: | Pasay City, Metro Manila, Philippines |
| Users: | 5 |
| Nodes: | 4 (0 / 4) |
| Uptime: | 493844:59:01 |
| Calls: | 146 |
| Files: | 547 |
| D/L today: |
6 files (97K bytes) |
| Messages: | 76,691 |