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