protected int backfillGridlets() {
    	int nStarted = 0;
    	
    	if(jobOrder != null) {
    		Collections.sort(waitingJobs, jobOrder);
    	}
    	
    	Iterator<SSGridlet> it = waitingJobs.iterator();
    	while(it.hasNext()) {
    		SSGridlet gl = it.next();
    		if(gl.getStartTime() > 0) {
    			continue;
    		}
    		
    		if(startGridlet(gl)) {
    			nStarted++;
    			it.remove();
    		} else {
    			double avSlowdown = this.getXFactorThreshold(gl); 
    			if(getXFactor(gl) > avSlowdown) {
    				scheduleGridlet(gl);
    			}
    		}
    	}
    	
    	return nStarted;
    }