I wanted to know what the difference between expected PEs and free PEs were? Specifically the methods vm.getFreePesNumber() and getExpectedFreePesNumber(). I read the JavaDocs but I still couldn't make sense of it. From what I understand expected PE gets the expected free PEs before the Vm is running and is updated as cloudlets are assigned to VMs but not submitted to the broker yet for running. I'm guessing the reason why getFreePesNumber() isn't used for DatacenterBrokerAbstract and other policies is because it isn't correctly updated as cloudlets are assigned to Vms? I'm not exactly sure why there are 2 methods for this and when each should ideally be used?
I was working on a custom DatacenterBroker policy (extended DatecenterBrokerSimple) and I noticed that getExpectedFreePesNumber() is sometimes higher than the number of PEs allocated to a Vm. In my scenario all Vms had only 1 PE but getExpectedFreePesNumber() showed sometimes 2 or 3 PEs when I printed out the Vm that would've mapped (I made sure to exclude null Vms when printing this so this is Vm that would've been mapped). Is this a bug? I left a screenshot and highlighted what I'm referring to in blue.