Who's out tomorrow then?



in message <[email protected]>, David Martin
('[email protected]') wrote:

> Simon Brooke wrote:
>> in message <[email protected]>,
>> Sniper805 (L96A1) ('[email protected]') wrote:

>
>>>Only Macs are truly multi-tasking, others just peer through windows
>>>darkly and mutter incantations.

>
>> Beware of the technically illiterate. Current generation Macs are
>> essentially similar the the NeXT boxes of fifteen years ago - they
>> use a Mach kernel inside a broadly BSD based shell, with a pretty
>> proprietary graphical skin on top of that. The kernel 'multitasks' by
>> time slicing. This is similar to any other UN*X, or to any Windows NT
>> or XP.

>
> Except that you can log out and leave processes running on a Unix. XP
> (IME) seems to suspend desktop processes if you log out.


You _can_ under UN*X, but not by default; you have to nohup(1) the
process, and most ordinary users don't know how to do this. Otherwise
the process will receive SIGHUP when the parent process exits, and
should exit in turn.

Similarly there's a mechanism in Windows NT/XP which allows you to do
this, and shortly some Windows geek will be along to tell us how.

However, the dependence of processes on their parents is orthogonal to
the question of multitasking. Machines with a single processor core
cannot truly multitask because the core can only be executing one
command from one execution thread at a time. Multi-processor machines
can multitask but only up to the number of processors which they
actually have. In practice the vast majority of modern machines use
time-slicing to simulate multitasking. UN*X derivatives (including
MacOS X and Linux) and VMS derivatives (including Windows NT and XP) do
this in an essentially similar manner - a supervisor process allows
each active process so many cycles of the processor in turn, in a
system known as 'time slicing' or 'preemptive multitasking'. Older
multi-tasking systems including RISC-OS and earlier generations of
MacOS (and I think Windows 395/98/ME) used 'co-operative multitasking'
where each program is supposed to voluntarily yield control every so
often so that other processes could get a shot.

> And I thought the comment was quite funny, even if it was not strictly
> correct (or even non-strictly correct).


Well, it possibly was. I may be feeling unusually sour at present. It
is, as Noddy Holder would no doubt point out, Christmas.

--
[email protected] (Simon Brooke) http://www.jasmine.org.uk/~simon/

;; better than your average performing pineapple
 
Simon Brooke wrote:
> You _can_ under UN*X, but not by default; you have to nohup(1) the
> process, and most ordinary users don't know how to do this. Otherwise
> the process will receive SIGHUP when the parent process exits, and
> should exit in turn.
>
> Similarly there's a mechanism in Windows NT/XP which allows you to do
> this, and shortly some Windows geek will be along to tell us how.


My Linux box[1] does this automagically. I only realised that you had
to do it when I was using Edinburgh uni machines.

Jon

[1] Boxes actually, both running Slackware 10. Impressively however, I
seem to have totalled my webserver while attempting to ftp some files
onto it. For no obvious reason it died, and with it... the route into
my workstation from my parents. Bugger!
 
Simon Brooke wrote:


> You _can_ under UN*X, but not by default; you have to nohup(1) the
> process, and most ordinary users don't know how to do this.


Of course unix newbies don't come pre-programmed with such knowledge at
birth, but I'm sure that just about everyone who has reason to do such
things learns about it pretty quickly!

James
--
If I have seen further than others, it is
by treading on the toes of giants.
http://www.ne.jp/asahi/julesandjames/home/