Class SingleRunQueue

    • Constructor Detail

      • SingleRunQueue

        public SingleRunQueue​(IProcessQueue queue_prototype)
    • Method Detail

      • getNextRunnableProcess

        public IActiveProcess getNextRunnableProcess()
        Description copied from interface: IRunQueue
        Returns the next runnable process.
        Returns:
      • createNewInstance

        public IRunQueue createNewInstance()
        Description copied from interface: IRunQueue
        Prototype Object Pattern. Creates a new instance of the given runqueue.
        Returns:
      • identifyMovableProcesses

        public List<IActiveProcess> identifyMovableProcesses​(IResourceInstance targetInstance,
                                                             boolean prio_increasing,
                                                             boolean queue_ascending,
                                                             int processes_needed)
        Description copied from interface: IRunQueue
        Composes a list of processes movable to the specified target. The list is ordered in terms of what suits best for the target resource instance. The first element is better than the second which is better than the third and so on. Note that currently running processes are never added to the movable list.
        Parameters:
        targetInstance - Resource instance the processes shall be moved to.
        prio_increasing - If true, the processes in the resulting list are ordered with an increasing priority, otherwise with a decreasing priority.
        queue_ascending - If true, processes in the resulting list are in the same order as in the queue, otherwise they are in reverse order.
        processes_needed - The maximum number of processes needed for the resource.
        Returns:
        An ordered list of processes movable to the target resource.
      • getBestRunnableQueue

        public IProcessQueue getBestRunnableQueue​(IResourceInstance instance)
        Parameters:
        instance - Resource instance a process is needed for.
        Returns:
        Returns the most urgent queue which contains at least one process which can run on the given instance. NULL if no such queue exists.
      • processStarving

        public boolean processStarving​(double threshold)
      • setWaitingTime

        public void setWaitingTime​(IActiveProcess process,
                                   double waiting)
      • getWaitingTime

        public double getWaitingTime​(IActiveProcess process)
      • getStarvingProcesses

        public List<IActiveProcess> getStarvingProcesses​(double starvationLimit)
      • resetStarvationInfo

        public void resetStarvationInfo()