[comp.unix.xenix] Size of kernels

jl42+@andrew.cmu.edu (Jay Mathew Libove) (09/12/88)

Someone mumbled in a question about getting big programs to run in
small memory that their system has 640K and has a maximum user
process size of 300K or so. That implies only 340K to the kernel.

That person claimed SCO Xenix 2.2.1. I use SCO Xenix 2.2.1. My system
has 2 megabytes of memory, and 1400K is available as my maximum user
process size.

So, why is my kernel fully twice the size of his?

Jay Libove (libove@andrew.cmu.edu or libove@cs.cmu.edu)
5731 Centre Avenue, Apt 3
Pittsburgh, PA 15206
(412) 362-8983

dyer@spdcc.COM (Steve Dyer) (09/13/88)

In article <gX-wbmB38k-082XJsY@andrew.cmu.edu> jl42+@andrew.cmu.edu (Jay Mathew Libove) writes:
>That person claimed SCO Xenix 2.2.1. I use SCO Xenix 2.2.1. My system
>has 2 megabytes of memory, and 1400K is available as my maximum user
>process size.
>So, why is my kernel fully twice the size of his?

A number of data structures, in particular disk buffers, are sized dynamically
at boot time depending on the amount of physical memory installed.

This is a Feature.
-- 
Steve Dyer
dyer@harvard.harvard.edu
dyer@spdcc.COM aka {harvard,husc6,linus,ima,bbn,m2c,mipseast}!spdcc!dyer

debra@alice.UUCP (Paul De Bra) (09/13/88)

In his article, Jay Mathew Libove writes:
>Someone mumbled in a question about getting big programs to run in
>small memory that their system has 640K and has a maximum user
>process size of 300K or so. That implies only 340K to the kernel.

>That person claimed SCO Xenix 2.2.1. I use SCO Xenix 2.2.1. My system
>has 2 megabytes of memory, and 1400K is available as my maximum user
>process size.

The Xenix kernel is actually smaller than 340 K, but it dynamically allocates
the I/O buffer pool depending on your total memory size. You can configure
this (/usr/sys/conf/xenix.conf) as described in the documentation. The default
maximum is 400k which is probably reached when you have about 2 Mbytes of
memory. But you can configure it to go up to about 1Mbyte. The middle model
kernel imposes a problem beyond that (on the 286). However, Xenix does start
to behave strangely with such large buffers.
Example: Loading Tex (around 800k) takes about 7 seconds on my AT, 2 second
with a ramdisk, but loading it a second time if it is in the 1Mbyte disk
buffer pool takes 30 seconds. I have found 512K to be a reasonable size.

Paul.

haugj@pigs.UUCP (The Beach Bum) (09/13/88)

In article <1843@spdcc.COM> dyer@spdcc.COM (Steve Dyer) writes:
>A number of data structures, in particular disk buffers, are sized dynamically
>at boot time depending on the amount of physical memory installed.
>
>This is a Feature.

this Feature can be disabled by specifying the exact number of block
buffers you want at sysgen time.  if NBUF (or whatever) is set to 0,
the system will allocate 10% of the physical memory for buffers.  if
it is set to any other number, you get that many buffers.
-- 
=-=-=-=-=-=-=-The Beach Bum at The Big "D" Home for Wayward Hackers-=-=-=-=-=-=
               Very Long Address: John.F.Haugh@rpp386.dallas.tx.us
                         Very Short Address: jfh@rpp386
                           "ANSI C: Just say no" -- Me

jbayer@ispi.UUCP (id for use with uunet/usenet) (09/14/88)

In article <gX-wbmB38k-082XJsY@andrew.cmu.edu>, jl42+@andrew.cmu.edu (Jay Mathew Libove) writes:
> Someone mumbled in a question about getting big programs to run in
> small memory that their system has 640K and has a maximum user
> process size of 300K or so. That implies only 340K to the kernel.
> 
> That person claimed SCO Xenix 2.2.1. I use SCO Xenix 2.2.1. My system
> has 2 megabytes of memory, and 1400K is available as my maximum user
> process size.
> 
> So, why is my kernel fully twice the size of his?
> 
> Jay Libove (libove@andrew.cmu.edu or libove@cs.cmu.edu)

The kernel is not twice the size, but the memory it is using is.  The
memory usage includes the multiscreens (only 1 available on a 640K machine),
the i/o buffers (you probable have 300K allocated for i/o) message buffers
and probably a little bit other.  I am running 2.2.6 with 2 megs and my
kernel size is about 259 K (  "l /xenix"  ).  My maximum process size is
2820K, the kernel uses about 728K, and 1320K is available to user processes.
Also, on a 386 the maximum process size is also dependent on the swap space
size.

Jonathan Bayer
Intelligent Software Products, Inc.