Linux内核分析SMP启动.ppt
《Linux内核分析SMP启动.ppt》由会员分享,可在线阅读,更多相关《Linux内核分析SMP启动.ppt(30页珍藏版)》请在三一办公上搜索。
1、Linux内核分析多处理器SMP系统结构,黄晶晶 1134444蒋乾悦 1131843魏浩洋 1131841,SMP简介,SMP简介SMP系统的引导SMP结构中的互斥SMP结构中的高速缓存与内存的一致性SMP结构中的中断机制SMP结构中的进程调度,SMP简介,在给定的时间内,CPU的最高速度是有限的,提高计算速度方法之一 就是使用多个CPU多处理器系统(Multi-Processor Systems,MPS)整个硬件系统由统一的操作系统控制,在处理器和程序之间实现作业、任务、程序等的全面并行,并行计算机分类根据指令流和数据流的不同,通常把计算机系统分为:单指令流单数据流(SISD)单指令流多数
2、据流(SIMD)多指令流单数据流(MISD)多指令流多数据流(MIMD)并行计算机系统绝大部分为MIMD系统(5类),包括并行向量机(PVP,Parallel Vector Processor);对称多处理机(SMP,Symmetric Multi Processor);大规模并行处理机(MPP,Massively Parallel Processor);机群(Cluster);分布式共享存储多处理机(DSM,Distributed Shared Memory),SMP简介,SMP简介,对称多处理器(Symmetric Multi-Processor,SMP)硬件上,CPU没主次之分(除启动和
3、初始化外),物理上采用同一种CPU,所有的 CPU通过同一条总线共享同一个内存以及所有的外部设备。为了减少访问内存冲突,SMP结构中的各个CPU通常都有各自的高速缓存软件上,每个CPU平等动态地从进程就绪队列中调度进程加以执行,中断请求也是等概率动态地分配给某个CPU,由其提供中断服务,系统总线,外部设备,SMP简介,对称多处理器(Symmetric Multi-Processor,SMP)SMP系统一般使用同一种商品化微处理器,具有片上或外置高速缓存(减少访问内存的冲突)经由高速总线(或交叉开关)连向共享存储器单一操作系统映像共享总线带宽。所有处理器共享总线带宽,完成对内存模块和I/O模块的
4、访问各个CUP独立地、异步地执行指令,SMP简介,优点:低通信延迟,各个进程通过读/写操作系统提供的共享数据缓存区来完成处理器间的通信,其延迟通常小于网络通信延迟缺点:可用性比较差可扩展性较差,SMP简介,组建SMP系统CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元相同的产品型号,同样类型的CPU核心完全相同的运行频率尽可能保持相同的产品序号编号,SMP简介,与单处理器结构相比,SMP结构的实现的特殊问题处理器间的同步与互斥高速缓存与内存之间内容的一致性问题对中断的处理,SMP的启动,SMP的启动 概述SMP启动的过程(
5、1)启动流程(2)相关函数介绍,SMP的启动,概述SMP结构中的CPU都是平等的,没有主次之分,这是基于系统中有多个进程的前提下在同一时间,一个进程只能由一个CPU执行系统启动对于SMP结构来说是一个特例,因为在这个阶段里系统中只有一个CPU,SMP的启动,概述SMP系统在启动,即刚加电或总清时,只能由一个CPU来执行系统引导和初始化。这个CPU称为“引导处理器”,即BP,其余的处理器处于暂停状态,称为“应用处理器”,即AP。,SMP的启动,概述BP完成系统的启动,并创建起多个进程,从而可以由多个CPU同时参与处理时,才启动AP,让它们在完成自身初始化以后投入运行。一旦各个AP都已投入运行,这
6、种暂时的主次关系便告结束,各CPU一律平等了。,SMP的启动,概述 在初始化阶段,“引导处理器”先完成自身的初始化,进入保护模式并开启页式存储管理机制,再完成系统特别是内存的初始化,然后对SMP进行初始化。,SMP的启动,SMP系统启动的过程,BP,SMP的启动,SMP系统启动的过程BP先完成自身初始化,然后从start_kernel()调用smp_init()进行SMP结构初始化smp_init()的主体是smp_boot_cpus(),依次调用do_boot_cpu()启动各个APAP通过执行trampoline.S的一段跳板程序,进入startup_32()完成一些基本初始化,SMP的启
7、动,SMP系统启动的过程AP进入start_secondary()作进一步初始化工作,进入自旋(测试全局变量smp_commenced是否变成1),等待一个统一的“起跑”命令BP完成所有AP启动后,调用smp_commence()发出该起跑命令每个CPU进入cpu_idle(),等待调度,SMP的启动,相关函数介绍smp_init()smp_boot_cpus()对BP的MTRR初始化,设置使用/不使用高速缓存,采用穿透/回写模式。收集CPU的信息,进行一些操作。如CPU逻辑号物理号映射数组的转化。BP的逻辑号总是0。x86_apicid_to_cpu x86_cpu_to_apicid,SM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 内核 分析 SMP 启动
链接地址:https://www.31ppt.com/p-5437924.html