Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site lanl.ARPA Path: utzoo!linus!philabs!cmcl2!lanl!jlg From: jlg@lanl.ARPA Newsgroups: net.arch Subject: Re: Virtual mem Message-ID: <34595@lanl.ARPA> Date: Tue, 10-Dec-85 16:31:35 EST Article-I.D.: lanl.34595 Posted: Tue Dec 10 16:31:35 1985 Date-Received: Wed, 11-Dec-85 22:10:29 EST References: <34548@lanl.ARPA> <2511@umcp-cs.UUCP> Reply-To: jlg@a.UUCP (Jim Giles) Distribution: net Organization: Los Alamos National Laboratory Lines: 41 Summary: In article <2511@umcp-cs.UUCP> mangoe@umcp-cs.UUCP (Charley Wingate) writes: >>I know about all the advantages of bounds checks etc. But on big machines >>I've been without them for so long that I hardly miss them except during >>code development. A production code runs correctly doesn't it 8-)? > >This is fine in systems where there isn't malicious code. In commercial >applications, one must assume there is deliberately destructive code. All machines have SOME bounds checking (even some microprocessors these days). The purpose is mainly to prevent one process from refering to data that belongs to some other process (ie. destructive code must go into the 'privileged mode' in order to access code or data belonging to other processes). It should also be noted that most things like bounds checks, shared memory segments, and the like can exist without any paging. >There are lots of programs, however, which do not consist of a huge table >with a little bit of code hanging off the side. Consider an event-driven >simulation program. A significant fragment of the code is going to be >simply looking for the next event. A relatively small area of the data is >going to be exercised disproportionately. THis even more true of data >retrieval systems. These programs tend to have data swapping built into >them (since they tend to allow for unlimited expansion through the use of >files), so why should there be an objection to using paging? All that you are saying is quite true. I have no objection to paging schemes for the types of applications you describe. In fact, if paging didn't slow down the types of codes we run here, I would have no objection to it at all. Hardware should be selected for those features which best run the type of workload that you have. Paging is just another of those features with strengths and weaknesses like any other - but some people on this network don't seem to realize that virtual memory has weaknesses. By the way, virtual memory does not allow for 'unlimited expansion'. I know people with jobs that routinely access sets of files that hold more than the entire virtual memory space of most byte addressable machines (VAXen and the like). For them, virtual memory is just another form of offline store with a set of limitations similar to any other. J. Giles Los Alamos