sched - modrpc/info GitHub Wiki
- There are Jobs to be done by Workers.
- Offline jobs are set of jobs whose information is fully available before we start doing jobs.
- Online jobs are those which arrive while we're doing jobs.
- Ordinary jobs can be performed by any workers while special jobs can be performed only by workers which is capable of executing the job.
- A job contains operations to be executed.
- An operation in a job is either a primitive operation or Job call (e.g. task call).
- Active workers are autonomous workers with its own engine.
- Passive workers cannot initiate the work by themselves.
- wikipedia
- Given n jobs J1, J2, ..., Jn of varying sizes, which need to be scheduled on m identical machines, minimize the makespan.
- wikipedia
- Scheduling with work shop or group shop in which the flow control shall enable an appropriate sequencing for each job and for processing on a set of machines or with other resoures 1, 2, ...m in compliance with given processing orders.
- Maintaining a continuous flow of processing tasks is desired with a minimum of idle time and minimum of waiting time.
- Special case of job shop scheduling where there is strict order of all operations to be performed on all jobs.
- one task = one threads
- based on non-blocking I/O completion
- timer events
- application-specific messages
- (-) not easy to parallelize -- e.g. parallel event queue becomes bottleneck
- (+) high throughput
- (-) difficult to debug
- (+) no race condition, deadlock, synchronization issues
- (-) difficult to take advantage of physical processor cores
- (-) can block on page faults (single-threaded) or garbage collection