[RC5] Amiga task priorities

Ilmari Karonen iltzu at sci.fi
Sat May 8 02:36:31 EDT 1999

[Subject changed in this sub-thread too]

On Thu, 6 May 1999, Thomas Tavoly wrote:
> No. Various system parts (tasks/libraries/ports/residents/semaphores/etc)
> and 'special' processes need to be lower for various reasons, I'm sure the
> RKRMs specify what ranges you should and should not use depending on what

Let's see.. <pulls out RKRMs, blows off dust, browses around> Nope, can't
find anything like that. Anyway, I can't recall there being any such
system tasks, at least not on my Amiga.

Now on the positive half of the priority range there are indeed some
limitations, but even on the Amiga the general rule "you can harm no-one
but yourself by being nice" should apply.

> you need to do. The RC5 client is a user task and as such should not be run
> at extreme priorities. Since almost everything you use as 'applications'

I think you're stretching the definition of "user task" a bit too far. The
network and user interface should certainly run at priority 0, but the
cracker task[1] itself is a background job and should be literally below
everything else in the queue.

>  > And with the Amiga task switcher following the priorities so strictly,
>  > doesn't that mean *nothing* below priority -20 *ever* runs while the
>  > client is active?
> No, it doesn't. There is this wonderful thing called forbid() (<boo> <hiss>
> from the audience ;) and I'm sure other mechanisms which I'm not privy to.

*boggle* Did you read what you quoted crefully enough? What Forbid() does
is stop temporarily stop multitasking, approximately[2] equivalent to
SetTaskPri(FindTask(0L), 127).

It doesn't change the fact that any task with a priority lower than that
of the d.net client has little chance of ever gaining control of the CPU,
even for the time needed to call Forbid(). ;-)

 [Mention of Executive snipped - I've never used it, so I can't really
  comment on that part.]

> typically run much higher (above 0 anyway). I haven't seen anything
> suffering from the client yet, which runs at -10 here.

You're probably right, it's rather pointless to start a flamewar over such
a petty detail. But I already did provide an example in another post of a
program which I think would suffer.

> Every little bit counts. There are 36 020's currently in use by the Amiga

I know that, but the client would eat too much of my 2Mb of RAM to make it
practical.. :-(

[1] I'm assuming that the Amiga client is multithreaded[3], right?
[2] Except for nested Forbid()s and explicit or implicit Wait()s.
[3] There's no distinction between lightweight threads and full processes
    on the Amiga - given the simplicity of the system, all Amiga tasks are
    perhaps closer to the former category.

<-- Ilmari Karonen --><-- http://www.sci.fi/~iltzu/ --><-- iltzu at sci.fi -->
"I am a student at UC Berkeley, and I am taking this class where we have to
go to a news group and ask an "intelligent question"."  -- a luser in a.a-a

To unsubscribe, send 'unsubscribe rc5' to majordomo at lists.distributed.net
rc5-digest subscribers replace rc5 with rc5-digest

More information about the rc5 mailing list