www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/01/03/17:48:29

Comments: Authenticated sender is <alaric+abwillms AT sdps DOT demon DOT co DOT uk>
From: "Alaric B. Williams" <alaric AT abwillms DOT demon DOT co DOT uk>
To: grendel AT ananke DOT amu DOT edu DOT pl, djgpp AT delorie DOT com
Date: Fri, 3 Jan 1997 21:58:43 +0000
MIME-Version: 1.0
Subject: Re: DPMI incorporation...
Reply-to: alaric AT abwillms DOT demon DOT co DOT uk
Message-ID: <852328674.1020916.0@abwillms.demon.co.uk>

On  2 Jan 97 at 1:46, Mark Habersack wrote:
> > >1. in i386 Intel introduced a new level of indirection in memory
> > >addressing - paging. Memory in i386 can be divided into units as
> > >small as 4KB (PAGES) while in iAPX286 the smallest swappable (in
> > >virtual memory sense) was a SEGMENT (64KB).
> > 
> > That's not quite getting the point, Mark. The 286 segments were
> > limited to a maximum size of 64Kb, but could be any size. The idea
> > was that you swapped things in and out at a high level; whole DLLs
> > and things like that lived in individual segments. The 386 flat
> > address space just arbitarily carves itself into 4k bits for
> > management, they don't mean anything structurally.

> What I mean is that 286-based virtual memory manager was somehow 
> forced to swap data between memory and disk in 64KB chunks. It was, 
> of course, possible to exchange exactly that many bytes the given 
> segment contained, but the overhead involved was unacceptable. The 
> overhead was related to the different sizes of the segment sin 
> question. If the VMM were to pay attention to the sizes, it'd have to 
> maintain some structure (probably sort of FAT) to find segments in 
> the swapfile. Even though searching through the structure wouldn't be 
> that time consuming, the operations involved in rearranging data 
> layout inside of the swapfile would be unacceptable. Imagine such a 
> situation:
[snip]

Yes, but this system excelled when static program modules were 
swapped in and out - things like segments in EXE files, like Windoze 
used to (my great grandfather tells me ;-), since these were constant 
sized things from fixed positions on disk. They could be demand 
loaded and dropped out when they were getting stale...

> > What about AS and BS? :-)
> ;-))

Another Segment and... and... erm... Bigger Segment???
AS is like ES, used for /trinary/ string operations (XOR these two 
strings to this string) and BS is used for arrays and stuff (lots of 
BS:EAX+EBX*sqrt(ECX*pi)^3 addressing modes...)

(grin)


ABW
--
Governments are merely protection rackets with good images.

Alaric B. Williams Internet : alaric AT abwillms DOT demon DOT co DOT uk
http://www.abwillms.demon.co.uk/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019