Package uk.ac.man.cs.rainbow.simulator

Rainbow simulation system.

See:
          Description

Interface Summary
Channel.Listener Indicate that a class's objects might want to be told of events on channels.
RASMThread.TraceListener Implemented by classes that want to watch what a thread is doing.
SavedState States saved by threads and schedulers.
Scheduler.ExternalExecutionServer Marker for classes that handle external executions.
Scheduler.LabellingListener Marker for classes that accept labelling notifications.
Scheduler.ThreadingListener Marker for classes that accept threading notifications.
 

Class Summary
Channel Channels connect Rainbow threads.
Channel.Data Channels can be turned into first-class data values.
Instruction Superclass of all RASM instructions.
Instruction.MACRO Instructions implemented in terms of other instructions must be subclasses of this class.
RainbowDevice Do Not Use This Class.
RainbowThread Superclass of all Rainbow threads.
RainbowThread.SavedRainbowThreadState For saving our state.
RASM RASM instructions are typically inner classes of this class.
RASM.Abs Deprecated. Use Abs
RASM.Add Deprecated. Use Add
RASM.And Deprecated. Use And
RASM.BinaryIntFunction Binary operations over integers.
RASM.BinaryLogicFunction Binary operations over logic values.
RASM.BranchFalse Deprecated. Use BranchFalse
RASM.BranchTrue Deprecated. Use BranchTrue
RASM.BuildList Deprecated. Use BuildList
RASM.Call Deprecated. Use Call
RASM.ChannelBox Instructions that take a single channel argument and which may take more than a single step to execute.
RASM.Comment Deprecated. Use Comment
RASM.Comparison Comparison operation between comparable data values.
RASM.Concat Deprecated. Use Concat
RASM.Connect Deprecated. Use Connect
RASM.DeclareDeviceWithState Deprecated. Use DeclareDeviceWithState
RASM.Delay Deprecated. Use Delay
RASM.Div Deprecated. Use Div
RASM.Dup Deprecated. Use Dup
RASM.Eql Deprecated. Use Eql
RASM.Error Deprecated. Use Error
RASM.Exch Deprecated. Use Exch
RASM.Exit Deprecated. Use Exit
RASM.Geq Deprecated. Use Geq
RASM.Get Deprecated. Use Get
RASM.GetArg Deprecated. Use GetArg
RASM.GetType Deprecated. Use GetType
RASM.Gt Deprecated. Use Gt
RASM.Index Deprecated. Use Index
RASM.Insert Deprecated. Use Insert
RASM.IsAvailable Deprecated. Use IsAvailable
RASM.Jump Deprecated. Use Jump
RASM.KillStackRange Deprecated. Use KillStackRange
RASM.LabelChannel Deprecated. Use LabelChannel
RASM.LabelDevice Deprecated. Use LabelDevice
RASM.Length Deprecated. Use Length
RASM.Leq Deprecated. Use Leq
RASM.Line Deprecated. Use Line
RASM.Load Deprecated. Use Load
RASM.Lt Deprecated. Use Lt
RASM.MakeChannel Deprecated. Use MakeChannel
RASM.MakeList Deprecated. Use MakeList
RASM.MakeRegister Deprecated. Use MakeRegister
RASM.MakeUnion Deprecated. Use MakeUnion
RASM.Mod Deprecated. Use Mod
RASM.Mult Deprecated. Use Mult
RASM.NDChoice Deprecated. Use NDChoice
RASM.NDValue Deprecated. Use NDValue
RASM.Neg Deprecated. Use Neg
RASM.Neq Deprecated. Use Neq
RASM.Noop Deprecated. Use Noop
RASM.Not Deprecated. Use Not
RASM.OpenUnion Deprecated. Use OpenUnion
RASM.Or Deprecated. Use Or
RASM.Parallel Deprecated. Use Parallel
RASM.Pop Deprecated. Use Pop
RASM.PopAll Deprecated. Use PopAll
RASM.Project Deprecated. Use Project
RASM.Push Deprecated. Use Push
RASM.Put Deprecated. Use Put
RASM.PutArg Deprecated. Use PutArg
RASM.PutForward Deprecated. Use PutForward
RASM.Read Deprecated. Use Read
RASM.Release Deprecated. Use Release
RASM.Return Deprecated. Use Return
RASM.Roll Deprecated. Use Roll
RASM.SetType Deprecated. Use SetType
RASM.Shl Deprecated. Use Shl
RASM.Shr Deprecated. Use Shr
RASM.Shrz Deprecated. Use Shrz
RASM.SignalForward Deprecated. Use SignalForward
RASM.Sleep Deprecated. Use Sleep
RASM.Split Deprecated. Use Split
RASM.StatelessDevice Deprecated. Use StatelessDevice
RASM.StaticStackBase Deprecated. Use StaticStackBase
RASM.Store Deprecated. Use Store
RASM.Sub Deprecated. Use Sub
RASM.TclExec Deprecated. Use TclExec
RASM.WaitFor Deprecated. Use WaitFor
RASM.WaitGet Deprecated. Use WaitGet
RASM.WaitRelease Deprecated. Use WaitRelease
RASM.Write Deprecated. Use Write
RASM.Xor Deprecated. Use Xor
RASMCode A block of RASM code.
RASMCode.Label A label/location in a block of code.
RASMCode.Label.Data A label as a value that can be referred to by a virtual machine.
RASMList A list of RASM instructions.
RASMThread Rainbow threads that are implemented by executing RASM instructions.
RASMThread.Characterisation The characterisation of a thread that doesn't specify its own.
RASMThread.ReaderWriter For saving the activity on channels.
RASMThread.RegPair A tuple of register and creation location.
RASMThread.SavedRASMThreadState This thread's saved state.
RASMThread.SavedRASMThreadState.This The portion of this thread's state that is most easily cached.
ReclaimableSavedState A saved state that can save space by writing itself out to disk.
Register Registers for use by Rainbow threads.
Register.Data Registers can be first class data values.
Scheduler System for scheduling Rainbow threads.
Scheduler.LabellingAdapter An empty implementation of a LabellingListener that is suitable for subclassing to get subsets of the full behaviour.
Scheduler.ThreadingAdapter An empty implementation of a LabellingListener that is suitable for subclassing to get subsets of the full behaviour.
Simulator A simulation.
Simulator.Timer Queue of thread sets ordered by time.
Simulator.Timer.timeBucket Element of list of thread sets.
StateEnumerator Simulation state enumerator.
StateEnumerator.ChanWatch For debugging channel activity.
StateEnumerator.NDData So the state of the scheduler can be characterised.
StateEnumerator.SavedEnumeratorState  
StateEnumerator.ThreadWatch For debugging thread activity.
ThreadSet "Unordered" collection of threads, where a thread can only belong at most once.
 

Exception Summary
RainbowThread.IllegalChannelStateException Indicate an attempt to do something naughty with a channel.
RainbowThread.IllegalThreadTerminationException Indicate an attempt to do exit a top-level thread.
RASMCode.Exception Exceptions thrown due to bad assembly code.
RASMThread.Exception Exceptions due to problems during the execution of a thread.
RASMThread.InvokationException Thrown when an exception occurs in some externally referenced code.
RASMThread.PopFailureException Thrown to indicate a problem during a pop operation.
ReclaimableSavedState.StateReloadException Thrown if a state reload fails for some reason.
Simulator.DeadlockedException  
 

Package uk.ac.man.cs.rainbow.simulator Description

Rainbow simulation system.

Includes:
Threads
These are entities that can execute in parallel.
Schedulers
These tell threads when to execute.
Blocks of RASM code
These tell threads how to execute.
Registers
These allow threads to store persistent data in a way that schedulers can understand.
Channels
Thes allow threads to communicate with each other.
RASM is Rainbow Assembler, and it is documented in the RASM.* classes and the Rainbow Implementors Guide.