BAP Online Manuals : BAP Overview : Introduction : Frequently Asked Questions
Previous: Things you MUST know!
Next: BRAIN AID SYSTEMS

1.2.3. Frequently Asked Questions

Do you have a question? If you do not find an answer in this section, please drop a brief message to BRAIN AID SYSTEMS .

Related topics: Things You MUST know

HANG (suspended system):

First of all have a look into the Console Window

You have to distinguish between a hanging and a crashed system . A hanging system is characterized by the fact that the kernel and the System Status are still running, but your shell or your application does not respond anymore. The reason for this is that some process is waiting for a message that never appears. Reasons for this can be:

Deadlock:

A deadlock is most often caused by the fact, that one process waits for a message from a second one which in reverse waits for a message from the first one. Both wait and nothing happens.

Particularly for a beginner in parallel processing the occurrence of deadlocks is the major problem. A good idea for debugging is to enclose every suspending action (like a rec_msg() ) in a construct that displays some messages before and after the call.

Trace switched on

The system may stop because some process has switched trace on and the debug window of the console window is hidden. Please have a look into this window to make sure that all your processes are 'running'.

Input request:

In this case the system appears to hang, but is waiting in some window for a keystroke or an input line. The problem is to find the tiny cursor underline in a bunch of windows, but check it out!

Protocol fault:

This can occur if you access higher level services using lower level procedures (for example accessing a server (not the program running on it) directly using send_msg()).

Unexpected fail in a message loop:

This may happen when a process just received a message and is going to process it, but "looses" the message because of a "fail". The effect is that this message is "skipped".

CRASH (crashed system):

A "real crash" is characterized by the fact that the kernel and the System Status are not running anymore. Real crashes are rare.

First of all have a look into the Console Window

The vast majority of crashes is caused by unsatisfied memory requirements ("Game Over" messages in the console window). This is caused by the fact that the Transputer do not have virtual memory management or (depending on the perspective) that you did not by sufficient RAM. As well, you might have an infinite loop in your program that consumes memory.

However crashes may be caused by hardware errors (Transputer failures or bad link connections) and by system errors. Especially large strings can cause problems if your process memory size is smaller than your string sizes.

STOP, can't open file XXXXX.LKD:

The file XXXXXX.LKD does not exist in the current search path. There are two possibilities, either have to compile the file XXXXXX.BAP. In multi-user environments, you may encounter further problems if your access rights are restricted or the file is currently locked by a second process (for example a compiler or a second user).


BAP Online Manuals : BAP Overview : Introduction : Frequently Asked Questions
Previous: Things you MUST know!
Next: BRAIN AID SYSTEMS