Well, Im not too good with AmigaOS, but in VxWorks you can pass messages between tasks. A message is a type of interrupt that will 'wake up' a seperate pending task. Im sure something like this exists in the AmigaOS.
Or if you want to do some brute force coding (which would be very bad), you could hard code a place in memory to hold the variables, but you would probably overwrite something else in the process... ie: there is no guarantee that some other program wouldnt be using the exact memory.
In 'C', something like this would work... say you have a variable that you want to share between the tasks, you could store that variable at some address (say 0x8000 0000). To access the var, you could do some funky pointer stuff:
*((int*)(0x8000000)) = 5 //store 5 at 0x8000 0000 in program 1
x = *((int*)(0x8000000)) //get what is at 0x8000 0000 in program 2
this solution is really only good for embedded programming... something where you KNOW there wont be a collision. But it will work. Trying this on your amiga may crash it in ways you cant imagine :-P
-Thorrin