Subject: Re: What is happening with libpthread???
To: None <current-users@NetBSD.ORG>
From: der Mouse <mouse@Holo.Rodents.Montreal.QC.CA>
Date: 01/23/1997 16:04:25
>> What is the difference between multi-tasking and multi-threading?
Depends on whose definitions you pick. :-)
> Well, multi-tasking is the ability to run more than one process. A
> process has its own address space, among other things.
I would say that multi-tasking is an ill-defined informal term,
referring to the ability to run more than one "task", where "task" is a
fuzzy conceptual term rather than the strict technical term some
systems use it as. For example, an 8086 with some DOS TSRs hooked into
the clock interrupt could reasonably be called multi-tasking (a
rudimentary form, to be sure, but still).
Multi-threading too I would say is an ill-defined informal term, except
in environments where "thread" is a technical term.
So how would I answer the original question? I'd say that
multi-tasking is something that can more or less be taken for granted
in operating systems nowadays and hence is interesting only in embedded
environments, analogical applications such as to wetware, and the like.
Multi-threading I would use and understand to refer (absent conflicting
context, of course) to a particular variety of multi-tasking where some
of the threads-of-control share significant fractions of the other
resources associated to them, the commonest example being sharing
address space (at least the text and data segments). There is usually
also an implication that a thread is lighter weight than a process,
task, or whatever the other term is. Sometimes, as in Mach, there is a
hierarchy, where a "task" (or whatever) is made up of an address space,
some other information (eg, an open file descriptor table), and zero or
more (perhaps one or more, again depending on the system) "threads",
each "thread" being a machine-state object, usually a register set
(including program counter).
If all that sounds vague and fuzzy, well, that's because the terms, at
least to me, have somewhat vague and fuzzy meaning.
7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B