• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Linux核心模式下用户进程研究

发布: 2008-4-24 10:12 | 作者: 不详 | 来源: UML软件工程组织 | 查看: 189次 | 进入软件测试论坛讨论

领测软件测试网

2.2.3 切换时修改段选择子的方案

在x86平台下,核心态和用户态的区分主要是通过段选择子来确定的。具体的来说,在Linux环境下,核心态的代码段选择子0x10,数据段选择子为0x18;而用户态的代码段选择子为0x23,数据段选择子0x2B。如果试图使用户程序工作在核心模式,即Ring 0,一个简单的实现方案就是将用户程序的代码段和数据段选择子修改为核心态的代码段和数据段选择子。但在用户态下直接改变选择子显然是不允许的。由于模块在内核模式运行,故本方案采用动态加载模块的方式来修改选择子。

由于用户程序在系统调用过程中是在核心模式运行的,而在系统调用结束时由于选择子的重新恢复而转换回用户态继续运行,故本方案采取的方法是在系统调用中修改核心栈中保存的选择子寄存器值,使其在寄存器恢复时采用修改后的核心态的值,这样进程就得以停留在内核模式运行。

2.3 现实意义

方案的顺利实施,将使不同环境不同状况的用户进程得以在内核模式运行,对于在程序执行性能上有特殊需要的进程,如能在内核模式运行,将大幅度的提高程序运行效率。通过比较分析各种方案的原理和优缺点,可以找出各自的应用范围,为程序的编写和运行提供帮助,而一些能够实用的程序将能使符合条件的进程在适当的时候在内核运行以提高运行性能,这对于嵌入式服务器等环境非常重要。故对于用户进程在核心模式下运行方案的分析研究对于网络服务器等应用领域具有十分显著的应用前景,对于进一步提升Linux系统下进程的执行性能具有非常重要的意义。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网