Microsoft Word & (SCO) Unix 3.2

Darryl Richman darryl at
Sat Aug 26 01:17:28 AEST 1989

In article <5864 at> peter at (Peter da Silva) writes:
"This behaviour indeed speeds up most UNIX programs. However, programs written
"using Intel's UDI interface, such as their PLM286 compiler and associated
"tools, end up requesting 64K for all memory requests. This tends to lead to
"processes that are very large, creates inordinate amounts of thrashing, and
"even runs out of virtual memory space if the program makes frequent requests
"for small amounts of memory.

I'm surprised that you see a significant amount of thrashing, since, if
you don't use the memory, it stays paged out.  And pages that aren't
touched don't get allocated real memory in the first place.  If you are
running out of virtual memory space in the emulator, you can up your
ulimit.  Obviously there is a limit to the process size, and there is a
jump in process overhead every 4MB for the extra page table directory,
but these seem like they should be a long way off for a 286 environment

"The problem seems to be caused by intel's UDI returning a new segment for
"every memory request. In real Xenix-286, small segments are returned for
"small requests. In the emulator, all segments returned by x286emul are 64K
"in size.

Actually, the segments seen by the 286 program are the size that they
requested.  The segment descriptor used by the 286 program prevents
access beyond the request.  But the emulator does allocate 64k each
time a new segment is needed.  This would seem to put a strain on swap
space and region table size more than anything else.  Have you tried
tuning your system?

This is a surprising way to handle memory on a 286 considering that it
is so expensive to load a segment register, the limited (4k-1) number
of segments allowed to a user process, and the added overhead in
process switching incurred by large LDTs.  We have not encountered a
problem like this one in the large number of commercial XENIX products
we, Microsoft, and SCO tested.  Have you discussed this problem with

In designing and implementing the environment emulator, our goals were
to provide backward compatibility and the same or improved performance
in existing products compared to running native on a 286.  We (ISC,
Microsoft, and AT&T) explicitly decided that we were not providing a
platform for new development work (hence, the absence of support for
debuggers and system maintenance functions) on the 286 since it was
perceived to be an aging and limited market.

		--Darryl Richman
Copyright (c) 1989 Darryl Richman    The views expressed are the author's alone
darryl at 		      INTERACTIVE Systems Corp.-A Kodak Company
 "For every problem, there is a solution that is simple, elegant, and wrong."
	-- H. L. Mencken

More information about the Comp.unix.i386 mailing list