Do OS's slow down with age? (was: DDJ article / UNIX vs BS/2)
Wonderly
gregg at ihlpb.ATT.COM
Sat Jan 14 01:42:01 AEST 1989
>From article <7172 at batcomputer.tn.cornell.edu>, by riley at batcomputer.tn.cornell.edu (Daniel S. Riley):
> In article <12938 at steinmetz.ge.com> davidsen at crdos1.UUCP (bill davidsen) writes:
>>In article <1472 at cps3xx.UUCP> rang at cpswh.cps.msu.edu (Anton Rang) writes:
>>| There is a lot of process creation overhead in VMS. On the other
>>| hand, you don't need to create a process every time you do anything
>>| (as UNIX does). In fact, most "basic" users (edit/compile/link) will
>>| log in and use only their one process (or maybe two, if they have a
>>| background editing process).
>>
>> I talked to a few VAX support people again, and they agree about
>>process creation. Unfortunately VMS does what's called "image
>>activation" which still results in reading a program from disk,
>>establishing an environment (in the VMS sense) and all the things UNIX
>>calls a subprocess, except accounting. This happens when you start the
>>editor, compiler, linker, run the program, etc. It still isn't cheap in
>>terms of system resources.
>
> The image activation overhead is tiny compared to the process creation
> overhead. Image activation is like process creation on a UN*X system--
> cheap and fast. Process creation, on the other hand, is miserably
> expensive under VMS.
I once had this feeling, but believe it actually depends on what kind of
process you create. Using LIB$SPAWN is expensive because DCL is along
for the ride. If you use SYS$CREPRC directly, you can rid yourself of
a lot of bagage.
>
> I tend to think that the process creation overhead is a bigger problem
> than previous posters have admitted.
> ...
> An 8600 makes a great one or two-user system, but put
> any more on it, and the process creation overhead starts to get very
> annoying.
I was really annoyed by the response time of the 750 that I used to
manage. There were a lot of people using TeX and others running compute
bound fortran programs that manipulated huge arrays (Math and Stat
department computer). I wrote a long term scheduler to run as a detached
process. It watches state transitions, percent CPU utilization and uses
the LOAD-AVERAGES driver to manipulate batch queues as things get busy.
It separates the users into two groups, those at base prio 4 and those
at base prio 5. When it determines that you are busy with the CPU, it
will put you into the 4 group. When you become idle again it puts you
back into the 5 group (login interactive base prio is 5). The
granularity is set at 7 seconds which provides a very comfortable
transition. With 3 people running CPU bound an interactive user can type
SPAWN and get a subprocess instantaneously. If the user goes compute
bound for too long, base priority will be adjusted accordingly.
Facilities are available to adjust priorities unconditionally on a per
process bases. I intended to put identifier controlled algorythms in,
but never got the chance.
> I expect this problem to get worse as DEC implements more advanced user
> interfaces under VMS. DEC will probably be at least one step behind
> companies like Apollo in user interface design for the foreseeable
> future, and I think the process creation overhead is a major reason
> for this. (I could also go on about DECNET network overhead, but that's
> a bit off the topic.)
Some major reasons for the short falls in performance are:
1) QUANTUM==20 is too long, try 15 or 10 and you will see a marked
change in response times.
2) I/O boosts and most other related priority manipulations by VMS
are too short sighted. I.E. a priority boost of 1 is lost for
each quantum that is completed without surrendering the CPU.
To begin with, priority boosts are not necessary if compute
bound process are degradated properly.
--
Gregg Wonderly DOMAIN: gregg at ihlpb.att.com
AT&T Bell Laboratories UUCP: att!ihlpb!gregg
More information about the Comp.unix.questions
mailing list