操作系统对多核处理器的支持方法.ppt

操作系统对多核处理器的支持方法;outline;UMA(均匀存储访问)模型 物理存储器被所有节点共享; 所有节点访问任意存储单元的时间相同; 发生访存竞争时,仲裁策略平等对待每个节点,即每个节点机会均等; 各节点的CPU可带有局部私有高速缓存; 外围I/O设备也可以共享,且每个节点有平等的访问权利。;NUMA(非均匀存储访问)模型 物理存储器被所有节点共享,任意节点可以直接访问任意内存模块; 节点访问内存模块的速度不同,访问本地存储模块的速度一般是访问其它节点内存模块的3倍以上; 发生访存竞争时,仲裁策略对节点可能是不等价的; 各节点的CPU可带有局部私有高速缓存 (cache); 外围I/O设备也可以共享,但对各节点是不等价的。;COMA(全高速缓存存储访问)模型 各处理器节点中没有存储层次结构,全部高速缓存组成了全局地址空间; 利用分布的高速缓存目录D进行远程高速缓存的访问; COMA中的高速缓存容量一般都大于2级高速缓存容量 使用COMA时,数据开始时可以任意分配,因为在运行时它最终会被迁移到要用到它的地方。;NORMA(非远程存储访问)模型 所有存储器都是私有的,仅能由其本地处理器访问; 基于消息传递的并行计算机,每个节点都是由一台处理器、本地存储器和I/O外设组成的自治计算机。 绝大多数NORMA都不支持远程存储器的访问; 在DSM(分布式共享内存)中,NORMA就消失了。 ;构建并行机系统的不同存储结构;outline;多核操作系统中进程的分配与调度 进程的分配将进程分配到合理的物理核上,因为不同的核在共享性和历史运行情况下都是不同的。 有的物理核能够共享二级cache,而有的却是独立的。 进程间数据共享-分配给有共享二级cache的核,提升命中率。;多核下操作系统调度的研究热点 程序的并行研究; 多进程的时间相关性研究; 任务的分配与调度; 缓存的错误共享; 一致性访问研究; 进程间通信; 多处理器核内部资源竞争; 。。。 。。。;任务的分配 单核:只有一个核的资源可以使用-不存在核的任务分配问题; 多核:多个进程如何在各个核中分配? 均匀分配? 一起分配到一个核? 按照一定的算法分配? 受底层系统结构影响 SMP架构-只共享内存 CMP架构-也会共享二级缓存;任务的调度 各个核一致的调度算法 各个核独立的调度算法 进程是否一直运行在同一个核?还是迁移? 怎样调度实时任务和普通任务(优先级不同)? 系统是否要进行负载均衡? 调度策略(单核)-多核呢? 先来先服务FCFS 最短作业优先SJF 优先级调度 轮转法RR 多级队列调度;Linux 2.6内核的调度算法 时间复杂度O(1) (1)系统为每个处理器都维护一个单独的就绪队列 活动的就绪队列:包含当前时间片还有剩余的就绪任务 扩展的就绪队列:包含那些时间片已经用完的,重新分配时间片的就绪任务。 (2)任务的调度是基于优先级调度的 每个处理器上的任务共有140个优先级,每个就绪任务的优先级通过散列函数直接映射到处理器的位图数据结构上,通过位图的find-first-bit可以找到优先级最高的执行 (3)活动就绪队列和扩展就绪队列通过指针转换 (4)负载均衡 一个core的任务结束,转而处理其他最忙core上的任务 若所有core都有任务,则每200ms检查是否均衡;多核调度算法 对任务的分配进行优化。使同一应用程序的任务尽量在一个核上执行,以便达到有共享数据的任务尽量在一个核上面运行,而共享数据量少或者没有的任务在不同核上进行。 对任务的共享数据优化。由于CMP体系结构共享二级缓存,可以考虑改变任务在内存中的数据分布,使任务在执行时尽量增加二级缓存的命中率。 对任务的负载均衡优化。当任务在调度时,出现了负载不均衡,考虑将较忙处理器中与其他任务最不相关的任务迁移,以达到数据的冲突量小。;outline;高级编程中断控制器APIC是基于中断控制器分散在两个基础功能单元——本地单元以及I/O单元的分布式体系结构。在多核系统中,多个本地和I/O APIC单元能够作为一个整体通过ICC总线互相操作。 APIC发挥的功能有: 接受来自处理器中断引脚中的内部或外部I/O APIC的中断,然后将这些中断发送给处理器核处理。 在多核处理器系统中,接收发送核内中断消息。;APIC通过中断命令寄存器(ICR)来接收和发送IPI消息,ICR提供如下功能: 发送中断到其他处理器核 允许处理器核转发收到的其不服务的中断到其他处理器核来服务 给处理器核自身发送中断(一次自中断) 传递特殊IPI(核内中断)到其他处理器核,比如启动IPI消息 IPI消息可以用来启动处理器核或者分配工作任务到不同的处理器核 IPI消息能够用来在系统时或者系统执行的广泛功能单元中分发中断到不同的处理器核。;多核高级可

文档评论(0)

1亿VIP精品文档

相关文档