code: boolean isStarvedForFairShare(JobInfo info, TaskType type) {
      int desiredFairShare = (int) Math.floor(Math.min(
          (fairTasks(info, type) + 1) / 2, runnableTasks(info, type)));
      return (runningTasks(info, type) < desiredFairShare);
    }
docs: Is a job being starved for fair share for the given task type?
  This is defined as being below half its fair share *and* having a
  positive deficit.