xenpaging流程详解(1)
来源:互联网 发布:sql 异常 字符串截断 编辑:程序博客网 时间:2024/06/14 15:18
1) xenpaging初始化。
2) 交换文件初始化。
3) 信号处理初始化。
4) 创建page_in线程。
5) 将内存页page out到交换文件上。
程序中,通过for循环调用evict_victim函数将数量为num_pages的页从虚拟机中page out出来。
当找不到num_pages个满足page out条件的页时,尽可能多的将页page out出来,然后,跳出for循环。
6) 进入一个while大循环,完成整个xenpaging开启过程中的页交换动作。
在5)之后,虚拟机中一部分页被交换到文件中,内存释放掉了。当虚拟机系统再次用到page out页时,会触发缺页中断。该中断被xen捕获,会进一步触发xenpaging的还页动作。此时,xen会重新分配一页,并从交换文件中读取该页信息进行填充,最终,重新映射回虚拟机内部。
当balloon向下调整内存时,其释放的页若为page out的页,则将该页丢掉,在位图里标记为page in。
7) 接收到结束信号,进行page in动作。
当xenpaging接收到SIGTERM(kill)或者SIGINT(ctrl+c)信号时,将执行page in的动作,在将所有交换出的内存页交换回虚拟机后,进行结束进程前的清理动作。
8) 清理动作xenpaging_teardown。
- xenpaging流程详解(1)
- xenpaging流程详解(2)
- xenpaging流程详解(3)
- xenpaging流程详解(4)
- xenpaging流程详解(5)
- CAS认证流程详解(1)
- CAS认证(1):流程详解
- 二维码闪电登录流程详解,附demo(1/2)
- uboot启动流程详解(1)-_start
- 快速开发平台(流程建模详解)
- javascript语法详解(七)------流程控制
- Android蓝牙技术Bluetooth使用流程(详解)
- Spring Boot启动流程详解(一)
- OK6410 uboot启动流程详解(一)
- MySql-Binlog协议详解(流程篇)
- Spring Boot 启动流程详解(一)
- CentOS系统启动流程详解(一)
- 用户登录流程详解 +volley(StringRequest)
- 两个SurfaceView显示预览的问题 setZOrderMediaOverlay(true)
- 读取MYSQL中文数据乱码,解决data too long for column 'title' at row 1
- struts2 跳转类型
- 木块砌墙---解题报告
- VMware tools 共享文件夹安装时:What is the location of the directory of C header files (install VMware tools)
- xenpaging流程详解(1)
- XML 树结构
- Git服务器搭建及SSH无密码登录设置
- git使用详细介绍
- Spring
- js 闭包 问题
- Image不同加载方式对内存的影响
- SQL SERVER2012新分页方式
- flex4基于datGroup自定义布局实例