Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!uccba!uceng!dmocsny From: dmocsny@uceng.UC.EDU (daniel mocsny) Newsgroups: comp.arch Subject: Re: Memory utilization & inter-process contention Summary: Special purpose vs. general purpose; fragmentation Message-ID: <2108@uceng.UC.EDU> Date: 7 Sep 89 21:19:40 GMT References: <1114@aber-cs.UUCP> <278@baird.cs.strath.ac.uk> <2089@uceng.UC.EDU> <45344@bbn.COM> Organization: Univ. of Cincinnati, College of Engg. Lines: 59 In article <45344@bbn.COM>, slackey@bbn.com (Stan Lackey) writes: > [A] fundamental [law] ... is "special purpose > is always cheaper than general purpose [to do the same specific job]". > In other words, if you want the best paging performance on a VAX, you > get VMS. Because UNIX is a general purpose tool, ie it was made to > run on anything, it can't be as good on a specific box as an OS that > was written and tuned to run on that specific box and nowhere else. Agreed. But why can't the hardware be tuned to run UNIX? Why build interesting hardware first, and then almost as an afterthought put an OS on it that is going to give users a porting nightmare? Another question is this: is *every* difference between VMS and UNIX essential to the superior paging performance of VMS on VAX? In other words, *how much* UNIX do we have to give up to get that paging performance, compared to how much we are giving up? > Giving up something is required for generality; no general purpose > machine is going to run FFT's as fast as an FFT box that costs the > same. Ah, but not all incompatibilities provide any clear-cut benefit. Indeed, I think the opposite situation is more common. Consider the proprietary minicomputer market. Can any truly disinterested observer claim that all the fragmentation there leads to any significant functional differences? I'm certain some exist, but in the real world can they really justify the massive loss to users caused by reduced software availability, porting problems, heterogeneous network nightmares, and so on? In another newsgroup, I proposed the notion of horizontal vs. vertical fragmentation. Certainly as technology advances, we cannot expect to indefinitely remain compatible with obsoleting hardware, protocols, etc. The incompatibility resulting from advancing technology I call vertical fragmentation. This is an essential cost of progress, which the gains of progress offset. On the other hand, when several vendors follow arbitrary and incompatible paths to yield systems of roughly equivalent performance, they have horizontally fragmented the market. One does not need great imagination to list hundreds of examples of this. Just look around any multi-vendor shop. Horizontal fragmentation yields possible short-term competitive advantages to some vendors at the cost of greatly increased artificial complexity to the user. This reduces the amount of wealth the user can generate, ultimately reducing the size of the overall market for all vendors. Finally, computers are, after all, general-purpose devices. Unless you are building embedded controllers or selling to users with high technical sophistication and stable plans, you face another fundamental law: Most people have no real idea of all the things a computer can do for them until they actually try them. If a computer doesn't act as a window into the wider work of the programming community, the user will simply fail to learn about all the unforeseen benefits available out there. Again, this translates into lost wealth to the user, leading to a smaller market for the vendors. Dan Mocsny dmocsny@uceng.uc.edu