NQS supplies additional, crude scheduling control in that it terminates a job that uses more than its requested CPU or wall-clock time. Once NCSS merges the several host status files into a global picture, it is ready to schedule. Within a group, NQS priorities determine the order jobs start. But, because NQS jobs within a queue almost always have the same priority, this means queues are actually run in subpriority order. The more recent the activity, the lower the jobs are moved.
Monopoly checks prevent one user from using too many of the job slots for a queue.
Set each job's base priority to the priority of the queue it is in. Set the job's subpriority based on the user's last activity in that queue. If the user hasn't used the queue within the history interval, the subpriority is set to the job submission time. If the user has a job currently active in the queue, the subpriority is set to the current time. Otherwise, the subpriority is set to the latest time a job from that user finished in that queue.