🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: mod.os
Article #17

Re: User-state file servers versus kernel implementation

#17
From: mod-os
Date: Wed, 14 Jan 1987 19:38
51 lines
3391 bytes
--

  In a distributed system that I am working on at the moment I built servers
to run as "user-state" servers. These servers ran as 'high priority' user
processes - they went through the 'real time scheduler' and were guaranteed
to run before 'normal' user processes. Overall, I would say, the experiment
was a failure, and not for the obvious reasons. It had to do with performance.

  I later modified by servers to be autonomous entities that ran inside the
Kernel's address space. When I did this performance picked right up. What
was happening in the original implementation was do singly to virtual memory
cache and TLB flushing and page faulting. When I made the server run inside
the Kernel address space, I didn't need to flush the VM cache, the TLB and I
didn't get page faults (at least not as frequently).

  While I still believe that a system should be written with a kernel and
surrounded by servers, I think it is advisable to make the point that some
servers need special handling. The current system I have supports two types
of servers - normal and high-performance. Based on the type of server, the
system does different things; this only makes the system slightly more 
complicated. Note that this only applies to systems with virtual memory; in
systems without virtual support I would expect no difference in performance.

  The two biggest reasons for constructing the system with a small kernel and
surrounded with servers was portability and maintanence. The only part of
the system that needs to be adapted to the new environment is the kernel - the
servers stay the same. The other reason, maintanence, was also important - the
system can change and I didn't have to worry about wierd (and forgotten) 
side effects : the interface is straight forward.

  A note of interest is that the file server I have written is machine
independent - a disk created and built on one machine can be read and accessed
on another (the 'endian of the machine doesn't matter). What I have found is
that performance is hindered too much ( < 0.5% of the processor time is taken
accounting for the rigid data format). Thus, assuming the physical media is
the same, I have taken disks formatted on an IBM PC and used them in the
disk drive on a National Semiconductor box without problem.

  Another interesting point is that I have separated the directory from the
file system. The directory is nothing more that a database server with a
few extensions (it is a B+ tree). What I am able to do is store not only
file names (and file server information), but things about processes, etc.
This turned out to be useful - I save .login style things in the database, 
etc.






--
Technical Details
Message-ID: <2464@sdcsvax.UCSD.EDU>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!rutgers!mit-eddie!genrad!decvax!ucbvax!sdcsvax!mod-os
References: <2458@sdcsvax.UCSD.EDU>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!rutgers!mit-eddie!genrad!decvax!ucbvax!sdcsvax!mod-os
From: mod-os@sdcsvax.uucp
Newsgroups: mod.os
Subject: Re: User-state file servers versus kernel implementation
Message-ID: <2464@sdcsvax.UCSD.EDU>
Date: Wed, 14-Jan-87 14:38:03 EST
Article-I.D.: sdcsvax.2464
Posted: Wed Jan 14 14:38:03 1987
Date-Received: Thu, 15-Jan-87 03:10:17 EST
References: <2458@sdcsvax.UCSD.EDU>
Sender: darrell@sdcsvax.UCSD.EDU
Reply-To: wegrzyn@cdx39.UUCP (Chuck Wegrzyn)
Organization: Codex Corp, a division of Motorola; Canton, MA, USA
Lines: 51
Approved: mod-os@sdcsvax.uucp