向多核平台移植操作系统的研究
更新时间:2024-04-25 23:34:01 阅读量: 综合文库 文档下载
- 平台移植性推荐度:
- 相关推荐
龙源期刊网 http://www.qikan.com.cn
向多核平台移植操作系统的研究
作者:蔡 勉 田健生
来源:《现代电子技术》2010年第05期
摘 要:随着硬件技术的飞速发展,双核乃至多核的计算机的普及,操作系统向多核平台移植的需要也越来越迫切。详细分析操作系统在向多CPU支持的平台移植时可能遇见的伪共享问题及优先级错置问题的产生原因,针对不同情况提出了按规范修改代码、增加内核调度监控线程及将特定程序绑定在单CPU运行等不同对策,并给出了实现方法。 关键词:多核平台;伪共享;线程优先级;操作系统 中图分类号:TP311文献标识码:A 文章编号:1004-373X(2010)05-182-03
Research on Transplanting of Operating System to Multi-core Environment CAI Mian,TIAN Jiansheng
(College of Electronic Information and Control Engineering,Beijing University of Technology,Beijing,100124,China)
Abstract:With the fast development of hardware and computers with mutli-core technology,the operating system is transplanted to mutli-core environment urgently.The false sharing and thread priority questions maybe found within the migrate process are analysed,for different
conditions,different methods such as modifying the source code,adding a kernel thread to control priority and running special program on single CPU are proposed.
Keywords:mutli-core environment;false sharing;thread priority;operating system
随着硬件技术的飞速发展,双核乃至多核的计算机的普及,运用硬件资源为应用程序提供运行平台的操作系统也要有相应的调整。现在绝大多数操作系统都支持多核平台以及多线程及超线程技术。而对于安全有特殊需要的Linux安全操作系统,在多核平台上运行多线程的应用程序时可能会出现一些新的情况,而在特定条件下,它们会对系统的安全和稳定构成威胁。这些问题主要体现在存储缓存(Memory Caching)和线程优先级(Thread Priority)方面。 1 在内存/缓存方面,在临时存储器共享的多核运算平台上可能出现伪共享问题
现在的主流个人计算机多核计算平台中的每个执行核都拥有自己的L1 Cache而共享L2 Cache,多核工作站也一般是每个执行核拥有自己的Cache而共享内存。由于CPU的处理速度远远高于内存,总线等工作单元的存取,传输速度,为了更有效地利用CPU资源,一般把多个数据段
龙源期刊网 http://www.qikan.com.cn
组合在Cache的同一行中传送给处理器,于是,在某个时间点上,一个处理器核上的L1 Cache与另一个处理器核上的L1 Cache可能会出现同步方面问题。
假设有两个线程分别运行在双核处理器的两个执行核上,它们同时对邻近的存储器单元进行读写操作。由于操作系统对这两个线程的管理是全局的,而Cache存储器是基于局部性原理工作的,故不同的数据可能存放在Cache的同一行中。于是,即使某个线程所需的位于某个Cache块中的数据尚未使用过,操作系统还是可能会因为另一个处在其他执行核上的线程使用了此Cache行中其他块而将此行标记为无效,要求其下一级的存储单元重新读入这行数据。如果两个线程都要对这个Cache块进行连续多次的写操作(比如循环语句中的循环次数计数变量),使得这个块要不断的在两个CPU间传递,从而极大的影响系统运行速度。这就是常见的伪共享(False Sharing)问题,如图1所示。 图1 共享L2 Cache的双核系统中的 False Sharing问题
这会导致一些在单核平台上运行很稳定的程序在多核平台上却不能正常工作。对于此问题,文献[1]给出了详细说明。
而在安全操作系统中,由于有对隐通道进行分析审计的安全功能模块存在,在处理器进行此严重异常操作的情况下应该会进行报警并执行相应的安全措施,从而使系统无法正常运行。 事实上,伪共享问题早在十几年前安装有多个单芯片处理器的大规模并行处理机出现时就已经浮出水面,十几年来,国内外对其进行了大量的研究,取得了诸多进展,但由于此问题起源于硬件架构,所以一直没能找到一个完美的解决办法。
现在一般的处理技术有:在编程、编译时将非共享的数据分放到不同的Cache行;将全局变量复制到一个函数内的局部变量,在函数结束前再把它复制回去;在进程中,将数据结构集中处理并使每个数据元素(可以是确认不会引起伪共享的几个变量,以避免因在Cache行中填充大量空白而浪费太多系统资源)占有一个Cache行;将引发了伪共享的线程移动到一个执行核上。 应该注意到,上面提到的前三种方法都要对源代码进行分析和改写,这对整个操作系统以及其下运行的大量应该程序来说工作量太过巨大,而最后一个方法虽然可以实时的处理伪共享问题,可它要对Cache进行不断的监控,其造成的额外系统资源开销过大,而且,如果是在讲求所有操作行为都应该是可预期的可信计算系统中,多出这样一个具有最高权限的进程很可能会与已有的TSP安全策略(TCB Security Policy)产生冲突,影响到系统的平稳运行。
综上,作为以安全稳定为重点的操作系统,在升级至多核平台后应以牺牲部分性能为代价对未经改写的源代码进行兼容处理,即对其的编译执行提供兼容模式,令其只在一个执行核上运行。
正在阅读:
向多核平台移植操作系统的研究04-25
高中历史教师基本功培训与展示活动(二)03-28
冲压工艺及模具设计必知以及塑料成型模具07-02
分析化学实验(第三版)思考题答案01-05
国标本苏教版小学一年级语文下册期中试卷08-16
四年级可爱的榆林-教案06-09
《狮子王》英文台词11-26
那句话激励着我作文600字07-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 多核
- 移植
- 操作系统
- 研究
- 平台
- 2016尔雅论语今读课后作业答案
- 20160705-畅通郑州白皮书(2016-2018)-项目库
- 污水处理厂工程质量验收记录表(全套表格)(1)
- 2017高中化学必背知识点归纳与总结
- 日本“失去的20年”即日本泡沫危机的结构性原因
- 商业银行银行账户利率风险管理指引-中国银行保险监督管理委员会
- 民办非企业单位条例与2016修订稿对照表 - 图文
- 2015年高三一轮物理测试题(理综13) - 图文
- 2012 经济法小抄本
- 经销商费用的管控
- 关于电力建设工程质量监督总站有关人员调整的通知 - 图文
- 2施工组织设计(1)
- ASP动态网页设计试卷A(060701)答案
- Hgh肽能骨骼增生疗法体系
- dell md3200磁盘阵列调试步骤 - 图文
- 高速公路业务试题(班长)
- 《单片机原理及应用》习题及答案
- ZD-024-01中药饮片购进、装斗、清斗、储存、养护和销售管理制度
- 仪器设备(标准物质)配置一览表(无机)
- 炼钢厂应急预案