Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!pt.cs.cmu.edu!andrew.cmu.edu!zs01+ From: zs01+@andrew.cmu.edu (Zalman Stern) Newsgroups: comp.realtime Subject: Re: Lightweight Tasks Message-ID: Date: 27 Jul 89 17:36:18 GMT References: <2153@gmu90x.UUCP> <129300004@p.cs.uiuc.edu>, <1244@atanasoff.cs.iastate.edu> Organization: Information Technology Center, Carnegie Mellon, Pittsburgh, PA Lines: 31 In-Reply-To: <1244@atanasoff.cs.iastate.edu> I have to disagree with Jim Gillies' description of lightweight tasks. I have always heard the term used to describe an entity which has a stack and a register set (including the program counter). A lightweight task does not have its own address space or other context (i.e. signal masks, uid, file descriptor table etc...) Light weight tasks are often called threads (e.g. MACH, Concert MultiThread architecture, Modula 3), or LWPs for Light Weight Processes. This definition is consistent with the usage of the terms in MACH, various Xerox projects, work from DEC Systems Research Center including modula-3, Concert MultiThread architecture which originated at DEC Western Research Lab (I think), Synthesis (from Columbia), and various products from companies like Apollo and Sun. My understanding is that lightweight tasking predates UNIX' popularity by quite a bit. Especially if you consider coroutine schemes to be LWP systems. (The internals of coroutines and non-premptive LWPs are just about identical.) In any event, it is not a valid comparison to RISC vs. VAX in that lightweight processes solve different problems than UNIX processes. Most systems that support LWPs also have heavy weight processes or "address spaces" to allow one to partition subsystems so that they cannot access each other's memory. (This last comment does not apply to systems which don't have virtual memory.) Finally, there are implementations of LWP done using UNIX processes and shared memory to emulate multiple threads of control within a single address space (i.e. Xerox PCR). With a decent UNIX implementation (some of which do exist), this solution has acceptable performance. Sincerely, Zalman Stern Internet: zs01+@andrew.cmu.edu Usenet: I'm soooo confused... Information Technology Center, Carnegie Mellon, Pittsburgh, PA 15213-3890