1) Priority

  • deadline induced
    • postpone in favor of activity with earlier deadline
  • importance induced
    • postpone in favor of activity with higher importance
    • importance measure? money, reputation impact

2) Cost of the context switch

  • interrupt
    • time quantum not long enough to finish the activity (depends on time estimates)
    • can be avoided with careful context store&load on interrupt/resume

3) Spacetime block

  • not proper place
    • activity is bound to certain place => move to that place
  • waiting for end of another activity
  • waiting for resource (occupied, non-existent)
    • try buy, multiply, strengthen,… the resource

4) Fatigue

  • activities where lack of attention could lead to damage, loses, etc.
  • solution: have a rest (and then fulfill the activity), use drugs

5) Optimization

  • reordering makes for better time/resource utilization
    • by reducing transfers, context switches,…
  • be aware of “premature optimization” – i.e. rather work than over-plan

Notes

  • Warning It’s also important to have an external source if interrupts to allow at least scheduling the activities (aka non-cooperative scheduling).
  • Do you still have more than one activity to do? The you must optimize (e.g. utility).
  • Deadline and blocking activity form a launch window.