Newsgroups: comp.sys.transputer
From: teig@autro1.UUCP (Oyvind Teig)
Subject: Transputer scheduling, summary?
Organization: Autronica A/S, Trondheim, Norway
Date: 22 Sep 94 08:02:03 GMT
Message-ID: <183@autro1.UUCP>

Transputer scheduling

Could a specialist out there please proof-read this for me?
(It is part of internal documentation). I have tried to extract
what I have read, still all the words need not be right..

The transputer scheduling is based on two priorities plus external
event. A high priority process will execute until it terminates or waits
for a timer or communication event to take place. This is the same as
saying that it comes to a descheduling instruction. A low priority
process will be pre-empted  by any high-priority process becoming
ready to execute. A low priority process will be timesliced when it
comes to a Jump or Loop End instruction after it has executed for
more than its time-slice (1024 mS). Of course, it may be pre-empted
before that if it comes to any descheduling instruction. Some
instructions are *interruptable*, like Block Move. This is not the same as
the *interrupt* in other processors, which is called an external event in
the transputer world. It means that a low-priority process running a
Block Move, may be put aside if a high priority process becomes ready
to run. All in all, this adds up to a very smooth running of the
processes.
Observe that semicolon (";") and counted arrays ("size :: array")
in occam PROTOCOL usage are implemented with descheduling
instructions.

0.Teig
Autronica
22.9.94

