After all, the higher priority job could always just force a cooperating job to yield if needed.
But it would be better for the cooperating process to be able to put *itself* to the back of the line.. That way, the "cooperative" nature of the process-scheduling behavior is localized in the business-logic rather than centralized in a process-manager. Something like; Processor yield: true or Processor yield: false?