向多核平台移植操作系统的研究.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:4 大小:293KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

向多核平台移植操作系统的研究.pdf

向多核平台移植操作系统的研究.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据■E■j蜀口向多核平台移植操作系统的研究鳘墅蔓;回曼篮垩鱼塑堕堡堡丕筮鱼盟窒蔡勉,田健生Multi—core随着硬件技术的飞速发展,双核乃至多核的计算机的普及,运用硬件资源为应用程序提供运行平台的操作系统也要有相应的调整。现在绝大多数操作系统都支持多核平台以及多线程及超线程技术。而对于安全有特殊需要的Linux安全操作系统,在多核平台上运行多线程的应用程序时可能会出现一些新的情况,而在特定条件下,它们会对系统的安全和稳定构成威胁。这些问题主要体现在存储缓存(MemoryCaching)和线程优先Priority)方面。1在内存/缓存方面,在临时存储器共享的多核运算平台上可能出现伪共享问题现在的主流个人计算机多核计算平台中的每个执行核都拥有自己的L1Cachd而共享L2Cache,多核工作站也一般是每个执行核拥有自己的Cache而共享内存。由于CPU的处理速度远远高于内存,总线等工作单元的存取,传输速度,为了更有效地利用CPU资源,一般把多个数据段组合在Cache的同一行中传送给处理器,于是,在某个时间点上,一个处理器核上的L1Cache与另一个处理器核上的L1Cache可能会出现同步方面问题。假设有两个线程分别运行在双核处理器的两个执行核上,它们同时对邻近的存储器单元进行读写操作。由于操作系统对这两个线程的管理是全局的,而Cache存储器是基于局部性原理工作的,故不同的数据可能存放在Cache的同一行中。于是,即使某个线程所需的位于某个Cache块中的数据尚未使用过,操作系统还是可能会因为另一个处在其他执行核上的线程使用了此Cache行中其他块而将此行标记为无效,要求其下一级的存储单元重新读入这行数据。如果两个线程都要对这个Cache块进行连续多次的写操作(比如循环语句中的循环次数计数变量),使得这个块要不断的在两个CPU间传递,从而极大的影响系统运行速度。这就是常见的伪共享(FalseSharing)问题,如图1所示。摘要:随着硬件技术的飞速发展,双核乃至多核的计算机的普及.操作系统向多核平台移植的需要也越来越迫切。详细分析操作系统在向多CPU支持的平台移植时可能遇见的伪共享问题及优先级错置问题的产生原因,针对不同情况提出了按规范修改代码、增加内核调度监控线程及将特定程序绑定在单CPU运行等不同对策,并给出了实现方法。OperatingSystemEnvironmentAbstract:With级(ThreadSharing问题(北京工业大学电子信息与控制工程学院北京关键词:多核平台;伪共享;线程优先级;操作系统中图分类号:TP311文献标识码:A文章编号:1004—373X(2010)05—182一03ResearchTransplantingoftoMian,TIANJiansheng182图1共享L2Cache的双核系统中的100124)onCAITechnology。Beijing,100124,China)thefastdevelopmenthardwareandcomputerswithmutli—coretechnology,theoperatingsystemistransplantedenvironmenturgently.Thefalsesharingthreadpriorityquestionsmaybefoundwithinmi—grateprocessanalysed,fordifferentconditions.differentmethodssuchmodifyingcode,addingkernelcontrolrunningspecialprogramsingleCPUproposed.Keywords:mutli—coreenvironment;falsesharing;threadpriority;operating收稿日期:2009~10一10False(CollegeElectronicInformationControlEngineering.BeijingUniversityareassourcea万方数据这会导致一些在单核平台上运行很稳定的程序在多核平台上却不能正常工作。对于此问题,文献[1]给出了详细说明。而在安全操作系统中,由于有对隐通道进行分析审计的安全功能模块存在,在处理器进行此严重异常操作的情况下应该会进行报警并执行相应的安全措施,从而使系统无法正常运行。事实上,伪共享问题早在十几年前安装有多个单芯片处理器的大规模并行处理机出现时就已经浮出水面,十几年来。国内外对其进行了大量的研究,取得了诸多进展,但由于此问题起源于硬件架构,所以一直没能找到一个完美的解决办法。现在一般的处理技术有:在编程、编译时将非共享的数据分放到不同的Cache行;将全局变量复