public class IS_CST<J extends SimJob,Q extends IS_CST> extends AbstractNonPreemptiveWorkConservingSimQueue<J,Q> implements SimQoS<J,Q>
IS_CST queue serves all jobs simultaneously with fixed job-independent service times.
Infinite Server with Constant Service Times.
Each job has the same queue-determined service time.
The job is not consulted for its service time through SimJob.getServiceTime(Q).
In the presence of vacations, i.e., jobs are not immediately admitted to the servers, this implementation respects the arrival order of jobs.
For jobs with identical arrival times, it is not guaranteed that they will depart in order of arrival.
Copyright (C) 2005-2017 Jan de Jongh, TNO
This file is covered by the LICENSE file in the root of this project.
AbstractSimEntity.Notifier, AbstractSimEntity.PreNotificationHookSimQueue.AutoRevocationPolicySimEntity.Action, SimEntity.UnknownNotificationTypePolicy, SimEntity.UnknownOperationPolicyeventsScheduled, SANITYUSE_ARRAY_OPTIMIZATION| Constructor and Description |
|---|
IS_CST(org.javades.jsimulation.r5.SimEventList eventList,
double serviceTime)
Creates a new
IS_CST queue with given SimEventList and (fixed) service time. |
| Modifier and Type | Method and Description |
|---|---|
IS_CST<J,Q> |
getCopySimQueue()
Returns a new
IS_CST object on the same SimEventList with the same service time. |
Object |
getQoS()
Calls super method (in order to make implementation final).
|
Class |
getQoSClass()
Calls super method (in order to make implementation final).
|
double |
getServiceTime()
Returns the service time for all jobs.
|
protected double |
getServiceTimeForJob(J job)
Returns the service time for all jobs.
|
protected void |
insertJobInQueueUponArrival(J job,
double time)
Invokes super method and makes method implementation final.
|
protected void |
removeJobFromQueueUponExit(J exitingJob,
double time)
Calls super method (in order to make implementation final).
|
protected void |
resetEntitySubClass()
Calls super method (in order to make implementation final).
|
protected J |
selectJobToDropAtFullQueue(J arrivingJob,
double time)
Throws an exception.
|
protected J |
selectJobToStart()
Returns the result from
AbstractSimQueue.getFirstJobInWaitingArea(). |
String |
toStringDefault()
Returns "IS_CST[service time]".
|
hasServerAvailable, insertJobInQueueUponStart, isStartArmed, queueAccessVacationDropSubClass, removeJobFromQueueUponDeparture, removeJobFromQueueUponDrop, removeJobFromQueueUponRevokation, reschedule, rescheduleAfterArrival, rescheduleAfterDeparture, rescheduleAfterDrop, rescheduleAfterRevokation, rescheduleAfterStart, rescheduleForNewServerAccessCredits, setServerAccessCreditsSubClassgetBufferSize, getNumberOfServersarrive, autoRevoke, cancelDepartureEvent, cancelDepartureEvent, depart, departureFromEventList, drop, getAutoRevocationPolicy, getDepartureEvents, getDepartureEvents, getFirstJob, getFirstJobInServiceArea, getFirstJobInWaitingArea, getJobs, getJobsInServiceArea, getJobsInWaitingArea, getNumberOfJobs, getNumberOfJobsInServiceArea, getNumberOfJobsInWaitingArea, getServerAccessCredits, hasJobs, hasJobsInServiceArea, hasJobsInWaitingArea, hasServerAcccessCredits, isJob, isJobInServiceArea, isJobInWaitingArea, isQueueAccessVacation, registerStdOutSimQueueListener, revoke, revoke, scheduleDepartureEvent, scheduleJobArrival, setAutoRevocationPolicy, setQueueAccessVacation, setServerAccessCredits, start, takeServerAccessCredit, triggerPotentialNewStartArmed, unregisterStdOutSimQueueListeneraddPendingNotification, addPendingNotification, clearAndUnlockPendingNotificationsIfLocked, delegateOperation, doAfterNotifications, doOperation, fireAndLockPendingNotifications, getEventList, getLastUpdateTime, getRegisteredDelegatedOperations, getRegisteredNotificationTypes, getRegisteredOperations, getSimEntityListeners, getUnknownNotificationTypePolicy, getUnknownOperationPolicy, isIgnoreEventListReset, notifyEventListReset, registerDelegatedOperation, registerNotificationType, registerOperation, registerPreEventHook, registerPreNotificationHook, registerPreUpdateHook, registerSimEntityListener, registerStdOutSimEntityListener, removeDelegationForOperation, resetEntity, setIgnoreEventListReset, setName, setUnknownNotificationTypePolicy, setUnknownOperationPolicy, toString, unregisterSimEntityListener, unregisterStdOutSimEntityListener, updateclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitarrive, getAutoRevocationPolicy, getJobs, getJobsInServiceArea, getJobsInWaitingArea, getNumberOfJobs, getNumberOfJobsInServiceArea, getNumberOfJobsInWaitingArea, getServerAccessCredits, isJob, isJobInServiceArea, isJobInWaitingArea, isQueueAccessVacation, revoke, revoke, setAutoRevocationPolicy, setQueueAccessVacation, setServerAccessCreditsdoAfterNotifications, doOperation, getEventList, getLastUpdateTime, getRegisteredNotificationTypes, getRegisteredOperations, getSimEntityListeners, getUnknownNotificationTypePolicy, getUnknownOperationPolicy, isIgnoreEventListReset, registerSimEntityListener, resetEntity, setIgnoreEventListReset, setName, setUnknownNotificationTypePolicy, setUnknownOperationPolicy, unregisterSimEntityListener, updatepublic IS_CST(org.javades.jsimulation.r5.SimEventList eventList,
double serviceTime)
IS_CST queue with given SimEventList and (fixed) service time.eventList - The event list to use.serviceTime - The service time for all jobs.IllegalArgumentException - If serviceTime is strictly negative.public IS_CST<J,Q> getCopySimQueue()
IS_CST object on the same SimEventList with the same service time.getCopySimQueue in interface SimQueue<J extends SimJob,Q extends IS_CST>IS_CST object on the same SimEventList with the same service time.AbstractSimEntity.getEventList(),
getServiceTime()public String toStringDefault()
toStringDefault in interface SimEntitytoStringDefault in class AbstractSimQueue<J extends SimJob,Q extends IS_CST>SimEntity.setName(java.lang.String),
Object.toString()public final Class getQoSClass()
public final Object getQoS()
protected final void resetEntitySubClass()
resetEntitySubClass in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS_CST>AbstractNonPreemptiveWorkConservingSimQueue.insertJobInQueueUponArrival(J, double)protected final void insertJobInQueueUponArrival(J job, double time)
insertJobInQueueUponArrival in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS_CST>job - The job that arrived.time - The current time (i.e., arrival time of the job).AbstractSimQueue.arrive(double, J),
AbstractSimQueue.rescheduleAfterArrival(J, double)protected final J selectJobToStart()
AbstractSimQueue.getFirstJobInWaitingArea().selectJobToStart in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS_CST>AbstractSimQueue.getFirstJobInWaitingArea().AbstractNonPreemptiveWorkConservingSimQueue.insertJobInQueueUponArrival(J, double),
AbstractNonPreemptiveWorkConservingSimQueue.reschedule(double)protected final J selectJobToDropAtFullQueue(J arrivingJob, double time)
selectJobToDropAtFullQueue in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS_CST>arrivingJob - The arriving job.time - The arrival time.IllegalStateException - As invocation of this method is unexpected (buffer cannot be full).AbstractNonPreemptiveWorkConservingSimQueue.insertJobInQueueUponArrival(J, double)public final double getServiceTime()
protected final double getServiceTimeForJob(J job)
getServiceTimeForJob in class AbstractSimQueue<J extends SimJob,Q extends IS_CST>job - The job, non-null.getServiceTime().protected final void removeJobFromQueueUponExit(J exitingJob, double time)
removeJobFromQueueUponExit in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS_CST>exitingJob - The jobs that ends its visit, non-null.time - The current time, i.e., the time the job ends its visit.AbstractNonPreemptiveWorkConservingSimQueue.removeJobFromQueueUponDrop(J, double),
AbstractNonPreemptiveWorkConservingSimQueue.removeJobFromQueueUponRevokation(J, double, boolean),
AbstractNonPreemptiveWorkConservingSimQueue.removeJobFromQueueUponDeparture(J, double)Copyright © 2018. All rights reserved.