Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #2528

Re: The different groups and segments of object files

From gah4@u.washington.edu
Newsgroups comp.compilers
Subject Re: The different groups and segments of object files
Date 2020-06-21 01:50 -0700
Organization Compilers Central
Message-ID <20-06-007@comp.compilers> (permalink)
References <20-06-004@comp.compilers> <20-06-005@comp.compilers>

Show all headers | View raw


(I wrote)

> The Watcom (at least before OpenWatcom) compilers were the only ones
> I knew to generate large model (more than one segment) 32 bit code.

> It might be that OS/2 even knows how to load and run it.
> (I am pretty sure that Windows and Unix don't.)

(and our great moderator replied)

> [On the 386, all of the segments in a process were mapped into a
> single 32 bit paged linear address space, so the total size of all
> segments in a program was limited to 4G unless you did pseudo-swapping
> of segments in and out of the address space, which I don't think
> anyone did.

> So not only were they slow, they didn't help. -John]

I believe OS/2 could, but I never tried it to find out.

And yes putting a 32 bit paging unit in between doesn't help.

A program could use multiple segments totaling less than 4GB,
or with, I hadn't thought of the name but pseudo-swapping sounds
about right, use more than 4GB.  With a little locality, it should
be able to get enough done before pseudo-swapping.

But as far as I know, there is still the overhead for loading
segment descriptors.  Well, the extra two (FS and GS) could help.
But a little segment descriptor cache would have helped more.

Since OS/2 could run both 16 bit and 32 bit code, it might not have
been hard to add.

In any case, the compilers can generate the code, whether or not
any OS can run it.

There was also PAE:

https://en.wikipedia.org/wiki/Physical_Address_Extension

which I thought would help, but never tried to figure out what
it could do, or how to actually do it.
[PAE let you attach more physical memory to an x86 but didn't increase the 4G
process address space.  For that you need x86-64 or Itanium. -John]

Back to comp.compilers | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

The different groups and segments of object files Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.com> - 2020-06-19 23:22 +0800
  Re: The different groups and segments of object files gah4@u.washington.edu - 2020-06-19 14:12 -0700
    Re: The different groups and segments of object files gah4@u.washington.edu - 2020-06-21 01:50 -0700
    Re: The different groups and segments of object files Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2020-06-25 22:41 +0800
    Re: The different groups and segments of object files Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2020-06-25 22:40 +0200
      Re: The different groups and segments of object files Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2020-06-26 00:09 +0200
        Re: The different groups and segments of object files gah4@u.washington.edu - 2020-07-02 00:36 -0700
  Re: The different groups and segments of object files Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2020-06-20 16:01 +0200
    Re: The different groups and segments of object files Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2020-06-25 23:13 +0800
      Re: The different groups and segments of object files Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2020-06-25 22:52 +0200

csiph-web