[comp.sys.amiga.hardware] UNIX memory consumption

Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips) (06/14/90)

Daniel> On 12 Jun 90 01:08:49 GMT, dz@lemon.ucsb.edu (Daniel James Zerkle) said:

Randell> In article <12477@cbmvax.commodore.com> jesup@cbmvax (Randell Jesup) writes:
Randell> Our SysVR4 Unix will support both X and OpenLook (on top of X I think),
Randell> so it should work.  (No Suntools, of course.)

Daniel> Wonderful!  Is this official?

>I think X works in 4MB, but
>OpenLook may require more than 4MB ram to work well.  THe unix guys could
>answer more precisely.

Daniel> Being a "Unix Guy", I pity the fool who tries to run ANY windowing
Daniel> environment, and expecially X, in less than 8 megabytes on UNIX.

For the MC680x0 architecture, I agree.  Unsurprisingly most RISC processors
want _lots_ more.  (12-16MB for Sparc) There are mitigating factors on the
Amiga, however.  One is shared libraries (which UNIX didn't have until SVr4
;-).  The other is the fact that many of the graphics routines are in ROM
or hardware and needn't be compiled into the server.  (Compare this to the
Mac and PC situations. ;-)

Daniel> I don't know about OpenLook, but as it is a huge application that runs
Daniel> on top of X, I would add memory appropriately.

"olwm" Open Look Window Manager) isn't the largest window manager for X
(mwm and gwm are larger), but it isn't the smallest, either.  "twm" by
comparison is smaller and faster, just not as fancy.  Who knows, C= could
write "wbwm" (WorkBench Window Manager) that would provide a Workbench like
look and feel and release a compatibility library to allow old Workbench
programs to be recompiled to run under X.  This is essentially what Sun did
when they wrote the Open Look toolkit.  Sun also made the source code for
the Open Look libraries and window manager freely redistributable.  (Hint,
hint.  :-)

Daniel> Also, remember that if you get Unix, you will need high performance disk
Daniel> storage.  EVERYTHING that Unix does requires an access to the disk.

Very true.  Question: Does the C= (or any other) Amiga SCSI controller
suport "synchronous" SCSI?  I seem to recall the difference in maximum
throughput being more than a factor of 3.  (BTW, the Quantum 110MB drives
support this.)

Daniel> What's more, the virtual memory system swaps and pages memory that has
Daniel> not been used lately to the disk drive.

Under SVr4 UNIX (and SunOS >= 4.0), the paging algorithm is a bit different
than most versions of UNIX.  Memory is only paged out when more RAM is
needed than is available.  In a machine with lots of memory, unused pages
could hang around for a long time.

Daniel> However, I cringe at the thought of Unix
Daniel> running on a slow disk with not enough RAM.  Actually, I cringe at the
Daniel> memory of doing this.

