Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!POSTGRES.BERKELEY.EDU!dillon From: dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga Subject: Re: OS/2 vs AmigaDOS (also OS/2 vs. UN*X) Message-ID: <8905200513.AA20742@postgres.Berkeley.EDU> Date: 20 May 89 05:13:07 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 55 :2. about UNIX : : From the above you can see, we use many different UN*X : machines. : : The problem with UN*X is the response time. It is a multi-user : operating system, that causes waiting for mouse operations or : for echoing typed characters on heavy load. : Sometimes you have to wait for the mouse even if you are the only : user actually logged in. : This is because UN*X wants to give every process in the system : (e.g. printer spooler, network daemon, background compile,...) : the same part of CPU time as the foreground dialog process. This is a common misconception due to SUN's really bad software implementation for its mouse. A uVax, for example, does it in hardware. You are right about real-time response, but the mouse is not a good example. Even so, lack of resources on whatever machines you are used to will make for bad comparisons. It really is unfair to compare mouse response on, say, a 4MB diskless SUN which pages over ethernet vs a standalone microcomputer. Reality check: having local disk on a UNIX workstation makes a big difference. Having enough memory on a UNIX workstation makes a big difference when starting up processes as well. Example: I often use a 12MB diskless SUN 3/60 which pages over the ethernet and the mouse almost never freezes (and this is with the really bad sun mouse drivers!)... the response can be jerky at times (say, your running two XTrek's), but otherwise no big problems. (oh yah, this is running X11-R3). :3. about multitasking and fork()/exec() : : fork() under UN*X is behind the concepts of threads in OS/2, because : it needs duplication of assigned memory space. : fork() is normally used for two purposes: : : - setting up a process for doing some tasks in parallel : This can be done by threads in a more efficient and clearer way. : : - running an other program (like the shell) : In UN*X it needs first duplication using fork() and then : overlaying the process using exec(). : In OS/2 you can do the same using only spawn() in C : or DosExecPgm(). Normally one uses vfork() for the second case, and frankly having to make two systems calls instead of one is 0 trouble considering that you can always write a 3 or 4 line spawn() function that simply does a vfork/exec or even just a popen(). :Any comments are welcome. : :Birger :-) -Matt