[comp.sys.transputer] Scheduling question / Archives

K312240@AEARN.BITNET (Klaus Kusche) (01/07/91)

Dear Mailing List:

First of all, some remarks about a question I recently received:

>To: K312240@aearn.bitnet
>Subject: I think you may be able to help.....
>Newsgroups: comp.sys.transputer
>Date: Mon, 17 Dec 90 18:43:50 GMT
>From: Ian.Nandhra@specialix.co.uk
>Sender: Ian.Nandhra@specialix.co.uk
>
>Hello,
>
>As the subject says......
>
>I have a number of low priority processes which MUST NOT timeslice.
>At present, it all seems to work, but a recent bug seems to imply
>that one of them is timeslicing - with nasty and fatal side effects.
>
>What I need is a method of forcing the process to excute until
>it deschedules on a Channel (or blocks....) but WITHOUT
>timeslicing. Since we are programming in 'C' (the new Inmos compiler),
>I cannot prevent CALLS and `j` instructions from being used (ok, ok
>I can stop the calls, but not the `j`)
>
>Have you any suggestions???
>
>Thanks in advance,
>
>Ian.

The following is all out of mind (and was a long, long time ago),
so it may not be correct - beware:

1.) Call is not dangerous I think, only unconditional jump and
loop end are scheduling points, and to my knowledge, loop end is
not generated by the C compiler.

2.) The 'official' advice by inmos is that jumps should be replaced
by constant conditional jumps or gcall's - hard for compiler-
generated code.

3.) The dirty way is (never tried it) to avoid initializing the timers
in the bootstrap code, i. e. to make sure that no store timer is ever
executed.

The timers start running only after they have been stored for the first
time. Before that, there is no timeslicing at all (this makes sense,
because each rom bootstrap starts with a jump, and timeslicing at that
jump (or any other jump before initializing the queue registers) would
surely be fatal. Also, it is sometimes nice to be allowed to e. g.
test the memory before allowing timeslicing).

The bad news is that there is no way to stop the timers again once they
have been started -- not even the undocumented reset instruction will
disable them (this is why all attempts to reset a transputer by
software or emulate the boot sequence with a small program are guranteed
to fail).

4.) I think that there were rumours that Inmos improved the situation
for the T425/T801/T805 generation by adding some (undocumented?)
instructions, but I don't know anything about it.

5.) I know of no other way to avoid timeslicing, even messing around
with the quere registers will most likely not help: Even if there is
only a single low-priority process, it will save and reload its state
at each timeslice point (i. e. timeslice to itself) instead of ignoring
the timeslice and executing a normal jump.

Hence, after timeslicing was started, at any jump or loop end
* the workspace pointer must point to a valid address
* the register contents may be lost
* the workspace location -1 may be overwritten
* ...
even if there is only a single low priority process!

*****

Secondly, there were several questions about the inmos archive server
on the list around Xmas. I will include the Inmos help file after the
signature...

Greetings

************************************************************************
* Klaus Kusche                                                         *
* Research Institute for Symbolic Computation                          *
* Johannes Kepler University           Tel: +43 7236 3231 67           *
* A-4040 Linz                          Telex: (Austria) 22323 uni li a *
* Austria (Europe)                     Fax: +43 7236 3338 30           *
*                                                                      *
* Bitnet:           K312240@AEARN                                      *
* Arpa/CS/Internet: K312240%AEARN.BITNET@CUNYVM.CUNY.EDU               *
* UUCP:             mcsun!aearn.bitnet!K312240                         *
* Janet:            k312240@earn.aearn or k312240%aearn@earn-relay     *
************************************************************************


>From: US TECHNICAL SUPPORT <SUPPORT@isnet.inmos.com>
Subject: Archive server for transputer users

This message announces the establishment of an Transputer Archive service at
Colorado Springs, USA, for transputer support.  This service will support the
remote retrieval of Transputer related files from this archive.  Archives will
be added as information requirements are identified.  The current archives are
the "checkpc" archive which contains executable tools for transputers hosted
in PC systems, "checksun3" which contains executable tools for transputers
hosted in Sun 3 systems, and "checksrc" which contains the source files for
the tools in the other two archives.

Current Software bulletins are there also. These describe known problems,
bugs, workarounds in our current product software.