To be fair, UNIX isn't much worse about memory consumption than OS/2.  The
CPU overhead of UNIX is also _much_ less than that of OS/2.  (Based on the
results of benchmarks run on an NCR 486 PC published recently in "Personal
Workstation")

Daniel> Anyway-  Here's a summary of performance effects from most to least
Daniel>          important:

Daniel> ...

Other than to comment that the RAM estimates might be a bit high, I'd like
to add:

6. Programs that read and write files sequentially (rather than random
access) may see a dramatic improvement in execution time.  In UNIX, disk
writes are asynchronous and parallel to the the process requesting the
write.  (This can be overridden in SVr4 and Xenix.)  Many versions of UNIX
will also read ahead, so disk reads may see an improvement, also.  In UNIX,
you can actually have a program complete execution in less wall clock time
than the sum of disk seek times required for the program's I/O.

Daniel> | Dan Zerkle home:(805) 968-4683 work:687-0110                        |
Daniel> | dz@cornu.ucsb.edu dz%cornu@ucsbuxa.bitnet ...ucbvax!hub!cornu!dz    |
Daniel> | Snailmail: 6681 Berkshire Terrace #5, Isla Vista, CA  93117         |
Daniel> | Disclaimer: My fish are stupid.                                     |

Disclaimer: Not a spokesman, etc., etc.  And his fish ARE stupid.
(Just kidding!  See the smiley? -> :-)
--
Chuck Phillips  MS440
NCR Microelectronics 			Chuck.Phillips%FtCollins.NCR.com
Ft. Collins, CO.  80525   		uunet!ncrlnk!ncr-mpd!bach!chuckp

thad@cup.portal.com (Thad P Floryan) (06/15/90)

{Subject: UNIX memory consumption (was: Amiga-Sun unix question)}
{Newsgroups: comp.sys.amiga.hardware}

Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips) in
<CHUCK.PHILLIPS.90Jun14140200@haydn.FtCollins.NCR.COM> writes:

	For the MC680x0 architecture, I agree.  Unsurprisingly most RISC
	processors want _lots_ more.  (12-16MB for Sparc) There are mitigating
	factors on the Amiga, however.  One is shared libraries (which UNIX
	didn't have until SVr4 ;-).
        ^^^^^^^^^^^^^^^^^^^^^^

Oh?  The following is just some "random" output captured from my 3B1/UNIXPC,
a 10 MHz MC68010-based system circa 1985.  For those who attended the FAUG
meeting several months ago when I demo'd AmigaUUCP, the host-server system to
which my Amiga was connected over StarLAN was another one of my 3B1 identical
to this one.  The two systems (Amiga and 3B1) are quite similar except the 3B1
runs UNIX and its dynamically-loaded device drivers can also be UN-loaded!

There's probably several screenfuls following, so hit 'n' now if you're not
interested in the details.

Thad

-------------------- begin included screen capture --------------------

ksh 3957/3958> uname -a
UNIX thadlabs SYSTEM5 3.51a mc68k
ksh 3957/3958> /usr/net/bin/memsize -p
3584K
ksh 3957/3958> ll
total 154
-rw-r--r--  1 thad    users       306 Jun 12 02:23 Makefile
-rw-r--r--  1 thad    users      2103 Jun 12 01:58 POSTER
-rwxr-xr-x  1 thad    users     15640 Jun 12 02:23 finger
-rw-r--r--  1 thad    users     25945 Jun 12 02:20 finger.c
-rw-r--r--  1 thad    users     25816 Jun 12 01:58 finger.c-orig
-rw-r--r--  1 thad    users      7315 Jun 12 01:58 finger.diff
ksh 3957/3958> file finger
finger:		mc68k executable (shared demand paged with shared library) -F (0413 de
mand paged) 
ksh 3957/3958> cd /usr/bin
ksh 3957/3958> ls
300		Ulogin		fdfmt10.vl	o_ve_t		tr
300s		Uninstall.sh	findem		osdd		tsort
4014		Users.sh	finger		pack		tutor
450		admin		fpcp		page		ua
470		arconvert	fsetup		password	uahelp
478		arpbypass	ftp		paste		uaupd
BAutoBack.sh	asa		fx		path		umodem
BAutomatic.sh	async_main	get		pcal		unget
Backup.sh	awk		getinum		pcat		uniq
CMB232.sh	bach		getoff.sh	phconvert	units
Diagnos.sh	banner		geton.sh	phcreate	unpack
Fcopy.sh	bc		getopt		phdial		uucall
Fformat.sh	bdiff		gettable	phnum		uucp
Fformat10.sh	bfs		getterm		phpinks		uucppwd
FlpyChk.sh	blast16		greek		phpref		uulog
Funlock.sh	blast64		help		phslan		uuname
GSS.sh		cal		hostid		phstub		uupick
Install.sh	cancel		hostname	phtoggle	uupoll
Instcpio.sh	captoinfo	hp		pollsetup	uustat
Ldriver		cb		hplj		prof		uuto
Lsys.sh		cdc		htable		prs		uux
Modem.sh	cflow		hyphen		prstat		val
MsdosF.sh	cfont		id		ptx		vc
MsdosR.sh	checkcw		ifconfig	pwait		vconvert
MsdosW.sh	checkmm		imagfilt	pwdlogdir	vda
Namesys.sh	checkmm1	info		pwdmenu		vdb
Pclear.sh	cmpdt		infocmp		qtapecpio	vddaily
Phones.sh	cnclform.sh	ipcrm		rcp		vdfold
Phonesinit.sh	col		ipcs		regcmp		vdiag
Qbackup.sh	comb		ismpx		remsh		vdkill
QdsplSS		comm		join		rlogin		vdprint
QgetFtype	crypt		jterm		rmchg		vdsnap
Qgetovwrit	csetup		jwin		rmdel		vdstart
Qinfo.sh	csplit		layers		route		vdump
QmakeLmenu	cu		lex		ruptime		ve
QmakessList	cut		lint		rwho		ve_t
Qpartial.sh	cw		logname		sact		vevents
QprintSS	cxref		lp		sccsdiff	vfmtupd
Qreport		dbuf		lpinfo		scrset		vfmtupd.sh
Qrestore.sh	dc		lpsetup		sdb		vi
Qrestore.sh-or	deQuote		lpstat		sdiff		view
QsetBegin	delta		m4		setdate		vlog
QskipNext	deroff		macref		setgetty	voice_news
RS232.sh	diff3		mailq		setprint	voicecards
RSfree.sh	diffmk		mailsetup	setuname	voiceupd
Restore.sh	dircmp		mailx		shapewin	vplay
Showsoft.sh	disable		man		shform		vrecord
Tape		edit		md_format	shform.sh	vringtest
Tbackup.sh	edlibuucp	md_write	sp_print	vtts
TdsplSSs	egrep		message		spell		vwait
Tformat.sh	enable		mm		split		wfc
TgetFtype	erricon		more		spr		what
TgetOffsets	ex		msdos		sprint		xargs
Tgetname	execStrip	ndx		subj		xtd
Tgetovwrit	extractname	neqn		tabs		xts
Tinfo.sh	factor		netstat		tapecpio	xtt
TmakeLmenu	fc		newform		tar		yacc
Tmakedesc	fdfmt.nl	newform.sh	tbl		zap
TmakessList	fdfmt.sl	newwind		telnet
TprintSS	fdfmt.vl	nl		tftp
Trestore.sh	fdfmt10.nl	nroff		tic
Trestore.sh-or	fdfmt10.sl	o_ve		tput
ksh 3957/3958> file m4 mailx tic vi
m4:		mc68k executable (shared demand paged with shared library) 
mailx:		mc68k executable (shared demand paged) -n (0410 read-only) 
tic:		mc68k executable (shared demand paged) 
vi:		mc68k executable (shared demand paged) 
ksh 3957/3958> cd /bin
ksh 3957/3958> ls
OLDrmail	dirname		lmail		passwd		sum
adb		du		ln		pdp11		sync
ar		dump		login		pr		tail
as		echo		lorder		ps		tee
basename	ed		ls		pwd		telinit
cat		env		lx		red		time
cc		expr		mail		rm		touch
chgrp		false		mail.original	rmail		true
chmod		fgrep		make		rmdir		tset
chown		file		mc68k		rsh		tty
clear		find		mesg		sdb		u370
cmp		grep		mkdir		sed		u3b
convert		hd		mld		sh		uname
cp		head		mv		size		vax
cpio		kill		netlogin	sleep		wc
csh		ksh		newgrp		smail		who
date		ld		nice		sort		wnlessmsg
dd		lf		nm		strip		write
df		line		nohup		stty
diff		ll		od		su
ksh 3957/3958> file ls sort smail grep
ls:		cannot open for reading
sort:		mc68k executable (shared demand paged with shared library) 
smail:		mc68k executable (shared demand paged) 
grep:		mc68k executable (shared demand paged with shared library) 
ksh 3957/3958> ll ls
---x--x--x  5 bin     bin        8596 Jan  1  1970 ls
ksh 3957/3958> su
Password:
ksh-su 3958/4525# file ls
ls:		mc68k executable (shared demand paged with shared library) 
ksh-su 3958/4525# 
ksh 3957/3958> cd /usr/local/bin
ksh 3957/3958> ls
arc		fdwrite		lastlogin	pcomm_input	sz
bison		flopcp		loglook		purge		today
bl		flopfmt		mapmem		rb		uncompress
cdraw		flopmkfs	mdel		remcr		utc7300
cktime		flopstat	mdir		rename		utc7300.sh
compress	fsizes		mmd		rx		uudecode
ctags		ftimes		mrd		rz		uustatus
diskfree	fuser		mread		sb		uutraf
dpasswd		gcc		mren		setlp		vitals
dstconvert	hdwarn.day	mtype		shar		xcal
du-logs.day	indent		mush		slogin		xdump
elock		isroot		mwrite		strings		zcat
emacs		kermit		patch		sudo		zoo
etags		kshpr		pathalias	sx
fdread		lastboot	pcomm		sysinfo
ksh 3957/3958> file arc bison emacs patch shar strings sz utc7300 zoo
arc:		mc68k executable (shared demand paged with shared library) 
bison:		mc68k executable (shared demand paged) 
emacs:		mc68k executable (shared demand paged) 
patch:		mc68k executable (shared demand paged) 
shar:		mc68k executable (shared demand paged with shared library) 
strings:	mc68k executable (shared demand paged with shared library) 
sz:		mc68k executable (shared demand paged with shared library) 
utc7300:	mc68k executable (shared demand paged with shared library) -F (0413 de
mand paged) 
zoo:		mc68k executable (shared demand paged) 
ksh 3957/3958> ps -ef
    UID   PID  PPID  C   STIME  TTY  TIME COMMAND
   root     0     0255  Jun 11    ? 4451:50 swapper
   root     1     0  3  Jun 11    ?  0:13 init
   root     2     0  3  Jun 11    ?  0:01 pagedaemon
   root     3     0  3  Jun 11    ?  1:27 windaemon
   root  1067     1  3  Jun 12   w1  0:01 getty
   root  1779     1  3  Jun 12    ?  0:00 uugetty
 listen  3957   262  3 00:19:22  p0  0:00 sl
   root   242     1  8  Jun 11   w5  7:08 smgr
     lp   220     1  3  Jun 11    ?  0:00 lpsched
   root   124     1  3  Jun 11    ?  0:00 telnetd
   root   104     1  3  Jun 11    ?  0:00 rasdaemon
   root   126     1  3  Jun 11    ?  0:00 ftpd
   root   128     1  3  Jun 11    ?  0:47 rwhod
   root   130     1  3  Jun 11    ?  0:00 fingerd
   thad  3958  3957  3 00:19:23  p0  0:38 ksh
   root   229     1  3  Jun 11   w3  0:19 ph
   root   253     1  3  Jun 11  001  0:01 uugetty
   root   254     1  3  Jun 11    ?  0:01 uugetty
   root   238     1  3  Jun 11   w4  0:02 wmgr
   root   248     1  3  Jun 11    ?  0:05 loadavgd
   root   255     1  3  Jun 11    ?  0:00 uugetty
 listen   262     1  3  Jun 11    ?  0:01 listen
   thad  4482  3958115 02:44:59  p0  0:03 ps
ksh 3957/3958> ls /lib
ccom		crt0.o		ifile.0413	libld.a		optim
cpp		crt0s.o		libPW.a		libm.a		shlib
cpp-gcc		ifile.0407	libc.a		libp		shlib.ifile
cpp-stock	ifile.0410	libg.a		mcrt0.o
ksh 3957/3958> ls /dev
console		ph0		rfp01f		v_phone0	voice6
error		ph1		rfp020		v_phone1	voice7
fdswap		psx		rfp021		v_phone2	w1
fp000		ptyp0		rft0		v_phone3	w10
fp001		ptyp1		rft3		v_phone4	w11
fp002		ptyp2		rmt0		v_phone5	w12
fp003		ptyp3		rmt1		v_phone6	w2
fp004		ptyp4		rmt2		v_phone7	w3
fp005		ptyp5		rmt4		v_recda		w4
fp006		ptyp6		rmt6		v_recda0	w5
fp007		ptyp7		starlan		v_recda1	w6
fp008		rawlp		swap		v_recda2	w7
fp009		rfp000		syscon		v_recda3	w8
fp00a		rfp001		systty		v_recda4	w9
fp00b		rfp002		tcp		v_recda5	window
fp00c		rfp003		tty		v_recda6	xt000
fp00d		rfp004		tty000		v_recda7	xt001
fp00e		rfp005		tty001		v_ring		xt002
fp00f		rfp006		tty002		v_ttsda		xt003
fp010		rfp007		tty003		v_ttsda0	xt004
fp011		rfp008		tty004		v_ttsda1	xt005
fp012		rfp009		tty005		v_ttsda2	xt006
fp013		rfp00a		tty006		v_ttsda3	xt007
fp014		rfp00b		ttyp0		v_ttsda4	xt010
fp015		rfp00c		ttyp1		v_ttsda5	xt011
fp016		rfp00d		ttyp2		v_ttsda6	xt012
fp017		rfp00e		ttyp3		v_ttsda7	xt013
fp018		rfp00f		ttyp4		v_vcc		xt014
fp019		rfp010		ttyp5		v_vcc0		xt015
fp01a		rfp011		ttyp6		v_vcc1		xt016
fp01b		rfp012		ttyp7		v_vcc2		xt017
fp01c		rfp013		udp		v_vcc3		xt020
fp01d		rfp014		v_ctrl		v_vcc4		xt021
fp01e		rfp015		v_ctrl0		v_vcc5		xt022
fp01f		rfp016		v_ctrl1		v_vcc6		xt023
fp020		rfp017		v_ctrl2		v_vcc7		xt024
fp021		rfp018		v_ctrl3		voice		xt025
kmem		rfp019		v_ctrl4		voice0		xt026
lp		rfp01a		v_ctrl5		voice1		xt027
mem		rfp01b		v_ctrl6		voice2
net		rfp01c		v_ctrl7		voice3
null		rfp01d		v_mac		voice4
p0		rfp01e		v_phone		voice5
ksh 3957/3958> ls /etc/lddrv
InstDrv		ether		ifile.starlan	o_voice.o	voice.o
ate		ether.o		ifile.tp	qt.o		voice30.o
ate.o		ether.rc	ifile.voice	starlan		voice35.o
cmb		ether.rc-new	ifile.wind	starlan.o	wbrast.nl
cmb.brc		fpa.o		ifile.xt	starlan.rc	wind
cmb.o		ifile.ate	lddrv		tp		wind.o
cmb.rc		ifile.cmb	lipc		tp.o		xt
cmbpcnt		ifile.ether	lipc.o		unix.sym	xt.o
cmbupd		ifile.lipc	mkifile		unix.syma
drivers		ifile.qt	nipc.o		voice
ksh 3957/3958> 

Thad Floryan [ thad@cup.portal.com (OR) ..!sun!portal!cup.portal.com!thad ]

ath@lcs.mit.edu (Andrew Heybey) (06/15/90)

In article <CHUCK.PHILLIPS.90Jun14140200@haydn.FtCollins.NCR.COM> Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips) writes:

  Daniel> Also, remember that if you get Unix, you will need high performance disk
  Daniel> storage.  EVERYTHING that Unix does requires an access to the disk.

  Very true.  Question: Does the C= (or any other) Amiga SCSI controller
  suport "synchronous" SCSI?  I seem to recall the difference in maximum
  throughput being more than a factor of 3.  (BTW, the Quantum 110MB drives
  support this.)

