public class IS<J extends SimJob,Q extends IS> extends AbstractNonPreemptiveWorkConservingSimQueue<J,Q> implements SimQoS<J,Q>
IS queue serves all jobs simultaneously.
Infinite Server.
This queueing discipline, unlike e.g., FCFS, has multiple (actually an infinite number of) servers.
In the presence of vacations, i.e., jobs are not immediately admitted to the servers, this implementation respects the arrival order of jobs.
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(org.javades.jsimulation.r5.SimEventList eventList)
Creates a new
IS queue with given SimEventList. |
| Modifier and Type | Method and Description |
|---|---|
IS<J,Q> |
getCopySimQueue()
Returns a new
IS object on the same SimEventList. |
Object |
getQoS()
Calls super method (in order to make implementation final).
|
Class |
getQoSClass()
Calls super method (in order to make implementation final).
|
protected double |
getServiceTimeForJob(J job)
Calls super method (in order to make implementation final).
|
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".
|
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(org.javades.jsimulation.r5.SimEventList eventList)
IS queue with given SimEventList.eventList - The event list to use.public IS<J,Q> getCopySimQueue()
IS object on the same SimEventList.getCopySimQueue in interface SimQueue<J extends SimJob,Q extends IS>IS object on the same SimEventList.AbstractSimEntity.getEventList()public String toStringDefault()
toStringDefault in interface SimEntitytoStringDefault in class AbstractSimQueue<J extends SimJob,Q extends IS>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>AbstractNonPreemptiveWorkConservingSimQueue.insertJobInQueueUponArrival(J, double)protected final void insertJobInQueueUponArrival(J job, double time)
insertJobInQueueUponArrival in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS>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 selectJobToDropAtFullQueue(J arrivingJob, double time)
selectJobToDropAtFullQueue in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS>arrivingJob - The arriving job.time - The arrival time.IllegalStateException - As invocation of this method is unexpected (buffer cannot be full).AbstractNonPreemptiveWorkConservingSimQueue.insertJobInQueueUponArrival(J, double)protected final J selectJobToStart()
AbstractSimQueue.getFirstJobInWaitingArea().selectJobToStart in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS>AbstractSimQueue.getFirstJobInWaitingArea().AbstractNonPreemptiveWorkConservingSimQueue.insertJobInQueueUponArrival(J, double),
AbstractNonPreemptiveWorkConservingSimQueue.reschedule(double)protected final double getServiceTimeForJob(J job)
getServiceTimeForJob in class AbstractSimQueue<J extends SimJob,Q extends IS>job - The job, non-null.protected final void removeJobFromQueueUponExit(J exitingJob, double time)
removeJobFromQueueUponExit in class AbstractNonPreemptiveWorkConservingSimQueue<J extends SimJob,Q extends IS>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.