private synchronized void updateGridletProcessing()
	    {
	        // Identify MI share for the duration (from last event time)
	        double time = GridSim.clock();
	        double timeSpan = time - lastUpdateTime_;

	        // if current time is the same or less than the last update time,
	        // then ignore
	        if (timeSpan <= 0.0) {
	            return;
	        }

	        // Update Current Time as Last Update
	        lastUpdateTime_ = time;

	        // update the GridResource load
	        int size = gridletInExecList_.size();
	        double load = super.calculateTotalLoad(size);
	        super.addTotalLoad(load);

	        // if no Gridlets in execution then ignore the rest
	        if (size == 0) {
	            return;
	        }

	        ResGridlet obj = null;

	        // a loop that allocates MI share for each Gridlet accordingly
	        Iterator<ResGridlet> iter = gridletInExecList_.iterator();
	        while ( iter.hasNext() )
	        {
	            obj = (ResGridlet) iter.next();
	            // Updates the Gridlet length that is currently being executed
	            load = getMIShare( timeSpan, obj.getMachineID() );
	            obj.updateGridletFinishedSoFar(load);
	        }
	    }