CloudletSchedulerSpaceShare's getCurrentRequestedMips() gives a return based on getCurrentMipsShare().
However, getCurrentMipsShare() returns the double list currentMipsShare of the base CloudletScheduler, which in turn is set by the base setCurrentMipsShare(mipsShare). This method is called by CloudletSchedulerSpaceShare's updateVmProcessing(double currentTime, List mipsShare), which uses setCurrentMipsShare() based on it's input mipsShare, which is based on getCurrentRequestedMips().
As such after it is initialized to full usage, it is never properly updated to reflect the current demand due to this self referental loop.
I would suggest updating CloudletSchedulerSpaceShare's getCurrentRequestedMips() to give a responce based on it's current cloudlets, not getCurrentMipsShare().
CloudletSchedulerSpaceShare's getCurrentRequestedMips() gives a return based on getCurrentMipsShare(). However, getCurrentMipsShare() returns the double list currentMipsShare of the base CloudletScheduler, which in turn is set by the base setCurrentMipsShare(mipsShare). This method is called by CloudletSchedulerSpaceShare's updateVmProcessing(double currentTime, List mipsShare), which uses setCurrentMipsShare() based on it's input mipsShare, which is based on getCurrentRequestedMips().
As such after it is initialized to full usage, it is never properly updated to reflect the current demand due to this self referental loop.
I would suggest updating CloudletSchedulerSpaceShare's getCurrentRequestedMips() to give a responce based on it's current cloudlets, not getCurrentMipsShare().