商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

黄瀛:休眠复活技术

作者:IT168 胡铭娅 整理  2008-02-20

    下面谈一下保存和恢复状态,这基本上是和现有的休眠的实现是同样的方式,就是把这些需要保存的状态罗列了一下。大家可能容易忽略的,比如说除了CPU和设备之外,还有内存之外可能我们还要保存磁盘的状态,可能在PC平台上除了有OS之外,还有其他的,可能我们需要考虑一下其他的状态要怎么样的,怎么样和它们进行协作。

    写出内存镜像,基本上就是采用Keep domp方式来做的,基本上是利用Keep domp提供的接口去访问原内核的内存,把它写出去,另外还使用了一个Make down free,这和Keep domp配套使用的工具,它主要能把一些空闲页踢掉。

    恢复这个内存的镜像的话呢,我们采用这样一种方法,把要恢复的内存镜像,把它当作一个普通的连接内核的方式,把它载入到内核里面去,就像刚才那,把它先拷到X-Space,然后再把分页关掉,再把它拷回到原来的位置上去,通过这个方式来完成,所以说这部分的实现可以很简单。

   基于这样一个实现的话也有一些问题,我们现在遇到一个问题是和ACPI有关的问题,这样就是内核对整个系统不是完全的控制,这样跟他的协作的话存在一些问题,首先是Kexec要求基本上从理论上讲,Kexec要求ACPI应该是可重入的,就是你对ACPI,调用了ACPI方法在第一个内核里面,它的状态已经发生了一些改变,这时候你又启动新的内核,这样在新的内核里面又访问ACPI的状态,它可能就又修改了ACPI的状态,这时候这些状态是怎么样的交互的过程,可能存在一些问题。当然虽然现在我们在实际做的实验中还没有发现,但是这确实是一个潜在的问题,他们我们考虑过可能的一个方式,就是说是不是能够把ACPI的状态,在Kexec也做一些保存,然后在跳回的时候做一些恢复,通过这样的方式做一些这样的事情,来解决这个问题。

    另外就是基于Kexec休眠的实现,和ACPI也有一些问题,ACPI要求在休眠之前和之后去执行一些ACPI的方法,原来的内核里面都是在一个内核里面执行,现在要把它分到两个内核里面执行,所以这需要更多的测试。我们现在有一个简单的结论,由于采用了Kexec和Keep domp实现大部分功能,所以就比原来的休眠实现更简单,也解决了一些重复的问题。那么对于进程来说,因为它采用不同的内核来写出内存镜像,所以当驱动程序的问题解决了之后,这应该是可以去掉的,当然这个驱动程序主要是因为很多驱动程序是假设存在的,以这样的前提去写的,可能这方面还有很多工作要做。

    那么再一个就是它很容易超过一半的系统内存的大小,因为它不需要做拷贝,来制作内存镜像,可能只是要求系统空闲内存的大小要大于写出内核的所使用的内存的大小就可以了。我讲的内容基本上就是这些,大家有什么问题吗?

     提问者:能不能在Kexec重新加在新内核里,在加载之前重新初始化一编ACPI。

    黄瀛:我们的想法和你这个比较接近,跟你的这个想法有点相近。

    提问者:这个内存镜像会不会被压缩呢?

   黄瀛:这个压缩的过程是在Domp的过程中进行,因为在原来的位置上嘛,我们到执行Domp内核里面去,这里面有完整的一个系统,除了内存大小受一定限制之外,所以说可以完全做各种压缩等等都没有什么问题。 

   提问者:用这种方法的话会不会比以前快一些? 

    黄瀛:从理论上讲,如果做一次完整的,第二个内核有一个过程,如果要做这个完整的过程的话,那肯定是要慢一些的,但是我们也开发了一些优化的方法,来解决这个问题,就是我们把第二个内核,就是第一次是第二个内核完全的重启,等完成之后我们把第二个内核也休眠起来,第二次我们就不去做完整的过程,就相当于把写出的内核唤醒起来,有这样一个优化。

    提问者:我不理解,您在再内核拷贝出来期间,如果发生什么写操作的话,怎么解决呢?

    黄瀛:因为是在两个内核里面做的,你在写入磁盘的时候,和原来的内核是两个内核,原来的内核的内容都在原来的内存里面,是不会碰的。

    提问者:但是原来的内核里面的内容在运行?

    黄瀛:原内核所有的进程都不会运行了,因为进入到新的内核里面了,原来内核所有的进程都不再运行了。

    提问者:你在做的时候,实际上是起来一个新的内核。 

   黄瀛:对。现在我们有一些界面方面的问题,我们正在解决一些界面方面的问题,就是包括内核用户的界面,还有就是如何来保证非常稳定,有一个非常稳定的界面,我觉得大部分都已经完备了。

   提问者:那么我非常支持你们在这方面,我在这方面希望能够祝贺,而且我也鼓励你们将来在这方面进行更多的尝试。

   黄瀛:好的,谢谢大家。

1 2
【内容导航】
第1页: 第1页 第2页: 第2页
©版权所有。未经许可,不得转载。
[责任编辑:胡铭娅]