The Transputer Archive-Server may be accessed by sending a mail message
to archive-server@inmos-c.inmos.com.  If you send a message with the
the following commands (one per line):

 directory
 help

you will get a response which will contain a directory of all files in the
archive and a message containing an explanation of all of the commands
needed to process messages in the Transputer Archive.

Comments and problems can be sent to Tony Schneider at

tonys@inmos.com.

We are investigating EMAIL as a software support medium :-

If you are interested in being a recipient of buglists, etc.
please send a message to tonys@inmos.com - DO NOT REPLY TO THE
MAILING LIST, OR FOLLOWUP ON THE NET (ugh)  with the following :-

Your Name,
Company,
INMOS software product you use,
and EMAIL address.

Be warned - you may also receive (some) promotional EMAIL on our
new products, new software versions, etc.

Andy Rabagliati - INMOS US Central Applications
EMAIL:- rabagliatia@isnet.inmos.COM


>From: Tony Schneider <tonys@inmos.com>

The Transputer Archive-Server is an automated data service whose email address
is archive-server@inmos.com.  This server contains bulletins for transputer
software and copies of public domain software related to transputers.  This
server is continually updated.  The contents of the Transputer Archive-
Server include:

1.   The cprot archive which contains source code for a utility program which
     a) converts Occam Constants to C defines
     b) generates C code to interpret Occam protocols
2.   The Check archives (checkocc, checkpc, checksrc, checksun3, checksun386i,
     and checksun4) contain the programs comprising the Check utility suite
     of programs for various host systems.
3.   The disassembler archive contains the source code and a PC
     executable for a transputer code disassembler.
4.   The transputer demonstration archive (demos) contains demonstration
     programs for the transputer.
5.   The forth archive which contains documentation, source code, and executable
     files for a forth interpreter for transputers.
6.   The iris archive contains C source code and a makefile to support the
     development of a Silicon Graphics Iris host to transputer interface on
     B014 and Paracom/Parsytec boards.
7.   The iserver archive contains "C" source code and makefiles for the
     transputer iserver.
8.   The Origami archives (origami, and origamip) contain source code
     and PC executable code for the Origami folding editor.
9.   The PROM loader (promldr) archive contains source and executable files for
     program which lets you test a "boot-from-PROM" program on a "Boot-from-
     link" transputer.
10.  The s706beta archive contains a software package which will convert toolset
     code files to a form which can be loaded into eprom programmers.  This
     archive contains a subarchive with the source code.
11.  The supervis archive contains an Occam program which measures how "busy"
     a transputer is.  This archive contains the source code and documentation.
12.  The unixoccam archive contains a compressed TAR file for a Unix Occam
     compiler which generates executable code for the DEC 11 series computers.
     This is the compiler that was written by "Gil" and posted to the net (we
     would like to give full credit to the author but our news expired the
     original messages and we cannot find the author's name on any of the
     traffic relating to the compiler).
13.  The yank (Yet Another Network Konfigurer) archive contains documentation,
     executable code, and source code for a utility that generates transputer
     network configuration files from the output of the Check program (which
     is also stored in the archive-server).

In addition to these new archives, one new command has been added to the
server.  The "product" command will retrieve all software bulletins associated
with a particular product.  For instance the command

     product D705A

will retrieve all software bulletins related to the D705A.  Please note that
 theletters in the product identifier must be upper case if this command is to
 find
the products.

Many of the commands to the archive-server will generate large amounts of data.
Therefore we recommend you use the "pack" or "archive" commands to compress the
files.  The archive server currently supports the Unix compress utility and the
zoo and lharc archivers which compress files.

If you need additional information on using the Transputer Archive-Server, send
a message with the command

     help

in the message body to archive-server@inmos.com and the server will send a
file listing the commands and procedures for using this server.



>From: ANDY RABAGLIATI <RABAGLIATIA@isnet.inmos.com>
Subject: Origami - a folding editor in C

Charlie Lawrence of Kodak has spent much time cleaning up the port
of Origami to C, and has sent me his efforts. Thanks.

The source of Origami is now available from our archive server.

archiver tar
pack compress
send origamic

sent to archive-server@inmos.COM will get you the necessary as
a compressed tar file.

zoo and lharc are also available - please use compression - we pay bills !!

Cheers,  Andy Rabagliati    EMAIL:- rabagliatia@isnet.inmos.COM