If we can believe Dave Haynie (personally, I believe *everything* that
Mr. Haynie says :-), the disk performance of the 3000, at least, is
limited by the disk.  Furthermore, DEC's PMaxen (just as one example)
get perfectly acceptable disk performance out of an asynchronous SCSI
disk while running Unix.  Therefore, an A3000 should do just fine
disk-performance-wise running Unix.

andrew
--
Andrew Heybey, ath@ptt.lcs.mit.edu, uunet!ptt.lcs.mit.edu!ath

daveh@cbmvax.commodore.com (Dave Haynie) (06/16/90)

In article <CHUCK.PHILLIPS.90Jun14140200@haydn.FtCollins.NCR.COM> Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips) writes:

>Very true.  Question: Does the C= (or any other) Amiga SCSI controller
>suport "synchronous" SCSI?  I seem to recall the difference in maximum
>throughput being more than a factor of 3.  (BTW, the Quantum 110MB drives
>support this.)

The A3000 controller definitely does, I don't know about the other Commodore
controllers.  The transfer rate is a max of about 1.5 MB/s for asynchronous 
SCSI, a max of around 4-5 MB/s for synchronous SCSI.  The A2000 bus bandwidth
is about 3.75 MB/s, the A3000 SCSI device runs about 20 MB/s.  The Commodore
software never requests synchronous operation, since apparently some drives
that don't support it lock up when polled for it.  A simple program can use
the scsi.device to explicitly ask for it if you know your drive supports it.
Steve Beats could supply all the ugly details.

>Chuck Phillips  MS440


-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
	"I have been given the freedom to do as I see fit" -REM