1. A method for scheduling jobs in a HPC (high-performance computing) system, comprising: maintaining a batch jobs queue comprising batch jobs, wherein each batch job in the batch jobs queue has a plurality of parameters associated therewith, the parameters comprising a first parameter that denotes a number of processors of the HPC system that are required to execute the batch job, a second parameter that denotes a user-estimated execution time of the batch job, and a third parameter that specifies a number of scheduling cycles that the batch job was skipped and not scheduled; initiating a scheduling cycle in response to a triggering event; and performing a scheduling process as part of the scheduling cycle to schedule one or more batch jobs in the batch jobs queue for execution by the HPC system, wherein performing the scheduling process comprises: determining a number m of available processors in the HPC system; determining the first parameter and the third parameter of a head batch job in the batch jobs queue; determining if the first parameter of the head batch job is less than or equal to m; determining if the third parameter of the head batch job is greater than or equal to a threshold value; and when the first parameter of the head batch job is determined to be less than or equal to m and the third parameter of the head batch job is determined to be greater than or equal to the threshold value, then: removing the head batch job from the batch jobs queue; and scheduling the head batch job for execution in the HPC system; and when the first parameter of the head batch job is determined to be not less than or equal to m, then: making a reservation time for executing the head batch job at a future time based on a fourth parameter of each active job being executed in the HPC system, wherein the fourth parameter of a given active job denotes a remaining execution time of the given active job; and selecting a set of one or more batch jobs in the batch jobs queue which can be scheduled for execution before the reservation time of the head batch job; wherein making the reservation time for executing the head batch job comprises: accessing a list of active jobs in which all active jobs executing in the HPC system are sorted starting from an active job with a smallest fourth parameter to an active job with a largest fourth parameter; utilizing the list of active jobs to determine a set of active jobs, starting from the active job with the smallest fourth parameter, which will result in a sufficient amount of available processors for the head batch job when execution of each active job in the set of active jobs is finished; computing a first value by adding a fourth parameter of an active job in the set of active jobs which has a greatest fourth parameter to a current time; computing a second value as a sum of m plus a total of each first parameter of each active job in the set of active jobs, less the first parameter for the head batch job; for each batch job in the batch jobs queue with a first parameter that is less than or equal to m, computing a third value which represents a number of processors of the HPC system that are required by the batch job at the computed first value; and making a reservation time for executing the head batch job based on the computed second value and the computed third value of each batch job.