1 cloudlet 什么意思
首先cloulet 并不继承cloudsim 中的simEntity ,所以他只是作为在不同的实体之间传递任务信息的用途。他作为一个任务的载体,需要记录的信息有:brokerId
2 cloudlet 的生命周期:
Created 初始化创建
Ready 已经获取了资源
InExec 在执行中,还没有执行结束
Queued 没有足够的pe,进入队列等候
FAILED 执行失败,但在工程中,并没有用到貌似
CANCELED 在数据中心进行强制关闭cancel 的时候
PAUSED 执行迁移
Resumed 重新启动,从暂停唤醒
Failed_resource_unavailable 一个在所有条件以外的以外
3 ResCloudlet
他不是对cloudlet的简单继承,而是对cloudlet的封装,并且加入了到达和结束时间,和当前完成的cloudlet的长度等属性。
4 cloudletScheduler 什么的干活 :
cloudsim自带了这么几个:
CloudletSchedulerDynamicWorkload ,CloudletSchedulerDynamicWorkload ,CloudletSchedulerTimeShared ,NetworkCloudletSpaceSharedScheduler ,CloudletSchedulerDynamicWorkload
用途:
被vm 调用,用来维护这么几rescloudlet个队列:等待,在等待,在暂停,已完成,失败的这么几个队列 .然后在这几个队列中选择合适的任务,分配mips 等资源
5 基本属性
cloudletLength 在虚拟机计算资源上执行的依据,每次判断当前执行的长度和这个长度的大小,进而判断是不是任务完成
vm.getCloudletScheduler().updateVmProcessing(currentTime, mipsShare);rescloudlet.updateCloudletFinishedSoFar((long) (getCapacity(mipsShare) * timeSpam * rcl.getNumberOfPes() * Consts.MILLION))
cloudletFileSize 在计算带宽花销的时候用来计算,和单位带宽费用相乘,
cloudletOutputSize 在计算贷款花费的时候,会用来进行计算,和单位带宽费用相乘
5 cloudlet事件: submit 和return
broker.submit ,将输入的任务,提交到broker ,和vm进行绑定,在改vm当中进行执行,然后broker 在将这些vm映射到相应的云计算中心的主机上,进行放置到物理机上
return:将数据中心已经处理好的cloudlet列表给打broker的receiveList 列表当中,接着做一些数据中心和模拟的停止和清理工作。数据中心在每次执行cloudlet执行的时候,都要判断本数据中心,所有的host上的所有虚拟机当中的所有的cloudlet都执行完成,如果一个cloudlet执行完成就,发给broker 一个已经执行完成的cloudlet,因为提到的datacenter,broekr 都是simEntity , 所以他们之间的消息传递,都是用send()函数,制定收信息的模拟实体,然后cloudsim 会将该消息压入一个消息队列,每个调度周期,都会从future队列当中取消息进行知心,没有更多future消息,那么模拟结束。