KVM中的MVM 和 SVM

KVM中的MVM 和 SVM



MVM:在phoneMEFeature中是Master-modeVirtual Machine,“主模式虚拟机”。也可理解为Multi-taskingVirtual Machine,即多任务虚拟机。

SVM:Slave-modeVirtual Machine,从模式虚拟机。

传统的Java虚拟机运行在单任务模式下,每一个运行的Java应用程序都需要启动一个操作系统进程来运行一个Java虚拟机实例。在这样的情况下,由于每个Java虚拟机实例在创建和初始化的过程中都会重复占用某些资源,在运行时又有大量的运行时数据无法共享,造成了系统资源的浪费。多个应用程序之间的切换也是进程级的,导致程序切换速度较慢。而Java多任务虚拟机的思想就是用来解决多个应用程序同时运行的时候的资源与性能问题。

MVM的设计思想是用isolate的概念来封装单个的应用程序,而所有的isolate都运行在同一个Java虚拟机进程当中,由虚拟机来为它们分配资源和调度执行。由于在MVM的架构下可以大量地共享内存,减少因为重复加载class文件所需的I/O操作,并且多个应用程序的运行是在同一个操作系统进程内的,所以切换操作的开销非常低。这样的设计能大大提高整个系统的启动速度、数据吞吐量和减少资源占用。

 

MVM与SVM在很多方面的处理是不同的,如:

1.      在SVM模式下,MIDletSuiteLoader处理所有MIDletsuites;而MVM模式下,MIDletSuiteLoader只处理第一个MIDletsuite,该MIDlet suite被MIDPAMS和其他内部MIDlets使用。

2.      在SVM模式下,getCurrentIsolateId()直接返回0;而MVM模式返回当前isolateID。

3.      在SVM模式下,getMaxIsolates()直接返回1;而MVM模式返回允许的最大isolate个数。

4.      在MVM模式下,有很多资源是可以在各个isolates间通过cache共享的,但只有AMSisolate 才能写该cache。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值