|
J-Sim v1.2.1-p7 API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectdrcl.DrclObj
drcl.comp.ForkManager
drcl.comp.ACARuntime
drcl.sim.event.SESimulator
A sequential event simulation engine.
SEThread,
Serialized Form| Field Summary | |
static java.lang.String |
Debug_Q
|
static java.lang.String |
Debug_RECYCLE
|
static java.lang.String |
Debug_STATE
|
static java.lang.String |
Debug_THREAD
|
static java.lang.String |
Debug_THREAD_STATE
|
protected long |
ltime
|
protected long |
nEvents
|
protected long |
nLags
|
protected int |
nthreadsWaiting
|
protected FIFOQueue |
qReady
Used to store tasks. |
protected TreeMapQueue |
qWaiting
|
protected boolean |
rtEnabled
|
protected long |
rtTol
|
protected long |
startTime
|
static java.lang.String |
State_RESETTING
Transitional state to INACTIVE when system is being reset. |
static java.lang.String |
State_SUSPENDING
Transitional state to SUSPENDED. |
protected java.lang.ThreadGroup |
threadGroup
|
protected FIFOQueue |
threadPool
|
protected double |
time
|
protected int |
total
|
protected long |
totalThreadRequests
|
| Fields inherited from class drcl.comp.ACARuntime |
debug, DEFAULT_RUNTIME, logenabled, name, resetting, state, State_INACTIVE, State_RUNNING, State_SUSPENDED, tf, timeScale, timeScaleReciprocal, tr, vStateListener |
| Fields inherited from class drcl.comp.ForkManager |
parent, runtime |
| Constructor Summary | |
SESimulator()
|
|
SESimulator(java.lang.String name_)
|
|
| Method Summary | |
void |
___PROFILE___()
|
protected double |
_getEventRate(long numArrivals_)
|
protected double |
_getTime()
Asynchronized version of getTime(), for diagnosis. |
protected void |
_stop(boolean block_)
|
java.lang.String |
a_info(boolean listWaitingTasks_)
Asynchronous version of ACARuntime.diag(boolean). |
java.lang.String |
a_info(boolean listWaitingTasks_,
boolean listReadyTasks_,
boolean listWorkingThreads_)
Asynchronous version of ACARuntime.diag(). |
protected void |
adjustTime()
Adjust startTime according to wall time and ltime
Called when simulation started and resumed. |
void |
forceReset()
Forces to reset this runtime. |
double |
getEfficiencyIndex()
Returns the efficiency index of thread recycling. |
double |
getEventEfficiencyIndex(long numberOfArrivalEvents_)
|
java.lang.Object |
getEventQueue()
|
double |
getEventRate()
Returns the event processing rate of this runtime. |
long |
getNumberOfArrivalEvents()
Returns the number of arrival events. |
int |
getNumberOfIdleThreads()
Returns the number of [idle] worker threads in the recycling pool. |
long |
getNumberOfThreadRequests()
Returns the number of requests for worker threads. |
int |
getNumberOfThreadsCreated()
Returns the number of worker threads being created. |
int |
getNumberOfWorkingThreads()
Returns the number of worker threads that are currently executing some tasks. |
long |
getNumLaggingEvents()
|
Queue |
getQ()
|
double |
getRTEvaluation()
Returns the percentage where events are processed in real time (within tolerance specified by setRTTolerance() (not implemented). |
long |
getRTTolerance()
|
java.lang.ThreadGroup |
getThreadGroup()
|
double |
getThreadRequestRate()
|
long |
getWallTimeElapsed()
Returns the actual time (in ms) this runtime has run for. |
SEThread |
getWorkingThread(int index_)
Returns the worker thread, for diagnosis |
protected SEThread[] |
getWorkingThreads()
|
protected SEThread |
grabOne()
Grabs a SEThread from recycling pool, creates one if necessary. |
java.lang.String |
info()
Returns general information of this runtime. |
boolean |
isIdle()
Returns true if the runtime is stopped (inactive or suspended) or running but all working threads are waiting. |
boolean |
isResetting()
Returns true if the runtime is in resetting. |
boolean |
isRTEnabled()
|
void |
listThreads()
|
protected void |
newTask(Task task_,
WorkerThread currentThread_)
The only way to trigger new tasks to be executed. |
protected SEThread |
newThread()
For subclasses to provide its own worker thread class. |
protected void |
off(ACATimer handle_)
Cancels a fork event. |
void |
print(java.lang.String which_,
SEThread current_,
java.lang.String msg_)
|
void |
println(java.lang.String which_,
SEThread current_,
java.lang.String msg_)
|
java.lang.String |
q_info(java.lang.String prefix_,
boolean listElement_)
Returns information of the event queue. |
protected void |
recordTime()
|
protected void |
recycle(SEThread thread_)
Used by SEThread to return itself to the pool. |
void |
reset()
The workerpool enters a transitional period when reset() is issued. |
void |
resume()
Resumes the system. |
java.lang.String |
s_info()
Returns statistics of this runtime. |
java.lang.String |
s_info(boolean listWaitingTasks_)
Returns statistics of this runtime. |
void |
setRTEnabled(boolean value_)
Can only be set when INACTIVE (not implemented). |
void |
setRTTolerance(long v_)
|
protected void |
setState(java.lang.String new_)
|
java.lang.String |
ss_info()
Synchronized version of s_info(). |
java.lang.String |
sthreads()
|
java.lang.String |
swthreads()
Synchronized version of wthreads(). |
java.lang.String |
t_info()
|
protected java.lang.String |
t_info(java.lang.String prefix_)
|
java.lang.String |
tasks()
Returns information of the task queue. |
protected void |
threadBecomesWaiting(SEThread exe_)
|
protected boolean |
threadRequestsSleeping(SEThread exe_,
double time_)
Subclasses should override this method to handle the event when a workerthread requests to become waiting. |
java.lang.String |
threads()
Returns information of the associate thread group. |
protected void |
threadStateChange(SEThread thread_,
java.lang.String oldState_,
java.lang.String newState_)
|
java.lang.String |
wthreads()
Returns information of working threads. |
| Methods inherited from class drcl.comp.ACARuntime |
_openlog, a_info, addDebugLevel, addRunnable, addRunnable, addRunnableAt, addRunnableAt, addStateListener, childManager, containsDebugLevel, debug_info, diag, diag, finalized, getAllDebugLevels, getAllStateListeners, getName, getParent, getState, getThread, getTime, getTimeScale, isDebugEnabled, isDebugEnabledAt, isRunning, isStopped, isSuspended, notifyStateListeners, process, reboot, receive, receiveAt, removeDebugLevel, removeStateListener, resumeFor, resumeTo, send, sendAt, setDebugEnabled, setDebugEnabledAt, setDebugLevels, setMaxWorkforce, setName, setParent, setRuntime, setTimeScale, stop, stop, stopAt, takeover, takeover, toString, tr_info |
| Methods inherited from class drcl.comp.ForkManager |
a_list, getRuntime, info, list, takeover |
| Methods inherited from class drcl.DrclObj |
clone, duplicate |
| Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static final java.lang.String Debug_THREAD
public static final java.lang.String Debug_THREAD_STATE
public static final java.lang.String Debug_Q
public static final java.lang.String Debug_RECYCLE
public static final java.lang.String Debug_STATE
public static final java.lang.String State_SUSPENDING
public static final java.lang.String State_RESETTING
protected FIFOQueue threadPool
protected int total
protected long totalThreadRequests
protected long startTime
protected long ltime
protected double time
protected java.lang.ThreadGroup threadGroup
protected FIFOQueue qReady
protected TreeMapQueue qWaiting
protected int nthreadsWaiting
protected boolean rtEnabled
protected long nLags
protected long nEvents
protected long rtTol
| Constructor Detail |
public SESimulator()
public SESimulator(java.lang.String name_)
| Method Detail |
protected void newTask(Task task_,
WorkerThread currentThread_)
newTask in class ACARuntimepublic java.lang.ThreadGroup getThreadGroup()
public void listThreads()
public java.lang.String info()
info in class ACARuntimepublic java.lang.String ss_info()
s_info().
public java.lang.String s_info()
public java.lang.String s_info(boolean listWaitingTasks_)
public java.lang.String a_info(boolean listWaitingTasks_)
ACARuntimeACARuntime.diag(boolean).
a_info in class ACARuntime
public java.lang.String a_info(boolean listWaitingTasks_,
boolean listReadyTasks_,
boolean listWorkingThreads_)
ACARuntime.diag().
public java.lang.String sthreads()
public java.lang.String threads()
public java.lang.String swthreads()
wthreads().
public java.lang.String wthreads()
public java.lang.String tasks()
protected SEThread grabOne()
protected SEThread newThread()
protected void recycle(SEThread thread_)
public void forceReset()
public SEThread getWorkingThread(int index_)
public void ___PROFILE___()
public int getNumberOfThreadsCreated()
public int getNumberOfIdleThreads()
public long getNumberOfThreadRequests()
public long getNumberOfArrivalEvents()
getNumberOfArrivalEvents in class ACARuntimepublic double getEfficiencyIndex()
getNumberOfThreadRequests() over
getNumberOfThreadsCreated().
public double getEventEfficiencyIndex(long numberOfArrivalEvents_)
public int getNumberOfWorkingThreads()
public double getEventRate()
getEventRate in class ACARuntimeprotected double _getEventRate(long numArrivals_)
public double getThreadRequestRate()
protected SEThread[] getWorkingThreads()
protected double _getTime()
_getTime in class ACARuntimeprotected void adjustTime()
startTime according to wall time and ltime
Called when simulation started and resumed.
protected void recordTime()
protected void _stop(boolean block_)
_stop in class ACARuntimepublic void resume()
resume in class ACARuntimepublic void reset()
CAUTION: 1. This method is better be executed by a thread that is not created from this worker pool, unless you know what you're doing. 2. Current implementation does not work if a thread executes indefinitely.
reset in class ACARuntimepublic long getWallTimeElapsed()
getWallTimeElapsed in class ACARuntimepublic java.lang.String t_info()
t_info in class ACARuntimeprotected java.lang.String t_info(java.lang.String prefix_)
t_info in class ACARuntimeprotected void setState(java.lang.String new_)
setState in class ACARuntimepublic boolean isResetting()
public boolean isIdle()
isIdle in class ACARuntime
protected void threadStateChange(SEThread thread_,
java.lang.String oldState_,
java.lang.String newState_)
public void print(java.lang.String which_,
SEThread current_,
java.lang.String msg_)
public void println(java.lang.String which_,
SEThread current_,
java.lang.String msg_)
public void setRTEnabled(boolean value_)
public boolean isRTEnabled()
public long getNumLaggingEvents()
public double getRTEvaluation()
public void setRTTolerance(long v_)
public long getRTTolerance()
public Queue getQ()
public java.lang.Object getEventQueue()
getEventQueue in class ACARuntimeprotected void threadBecomesWaiting(SEThread exe_)
protected boolean threadRequestsSleeping(SEThread exe_,
double time_)
public java.lang.String q_info(java.lang.String prefix_,
boolean listElement_)
protected void off(ACATimer handle_)
off in class ACARuntime
|
J-Sim v1.2.1-p7 API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||