Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site reed.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!vax135!cornell!uw-beaver!tektronix!reed!keith From: keith@reed.UUCP (Keith Packard) Newsgroups: net.unix Subject: Re: Process creation & "swap" Message-ID: <1342@reed.UUCP> Date: Tue, 16-Apr-85 18:21:40 EST Article-I.D.: reed.1342 Posted: Tue Apr 16 18:21:40 1985 Date-Received: Thu, 18-Apr-85 03:01:08 EST References: <1028@ecsvax.UUCP> Reply-To: keith@reed.UUCP (PUT YOUR NAME HERE) Organization: Reed College, Portland, Oregon Lines: 31 In article <1028@ecsvax.UUCP> khj@ecsvax.UUCP (Kenneth H. Jacker) writes: > > I have been told that Data General's AOS creates new >processes *first* in the "swap space" on disk and *then* >transfers a copy to memory. > > My question: what does (2.9) UN*X do? Does it create the >process (text, data, ...) in memory , transferring it to >"swap" only if necessary? Or does it use the AOS approach? > > Kenneth H. Jacker Well, there are 2 cases in 2.9 unix. If the machine is idle (sitting on the wait instruction) then the fork is done in memory. If the machine is loaded, however, the fork is done by writing it out to disk; creating another entry in the proc table and changing the in-core copy. This in-core copy becomes the *new* process; the old process is the one on the disk (it makes some sense and is the only way this works neatly - the copy on the disk doesn't need to be changed at all while the process in memory needs to have it's u-struct mucked about with.) 2.9 only does the in-memory option if the kernel is made with UCB_FRCSWAP set - this name is rather non-mnemonic; if defined it allows in-core forks and expands, else it always swaps. keith packard ...!tektronix!reed!motel6!keith (a 2.9 machine!) ...!tektronix!reed!keith ...!tektronix!azure!keithp