Class LinkedJobInfoList

java.lang.Object
QueueNet.LinkedJobInfoList
All Implemented Interfaces:
JobInfoList
Direct Known Subclasses:
PSJobInfoList

public class LinkedJobInfoList extends Object implements JobInfoList
This class implements a linked job info list.
Author:
Francesco Radaelli, Stefano Omini Modified by Ashanka (May 2010): Patch: Multi-Sink Perf. Index Description: Added new Performance index for capturing 1. global response time (ResponseTime per Sink) 2. global throughput (Throughput per Sink) each sink per class.
  • Field Details

    • REMOVE_FIRST

      protected static final int REMOVE_FIRST
      See Also:
    • REMOVE_LAST

      protected static final int REMOVE_LAST
      See Also:
    • REMOVE_SPECIFIC

      protected static final int REMOVE_SPECIFIC
      See Also:
    • numberOfJobClasses

      protected int numberOfJobClasses
    • list

      protected LinkedList<JobInfo> list
    • listPerClass

      protected LinkedList<JobInfo>[] listPerClass
    • retrialOrbit

      protected Map<Integer, List<Double>> retrialOrbit
    • retrialOrbitPerClass

      protected Map<Integer, List<Double>>[] retrialOrbitPerClass
    • jobsIn

      protected int jobsIn
    • jobsInPerClass

      protected int[] jobsInPerClass
    • jobsOut

      protected int jobsOut
    • jobsOutPerClass

      protected int[] jobsOutPerClass
    • jobsTotalCacheHitCount

      protected int jobsTotalCacheHitCount
    • jobsTotalCacheMissCount

      protected int jobsTotalCacheMissCount
    • jobsCacheCountPerClass

      protected int[] jobsCacheCountPerClass
    • jobsInService

      protected int jobsInService
    • jobsInServicePerClass

      protected int[] jobsInServicePerClass
    • activeServers

      protected int activeServers
    • lastJobInTime

      protected double lastJobInTime
    • lastJobInTimePerClass

      protected double[] lastJobInTimePerClass
    • lastJobOutTimePerServer

      protected double[] lastJobOutTimePerServer
    • lastJobOutTimePerServerPerClass

      protected double[][] lastJobOutTimePerServerPerClass
    • lastJobOutTime

      protected double lastJobOutTime
    • lastJobOutTimePerClass

      protected double[] lastJobOutTimePerClass
    • lastJobInTimePerServer

      protected double[] lastJobInTimePerServer
    • lastJobInTimePerServerPerClass

      protected double[][] lastJobInTimePerServerPerClass
    • lastJobStartTime

      protected double lastJobStartTime
    • lastJobStartTimePerClass

      protected double[] lastJobStartTimePerClass
    • lastJobEndTime

      protected double lastJobEndTime
    • lastJobEndTimePerClass

      protected double[] lastJobEndTimePerClass
    • lastJobDropTime

      protected double lastJobDropTime
    • lastJobDropTimePerClass

      protected double[] lastJobDropTimePerClass
    • lastJobDropTimePerServer

      protected double[] lastJobDropTimePerServer
    • lastJobSwitchTime

      protected double lastJobSwitchTime
    • lastJobSwitchTimePerClass

      protected double[] lastJobSwitchTimePerClass
    • lastJobBalkingTime

      protected double lastJobBalkingTime
    • lastJobBalkingTimePerClass

      protected double[] lastJobBalkingTimePerClass
    • lastJobBalkingTimePerServer

      protected double[] lastJobBalkingTimePerServer
    • lastJobRenegingTime

      protected double lastJobRenegingTime
    • lastJobRenegingTimePerClass

      protected double[] lastJobRenegingTimePerClass
    • lastJobRenegingTimePerServer

      protected double[] lastJobRenegingTimePerServer
    • lastJobRetrialAttemptTime

      protected double lastJobRetrialAttemptTime
    • lastJobRetrialAttemptTimePerClass

      protected double[] lastJobRetrialAttemptTimePerClass
    • lastJobRetrialAttemptTimePerServer

      protected double[] lastJobRetrialAttemptTimePerServer
    • lastRetrialOrbitModifyTime

      protected double lastRetrialOrbitModifyTime
    • lastRetrialOrbitModifyTimePerClass

      protected double[] lastRetrialOrbitModifyTimePerClass
    • lastRetrialOrbitModifyTimePerServer

      protected double[] lastRetrialOrbitModifyTimePerServer
    • totalSojournTime

      protected double totalSojournTime
    • totalSojournTimePerClass

      protected double[] totalSojournTimePerClass
    • lastJobSojournTime

      protected double lastJobSojournTime
    • lastJobSojournTimePerClass

      protected double[] lastJobSojournTimePerClass
    • lastActiveServersTime

      protected double lastActiveServersTime
    • queueLength

      protected Measure queueLength
    • queueLengthPerClass

      protected Measure[] queueLengthPerClass
    • queueLengthPerServerType

      protected Measure[] queueLengthPerServerType
    • queueLengthPerServerTypePerClass

      protected Measure[][] queueLengthPerServerTypePerClass
    • responseTime

      protected Measure responseTime
    • responseTimePerClass

      protected Measure[] responseTimePerClass
    • responseTimePerServerType

      protected Measure[] responseTimePerServerType
    • responseTimePerServerTypePerClass

      protected Measure[][] responseTimePerServerTypePerClass
    • residenceTime

      protected Measure residenceTime
    • residenceTimePerClass

      protected Measure[] residenceTimePerClass
    • residenceTimePerServerType

      protected Measure[] residenceTimePerServerType
    • residenceTimePerServerTypePerClass

      protected Measure[][] residenceTimePerServerTypePerClass
    • arrivalRate

      protected InverseMeasure arrivalRate
    • arrivalRatePerClass

      protected InverseMeasure[] arrivalRatePerClass
    • throughput

      protected InverseMeasure throughput
    • throughputPerClass

      protected InverseMeasure[] throughputPerClass
    • throughputPerServerType

      protected Measure[] throughputPerServerType
    • throughputPerServerTypePerClass

      protected Measure[][] throughputPerServerTypePerClass
    • utilization

      protected Measure utilization
    • utilizationPerClass

      protected Measure[] utilizationPerClass
    • utilizationPerServerType

      protected Measure[] utilizationPerServerType
    • utilizationPerServerTypePerClass

      protected Measure[][] utilizationPerServerTypePerClass
    • utilizationJoin

      protected Measure utilizationJoin
    • utilizationPerClassJoin

      protected Measure[] utilizationPerClassJoin
    • effectiveUtilization

      protected Measure effectiveUtilization
    • effectiveUtilizationPerClass

      protected Measure[] effectiveUtilizationPerClass
    • hitRate

      protected Measure hitRate
    • hitRatePerClass

      protected Measure[] hitRatePerClass
    • dropRate

      protected InverseMeasure dropRate
    • dropRatePerClass

      protected InverseMeasure[] dropRatePerClass
    • dropRatePerServerType

      protected Measure[] dropRatePerServerType
    • dropRatePerServerTypePerClass

      protected Measure[][] dropRatePerServerTypePerClass
    • balkingRate

      protected InverseMeasure balkingRate
    • balkingRatePerClass

      protected InverseMeasure[] balkingRatePerClass
    • balkingRatePerServerType

      protected Measure[] balkingRatePerServerType
    • balkingRatePerServerTypePerClass

      protected Measure[][] balkingRatePerServerTypePerClass
    • renegingRate

      protected InverseMeasure renegingRate
    • renegingRatePerClass

      protected InverseMeasure[] renegingRatePerClass
    • renegingRatePerServerType

      protected Measure[] renegingRatePerServerType
    • renegingRatePerServerTypePerClass

      protected Measure[][] renegingRatePerServerTypePerClass
    • retrialAttemptsRate

      protected InverseMeasure retrialAttemptsRate
    • retrialAttemptsRatePerClass

      protected InverseMeasure[] retrialAttemptsRatePerClass
    • retrialAttemptsPerServerType

      protected Measure[] retrialAttemptsPerServerType
    • retrialAttemptsPerServerTypePerClass

      protected Measure[][] retrialAttemptsPerServerTypePerClass
    • retrialOrbitSize

      protected Measure retrialOrbitSize
    • retrialOrbitSizePerClass

      protected Measure[] retrialOrbitSizePerClass
    • retrialOrbitSizePerServerType

      protected Measure[] retrialOrbitSizePerServerType
    • retrialOrbitSizePerServerTypePerClass

      protected Measure[][] retrialOrbitSizePerServerTypePerClass
    • retrialOrbitTime

      protected Measure retrialOrbitTime
    • retrialOrbitTimePerClass

      protected Measure[] retrialOrbitTimePerClass
    • responseTimePerSink

      protected Measure responseTimePerSink
    • responseTimePerSinkPerClass

      protected Measure[] responseTimePerSinkPerClass
    • throughputPerSink

      protected InverseMeasure throughputPerSink
    • throughputPerSinkPerClass

      protected InverseMeasure[] throughputPerSinkPerClass
    • tardiness

      protected Measure tardiness
    • tardinessPerClass

      protected Measure[] tardinessPerClass
    • earliness

      protected Measure earliness
    • earlinessPerClass

      protected Measure[] earlinessPerClass
    • lateness

      protected Measure lateness
    • latenessPerClass

      protected Measure[] latenessPerClass
    • regionSoftDeadlinesByClass

      protected double[] regionSoftDeadlinesByClass
    • numberOfActiveServers

      protected Measure numberOfActiveServers
    • numberOfServers

      protected int numberOfServers
      The number of servers to estimate Utilization measure on multiserver environments
    • serverNumRequired

      protected int[] serverNumRequired
      The number of servers required by a specific class to estimate Utilization measure on multiserver environments
  • Constructor Details

    • LinkedJobInfoList

      public LinkedJobInfoList(JobClassList jobClasses)
      Creates a new JobInfoList instance.
      Parameters:
      jobClasses - job classes. if (preemption) { jobInService = job; jobInService.setServingMessage(jobInServiceMessage); jobInService.setIsJobInService(true); }
    • LinkedJobInfoList

      public LinkedJobInfoList(JobClassList jobClasses, Boolean[][] classCompatibilities, String stationName, List<Server.ServerType> serverTypes)
  • Method Details

    • addUsedServersForJob

      public void addUsedServersForJob(int job_id, List<Server.BusyServer> busyServers)
      --------------------------------------------------------------------- --------------------------- "GET" METHODS ---------------------------- ---------------------------------------------------------------------
      Specified by:
      addUsedServersForJob in interface JobInfoList
      Parameters:
      job_id -
      busyServers -
    • removeUsedServerForJob

      public void removeUsedServerForJob(int job_id)
      Description copied from interface: JobInfoList
      Removes job when finished
      Specified by:
      removeUsedServerForJob in interface JobInfoList
      Parameters:
      job_id -
    • size

      public int size()
      Description copied from interface: JobInfoList
      Gets the number of jobs.
      Specified by:
      size in interface JobInfoList
      Returns:
      Number of jobs.
    • size

      public int size(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the number of jobs of the specified job class.
      Specified by:
      size in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Number of jobs of the specified job class.
    • getRetrialOrbit

      public Map<Integer, List<Double>> getRetrialOrbit()
      Description copied from interface: JobInfoList
      Gets the retrial orbit.
      Specified by:
      getRetrialOrbit in interface JobInfoList
      Returns:
      Reference to the retrial orbit.
    • addToRetrialOrbit

      public void addToRetrialOrbit(Job job)
      Description copied from interface: JobInfoList
      Adds a job to the retrial orbit.
      Specified by:
      addToRetrialOrbit in interface JobInfoList
      Parameters:
      job - Reference to the job.
    • removeFromRetrialOrbit

      public void removeFromRetrialOrbit(Job job)
      Description copied from interface: JobInfoList
      Removes a job from the retrial orbit.
      Specified by:
      removeFromRetrialOrbit in interface JobInfoList
      Parameters:
      job - Reference to the job.
    • getJobsIn

      public int getJobsIn()
      Description copied from interface: JobInfoList
      Gets the number of added jobs.
      Specified by:
      getJobsIn in interface JobInfoList
      Returns:
      Number of added jobs.
    • getJobsInPerClass

      public int getJobsInPerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the number of added jobs of the specified job class.
      Specified by:
      getJobsInPerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Number of added jobs of the specified job class.
    • getJobsOut

      public int getJobsOut()
      Description copied from interface: JobInfoList
      Gets the number of removed jobs.
      Specified by:
      getJobsOut in interface JobInfoList
      Returns:
      Number of removed jobs.
    • getJobsOutPerClass

      public int getJobsOutPerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the number of removed jobs of the specified job class.
      Specified by:
      getJobsOutPerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Number of removed jobs of the specified job class.
    • getJobsInService

      public int getJobsInService()
      Description copied from interface: JobInfoList
      Gets the number of jobs in service.
      Specified by:
      getJobsInService in interface JobInfoList
      Returns:
      Number of jobs in service.
    • getJobsInServicePerClass

      public int getJobsInServicePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the number of jobs in service of the specified job class.
      Specified by:
      getJobsInServicePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Number of jobs in service of the specified job class.
    • getLastJobInTime

      public double getLastJobInTime()
      Description copied from interface: JobInfoList
      Gets the time of the last added job.
      Specified by:
      getLastJobInTime in interface JobInfoList
      Returns:
      Time of the last added job.
    • getLastJobInTimePerClass

      public double getLastJobInTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last added job of the specified job class.
      Specified by:
      getLastJobInTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last added job of the specified job class.
    • getLastJobOutTime

      public double getLastJobOutTime()
      Description copied from interface: JobInfoList
      Gets the time of the last removed job.
      Specified by:
      getLastJobOutTime in interface JobInfoList
      Returns:
      Time of the last removed job.
    • getLastJobOutTimePerClass

      public double getLastJobOutTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last removed job of the specified job class.
      Specified by:
      getLastJobOutTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last removed job of the specified job class.
    • getLastJobStartTime

      public double getLastJobStartTime()
      Description copied from interface: JobInfoList
      Gets the time of the last started job.
      Specified by:
      getLastJobStartTime in interface JobInfoList
      Returns:
      Time of the last started job.
    • getLastJobStartTimePerClass

      public double getLastJobStartTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last started job of the specified job class.
      Specified by:
      getLastJobStartTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last started job of the specified job class.
    • getLastJobEndTime

      public double getLastJobEndTime()
      Description copied from interface: JobInfoList
      Gets the time of the last ended job.
      Specified by:
      getLastJobEndTime in interface JobInfoList
      Returns:
      Time of the last ended job.
    • getLastJobEndTimePerClass

      public double getLastJobEndTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last ended job of the specified job class.
      Specified by:
      getLastJobEndTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last ended job of the specified job class.
    • getLastJobDropTime

      public double getLastJobDropTime()
      Description copied from interface: JobInfoList
      Gets the time of the last dropped job.
      Specified by:
      getLastJobDropTime in interface JobInfoList
      Returns:
      Time of the last dropped job.
    • getLastJobDropTimePerClass

      public double getLastJobDropTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last dropped job of the specified job class.
      Specified by:
      getLastJobDropTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last dropped job of the specified job class.
    • getLastJobSwitchTime

      public double getLastJobSwitchTime()
      Description copied from interface: JobInfoList
      Gets the time of the last switched job.
      Specified by:
      getLastJobSwitchTime in interface JobInfoList
      Returns:
      Time of the last switched job.
    • getLastJobSwitchTimePerClass

      public double getLastJobSwitchTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last switched job of the specified job class.
      Specified by:
      getLastJobSwitchTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last switched job of the specified job class.
    • getLastJobBalkingTime

      public double getLastJobBalkingTime()
      Description copied from interface: JobInfoList
      Gets the time of the last balked job.
      Specified by:
      getLastJobBalkingTime in interface JobInfoList
      Returns:
      Time of the last balked job.
    • getLastJobBalkingTimePerClass

      public double getLastJobBalkingTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last balked job of the specified job class.
      Specified by:
      getLastJobBalkingTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last balked job of the specified job class.
    • getLastJobRenegingTime

      public double getLastJobRenegingTime()
      Description copied from interface: JobInfoList
      Gets the time of the last reneged job.
      Specified by:
      getLastJobRenegingTime in interface JobInfoList
      Returns:
      Time of the last reneged job.
    • getLastJobRenegingTimePerClass

      public double getLastJobRenegingTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last reneged job of the specified job class.
      Specified by:
      getLastJobRenegingTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last reneged job of the specified job class.
    • getLastJobRetrialAttemptTime

      public double getLastJobRetrialAttemptTime()
      Description copied from interface: JobInfoList
      Gets the time of the last retried job.
      Specified by:
      getLastJobRetrialAttemptTime in interface JobInfoList
      Returns:
      Time of the last retried job.
    • getLastJobRetrialTimePerClass

      public double getLastJobRetrialTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last retried job of the specified job class.
      Specified by:
      getLastJobRetrialTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last retried job of the specified job class.
    • getLastModifyTime

      public double getLastModifyTime()
      Description copied from interface: JobInfoList
      Gets the time of the last modify.
      Specified by:
      getLastModifyTime in interface JobInfoList
      Returns:
      Time of the last modify.
    • getLastModifyTimePerClass

      public double getLastModifyTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last modify of the specified job class.
      Specified by:
      getLastModifyTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last modify of the specified job class.
    • getLastModifyTimePerServer

      public double getLastModifyTimePerServer(int s)
    • getLastModifyTimePerServerPerClass

      public double getLastModifyTimePerServerPerClass(int s, int c)
    • getLastServiceModifyTime

      public double getLastServiceModifyTime()
      Description copied from interface: JobInfoList
      Gets the time of the last service modify.
      Specified by:
      getLastServiceModifyTime in interface JobInfoList
      Returns:
      Time of the last modify.
    • getLastServiceModifyTimePerClass

      public double getLastServiceModifyTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last service modify of the specified job class.
      Specified by:
      getLastServiceModifyTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last service modify of the specified job class.
    • getLastRetrialOrbitModifyTime

      public double getLastRetrialOrbitModifyTime()
      Description copied from interface: JobInfoList
      Gets the time of the last retrial orbit modify.
      Specified by:
      getLastRetrialOrbitModifyTime in interface JobInfoList
      Returns:
      Time of the last retrial orbit modify.
    • getLastRetrialOrbitModifyTimePerClass

      public double getLastRetrialOrbitModifyTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the time of the last retrial orbit modify of the specified job class.
      Specified by:
      getLastRetrialOrbitModifyTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Time of the last retrial orbit modify of the specified job class.
    • getTotalSojournTime

      public double getTotalSojournTime()
      Description copied from interface: JobInfoList
      Gets the total sojourn time.
      Specified by:
      getTotalSojournTime in interface JobInfoList
      Returns:
      Total sojourn time.
    • getTotalSojournTimePerClass

      public double getTotalSojournTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the total sojourn time of the specified job class.
      Specified by:
      getTotalSojournTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Total sojourn time of the specified job class.
    • getLastJobSojournTime

      public double getLastJobSojournTime()
      Description copied from interface: JobInfoList
      Gets the sojourn time of the last removed job.
      Specified by:
      getLastJobSojournTime in interface JobInfoList
      Returns:
      Sojourn time of the last removed job.
    • getLastJobSojournTimePerClass

      public double getLastJobSojournTimePerClass(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the sojourn time of the last removed job of the specified job class.
      Specified by:
      getLastJobSojournTimePerClass in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Sojourn time of the last removed job of the specified job class.
    • getLastActiveServersTime

      public double getLastActiveServersTime()
    • lookFor

      public JobInfo lookFor(Job job)
      Description copied from interface: JobInfoList
      Looks for the job info that references the specified job.
      Specified by:
      lookFor in interface JobInfoList
      Parameters:
      job - Specified job.
      Returns:
      Job info that references the specified job.
    • getInternalJobInfoList

      public List<JobInfo> getInternalJobInfoList()
      Description copied from interface: JobInfoList
      Gets the internal job info list.
      Specified by:
      getInternalJobInfoList in interface JobInfoList
      Returns:
      Internal job info list.
    • getInternalJobInfoList

      public List<JobInfo> getInternalJobInfoList(JobClass jobClass)
      Description copied from interface: JobInfoList
      Gets the internal job info list of the specified job class.
      Specified by:
      getInternalJobInfoList in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Internal job info list of the specified job class.
    • getFirstJob

      public JobInfo getFirstJob()
      Specified by:
      getFirstJob in interface JobInfoList
    • getLastJob

      public JobInfo getLastJob()
      Specified by:
      getLastJob in interface JobInfoList
    • getJob

      public JobInfo getJob(int i)
      Description copied from interface: JobInfoList
      Returns ith job in queue
      Specified by:
      getJob in interface JobInfoList
      Parameters:
      i - - indec
      Returns:
      the resulting job info
    • add

      public void add(JobInfo jobInfo)
      --------------------------------------------------------------------- --------------------- "ADD" AND "REMOVE" METHODS --------------------- ---------------------------------------------------------------------
      Specified by:
      add in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be added.
    • addFirst

      public void addFirst(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Adds a new job info at the start of the list.
      Specified by:
      addFirst in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be added.
    • addLast

      public void addLast(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Adds a new job info at the end of the list.
      Specified by:
      addLast in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be added.
    • add

      public void add(int index, JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Adds a new job info at the specified index.
      Specified by:
      add in interface JobInfoList
      Parameters:
      index - Specified index.
      jobInfo - Reference to the job info to be added.
    • add

      public void add(int index, JobInfo jobInfo, boolean isPerClassHead)
      Description copied from interface: JobInfoList
      Adds a new job info at the specified index.
      Specified by:
      add in interface JobInfoList
      Parameters:
      index - Specified index.
      jobInfo - Reference to the job info to be added.
      isPerClassHead - If true, the job info will be put at the start of the per-class list. Otherwise, it will be put at the end.
    • updateAdd

      protected void updateAdd(JobInfo jobInfo)
    • updateAfterRemoval

      protected void updateAfterRemoval(JobInfo jobInfo)
    • remove

      public void remove(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list.
      Specified by:
      remove in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • removeOnly

      public void removeOnly(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list.
      Specified by:
      removeOnly in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • removeWithoutUpdating

      public void removeWithoutUpdating(JobInfo jobInfo)
    • updateWithoutRemoving

      public void updateWithoutRemoving(JobInfo jobInfo)
    • removeFirst

      public JobInfo removeFirst()
      Description copied from interface: JobInfoList
      Removes a job info at the start of the list.
      Specified by:
      removeFirst in interface JobInfoList
      Returns:
      Job info at the start of the list.
    • removeFirst

      public JobInfo removeFirst(JobClass jobClass)
      Description copied from interface: JobInfoList
      Removes a job info of the specified job class at the start of the list.
      Specified by:
      removeFirst in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Job info of the specified job class at the start of the list.
    • removeLast

      public JobInfo removeLast()
      Description copied from interface: JobInfoList
      Removes a job info at the end of the list.
      Specified by:
      removeLast in interface JobInfoList
      Returns:
      Job info at the end of the list.
    • removeLast

      public JobInfo removeLast(JobClass jobClass)
      Description copied from interface: JobInfoList
      Removes a job info of the specified job class at the end of the list.
      Specified by:
      removeLast in interface JobInfoList
      Parameters:
      jobClass - Specified job class.
      Returns:
      Job info of the specified job class at the end of the list.
    • doRemove

      protected void doRemove(JobInfo jobInfo, int position, int perClassPosition)
    • finalRemove

      protected void finalRemove(JobInfo what, LinkedList<JobInfo> list, int position)
    • analyzeQueueLength

      public void analyzeQueueLength(JobClass jobClass, Measure measurement, boolean isServerType, int serverTypeId)
      --------------------------------------------------------------------- ------------------- "ANALYZE" AND "UPDATE" METHODS ------------------- ---------------------------------------------------------------------
      Specified by:
      analyzeQueueLength in interface JobInfoList
      Parameters:
      measurement - Reference to the associated measure.
    • analyzeResponseTime

      public void analyzeResponseTime(JobClass jobClass, Measure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the response time for the specified job class. jobClass Specified job class. If null, analysis will be job class independent.
      Specified by:
      analyzeResponseTime in interface JobInfoList
      Parameters:
      measurement - Reference to the associated measure.
    • analyzeResidenceTime

      public void analyzeResidenceTime(JobClass jobClass, Measure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the residence time for the specified job class. jobClass Specified job class. If null, analysis will be job class independent.
      Specified by:
      analyzeResidenceTime in interface JobInfoList
      Parameters:
      measurement - Reference to the associated measure.
    • analyzeArrivalRate

      public void analyzeArrivalRate(JobClass jobClass, InverseMeasure measurement)
      Description copied from interface: JobInfoList
      Analyzes the arrival rate for the specified job class.
      Specified by:
      analyzeArrivalRate in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeThroughput

      public void analyzeThroughput(JobClass jobClass, InverseMeasure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the throughput for the specified job class.
      Specified by:
      analyzeThroughput in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeUtilization

      public void analyzeUtilization(JobClass jobClass, Measure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the utilization for the specified job class. jobClass Specified job class. If null, analysis will be job class independent.
      Specified by:
      analyzeUtilization in interface JobInfoList
      Parameters:
      measurement - Reference to the associated measure.
    • analyzeUtilizationJoin

      public void analyzeUtilizationJoin(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the utilization of a join for the specified job class.
      Specified by:
      analyzeUtilizationJoin in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated measure.
    • analyzeEffectiveUtilization

      public void analyzeEffectiveUtilization(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the effective utilization for the specified job class. jobClass Specified job class. If null, analysis will be job class independent.
      Specified by:
      analyzeEffectiveUtilization in interface JobInfoList
      Parameters:
      measurement - Reference to the associated measure.
    • analyzeDropRate

      public void analyzeDropRate(JobClass jobClass, InverseMeasure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the drop rate for the specified job class.
      Specified by:
      analyzeDropRate in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeBalkingRate

      public void analyzeBalkingRate(JobClass jobClass, InverseMeasure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the balking rate for the specified job class.
      Specified by:
      analyzeBalkingRate in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeRenegingRate

      public void analyzeRenegingRate(JobClass jobClass, InverseMeasure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the reneging rate for the specified job class.
      Specified by:
      analyzeRenegingRate in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeRetrialAttemptsRate

      public void analyzeRetrialAttemptsRate(JobClass jobClass, InverseMeasure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the retrial attempts rate for the specified job class.
      Specified by:
      analyzeRetrialAttemptsRate in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeRetrialOrbitSize

      public void analyzeRetrialOrbitSize(JobClass jobClass, Measure measurement, boolean isServerType, int serverTypeId)
      Description copied from interface: JobInfoList
      Analyzes the retrial orbit size for the specified job class.
      Specified by:
      analyzeRetrialOrbitSize in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated measure.
    • analyzeRetrialOrbitTime

      public void analyzeRetrialOrbitTime(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the retrial orbit time for the specified job class.
      Specified by:
      analyzeRetrialOrbitTime in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated measure.
    • analyzeResponseTimePerSink

      public void analyzeResponseTimePerSink(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the response time of a sink for the specified job class.
      Specified by:
      analyzeResponseTimePerSink in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeThroughputPerSink

      public void analyzeThroughputPerSink(JobClass jobClass, InverseMeasure measurement)
      Description copied from interface: JobInfoList
      Analyzes the throughput of a sink for the specified job class.
      Specified by:
      analyzeThroughputPerSink in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated inverse measure.
    • analyzeNumberOfServers

      public void analyzeNumberOfServers(Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the number of active servers in a Server section
      Specified by:
      analyzeNumberOfServers in interface JobInfoList
      Parameters:
      measurement - Reference to the associated measure
    • analyzeTardiness

      public void analyzeTardiness(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the tardiness of the specified job class.
      Specified by:
      analyzeTardiness in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated measure.
    • analyzeEarliness

      public void analyzeEarliness(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the earliness of the specified job class.
      Specified by:
      analyzeEarliness in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated measure.
    • analyzeLateness

      public void analyzeLateness(JobClass jobClass, Measure measurement)
      Description copied from interface: JobInfoList
      Analyzes the lateness of the specified job class.
      Specified by:
      analyzeLateness in interface JobInfoList
      Parameters:
      jobClass - Specified job class. If null, analysis will be job class independent.
      measurement - Reference to the associated measure.
    • updateTardiness

      protected void updateTardiness(JobInfo jobInfo)
    • updateEarliness

      protected void updateEarliness(JobInfo jobInfo)
    • updateLateness

      protected void updateLateness(JobInfo jobInfo)
    • updateQueueLength

      protected void updateQueueLength(JobInfo jobInfo)
    • updateResponseTime

      protected void updateResponseTime(JobInfo jobInfo)
    • updateResidenceTime

      protected void updateResidenceTime(JobInfo jobInfo)
    • updateArrivalRate

      protected void updateArrivalRate(JobInfo jobInfo)
    • updateThroughput

      protected void updateThroughput(JobInfo jobInfo)
    • updateUtilization

      protected void updateUtilization(JobInfo jobInfo)
    • updateUtilization

      protected void updateUtilization(VacationJob vacationJob, boolean onStartOfVacation)
    • updateUtilizationJoin

      protected void updateUtilizationJoin(JobInfo jobInfo)
    • updateEffectiveUtilization

      protected void updateEffectiveUtilization(JobInfo jobInfo)
    • updateEffectiveUtilization

      protected void updateEffectiveUtilization(VacationJob vacationJob)
    • updateDropRate

      protected void updateDropRate(JobInfo jobInfo)
    • updateBalkingRate

      protected void updateBalkingRate(JobInfo jobInfo)
    • updateRenegingRate

      protected void updateRenegingRate(JobInfo jobInfo)
    • updateRetrialAttemptsRate

      protected void updateRetrialAttemptsRate(JobInfo jobInfo)
    • updateRetrialOrbitSize

      protected void updateRetrialOrbitSize(Job job)
    • updateRetrialOrbitTime

      protected void updateRetrialOrbitTime(Job job)
    • updateResponseTimePerSink

      protected void updateResponseTimePerSink(JobInfo jobInfo)
    • updateThroughputPerSink

      protected void updateThroughputPerSink(JobInfo jobInfo)
    • updateNumberOfServers

      protected void updateNumberOfServers()
    • removeJob

      public void removeJob(JobInfo jobInfo)
      --------------------------------------------------------------------- -------------------------- "OTHER" METHODS --------------------------- ---------------------------------------------------------------------
      Specified by:
      removeJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • redirectJob

      public void redirectJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list when a job is redirected.
      Specified by:
      redirectJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • startJob

      public void startJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Changes a job info in the list when a job is started.
      Specified by:
      startJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be changed.
    • endJob

      public void endJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Changes a job info from the list when a job is ended.
      Specified by:
      endJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be changed.
    • dropJob

      public void dropJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list when a job is dropped.
      Specified by:
      dropJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • switchJob

      public void switchJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Changes a job info in the list when a job is switched.
      Specified by:
      switchJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be changed.
    • balkJob

      public void balkJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list when a job is balked.
      Specified by:
      balkJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • renegeJob

      public void renegeJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list when a job is reneged.
      Specified by:
      renegeJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • retryJob

      public void retryJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Adds a job info to the list when a job is retried.
      Specified by:
      retryJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be added.
    • produceJob

      public void produceJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Adds a job info to the list when a job is consumed.
      Specified by:
      produceJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be added.
    • consumeJob

      public void consumeJob(JobInfo jobInfo)
      Description copied from interface: JobInfoList
      Removes a job info from the list when a job is consumed.
      Specified by:
      consumeJob in interface JobInfoList
      Parameters:
      jobInfo - Reference to the job info to be removed.
    • changeNumberOfActiveServers

      public void changeNumberOfActiveServers(int numberOfServers)
      Description copied from interface: JobInfoList
      Changes the number of active servers when the enabling degree changes
      Specified by:
      changeNumberOfActiveServers in interface JobInfoList
    • setNumberOfServers

      public void setNumberOfServers(int numberOfServers)
      Description copied from interface: JobInfoList
      Sets the number of servers. This parameter is used to scale utilization.
      Specified by:
      setNumberOfServers in interface JobInfoList
      Parameters:
      numberOfServers - Number of servers.
    • setNetSystem

      public void setNetSystem(NetSystem netSystem)
      Description copied from interface: JobInfoList
      Sets the network system. This parameter is used to get simulation time.
      Specified by:
      setNetSystem in interface JobInfoList
      Parameters:
      netSystem - Network system.
    • setRegionSoftDeadlinesByClass

      public void setRegionSoftDeadlinesByClass(double[] regionSoftDeadlinesByClass)
      Description copied from interface: JobInfoList
      Sets the region soft deadlines for each class to be used by tardiness measures. This method should only be called when the relevant station is a blocking region input station.
      Specified by:
      setRegionSoftDeadlinesByClass in interface JobInfoList
      Parameters:
      regionSoftDeadlinesByClass - Soft deadlines for each class.
    • getTime

      protected double getTime()
    • setServerNumRequired

      public void setServerNumRequired(int[] serverNumRequired)
      Description copied from interface: JobInfoList
      Sets the number of servers required by a class. This parameter is used to scale utilization.
      Specified by:
      setServerNumRequired in interface JobInfoList
      Parameters:
      serverNumRequired - Number of servers required by a specific class, getting by id.
    • analyzeCacheHitRate

      public void analyzeCacheHitRate(JobClass jobClass, Measure measurement)
      Method to calculate cache hit rate
      Specified by:
      analyzeCacheHitRate in interface JobInfoList
    • getJobsTotalCacheMissCount

      public int getJobsTotalCacheMissCount()
      Specified by:
      getJobsTotalCacheMissCount in interface JobInfoList
    • getJobsTotalCacheHitCount

      public int getJobsTotalCacheHitCount()
      Specified by:
      getJobsTotalCacheHitCount in interface JobInfoList
    • getJobsCacheCountPerClass

      public int getJobsCacheCountPerClass(JobClass jclass)
      Specified by:
      getJobsCacheCountPerClass in interface JobInfoList
    • updateCacheHitRate

      protected void updateCacheHitRate(JobClass jclass)
    • CacheJob

      public void CacheJob(JobClass jclass, boolean isHit)
      Specified by:
      CacheJob in interface JobInfoList
    • startsServerVacation

      public void startsServerVacation(VacationJob vacationJob)
      Description copied from interface: JobInfoList
      Methods related to server vacations
      Specified by:
      startsServerVacation in interface JobInfoList
    • endsServerVacation

      public void endsServerVacation(VacationJob vacationJob)
      Specified by:
      endsServerVacation in interface JobInfoList