caoss.simulator.os

## Interface Scheduler<S>

- All Known Implementing Classes:
    FCFSScheduler, FSOScheduler, RoundRobinScheduler

      public interface Scheduler<S>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `ioConcluded(ProcessControlBlock<S> pcb)` Process with the given control block has concluded the requested input/output operation
    `void` | `ioRequest(ProcessControlBlock<S> pcb)` Process with the given control block has performed an input/output operation
    `void` | `newProcess(Program program)` Create a new process to run the program with given name
    `void` | `processConcluded(ProcessControlBlock<S> pcb)` Process with the given control block has concluded
    `void` | `quantumExpired(ProcessControlBlock<S> pcb)` Process with the given control block has expired its quantum

- - ### Method Detail

    - #### newProcess

          void newProcess(Program program)

      Create a new process to run the program with given name
      Parameters:
        `program` - The program to run

    - #### ioRequest

          void ioRequest(ProcessControlBlock<S> pcb)

      Process with the given control block has performed an input/output operation
      Parameters:
        `pcb` - The process control block

    - #### ioConcluded

          void ioConcluded(ProcessControlBlock<S> pcb)

      Process with the given control block has concluded the requested input/output operation
      Parameters:
        `pcb` - The process control block

    - #### quantumExpired

          void quantumExpired(ProcessControlBlock<S> pcb)

      Process with the given control block has expired its quantum
      Parameters:
        `pcb` - The process control block

    - #### processConcluded

          void processConcluded(ProcessControlBlock<S> pcb)

      Process with the given control block has concluded
      Parameters:
        `pcb` - The process control block