




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux内核分析多处理器SMP系统结构 黄晶晶1134444蒋乾悦1131843魏浩洋1131841 SMP简介 SMP简介SMP系统的引导SMP结构中的互斥SMP结构中的高速缓存与内存的一致性SMP结构中的中断机制SMP结构中的进程调度 SMP简介 在给定的时间内 CPU的最高速度是有限的 提高计算速度方法之一就是使用多个CPU多处理器系统 Multi ProcessorSystems MPS 整个硬件系统由统一的操作系统控制 在处理器和程序之间实现作业 任务 程序等的全面并行 并行计算机分类根据指令流和数据流的不同 通常把计算机系统分为 单指令流单数据流 SISD 单指令流多数据流 SIMD 多指令流单数据流 MISD 多指令流多数据流 MIMD 并行计算机系统绝大部分为MIMD系统 5类 包括并行向量机 PVP ParallelVectorProcessor 对称多处理机 SMP SymmetricMultiProcessor 大规模并行处理机 MPP MassivelyParallelProcessor 机群 Cluster 分布式共享存储多处理机 DSM DistributedSharedMemory SMP简介 SMP简介 对称多处理器 SymmetricMulti Processor SMP 硬件上 CPU没主次之分 除启动和初始化外 物理上采用同一种CPU 所有的CPU通过同一条总线共享同一个内存以及所有的外部设备 为了减少访问内存冲突 SMP结构中的各个CPU通常都有各自的高速缓存软件上 每个CPU平等动态地从进程就绪队列中调度进程加以执行 中断请求也是等概率动态地分配给某个CPU 由其提供中断服务 系统总线 外部设备 SMP简介 对称多处理器 SymmetricMulti Processor SMP SMP系统一般使用同一种商品化微处理器 具有片上或外置高速缓存 减少访问内存的冲突 经由高速总线 或交叉开关 连向共享存储器单一操作系统映像共享总线带宽 所有处理器共享总线带宽 完成对内存模块和I O模块的访问各个CUP独立地 异步地执行指令 SMP简介 优点 低通信延迟 各个进程通过读 写操作系统提供的共享数据缓存区来完成处理器间的通信 其延迟通常小于网络通信延迟缺点 可用性比较差可扩展性较差 SMP简介 组建SMP系统CPU内部必须内置APIC AdvancedProgrammableInterruptControllers 单元相同的产品型号 同样类型的CPU核心完全相同的运行频率尽可能保持相同的产品序号编号 SMP简介 与单处理器结构相比 SMP结构的实现的特殊问题处理器间的同步与互斥高速缓存与内存之间内容的一致性问题对中断的处理 SMP的启动 SMP的启动概述SMP启动的过程 1 启动流程 2 相关函数介绍 SMP的启动 概述SMP结构中的CPU都是平等的 没有主次之分 这是基于系统中有多个进程的前提下在同一时间 一个进程只能由一个CPU执行系统启动对于SMP结构来说是一个特例 因为在这个阶段里系统中只有一个CPU SMP的启动 概述SMP系统在启动 即刚加电或总清时 只能由一个CPU来执行系统引导和初始化 这个CPU称为 引导处理器 即BP 其余的处理器处于暂停状态 称为 应用处理器 即AP SMP的启动 概述BP完成系统的启动 并创建起多个进程 从而可以由多个CPU同时参与处理时 才启动AP 让它们在完成自身初始化以后投入运行 一旦各个AP都已投入运行 这种暂时的主次关系便告结束 各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的启动 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 SMP的启动 CPU有APIC对SMP结构来说是必要条件 所以还要对BP进行是否有APIC的检查以及其初始化 setup local APIC 等 开始逐个启动各个AP phys cpu present map是个全局的CPU位图 根据此位图用一个循环依次对各个AP调用do boot cpu SMP的启动 smp boot cpus do boot cpu 1 通过fork by hand 为目标CPU建立一个内核线程 令idle为指向此线程task struct的指针 实际上fork by hand 就是调用do fork 通过init task取得指向这个task struct数据结构的指针并赋值给idleidle init task prev task idle thread eip start secondary 2 将idle thread eip设置指向start secondary 这是AP进入正常调度的入口 SMP的启动 3 此时AP不能直接执行start secondary 需借助跳板来一次中转 进入startup 32 完成一些基本初始化 setup trampoline 的作用就是为其复制好一块跳板 返回值赋给start eip start eip setup trampoline start eip中的地址是低级阶段地址idle thread eip是AP完成自身初始化 建立起页面映射后执行的高级阶段 SMP的启动 do boot cpu setup trampoline trampoline S是一段汇编代码 主要针对的是AP 使其进入保护模式 把跳转地址设为0 x00100000 1M 也就是系统引导以后初始化程序的起点startup 32 地址 把寄存器 ebx的内容设置成 表示这是一个次CPU SMP的启动 smp boot cpus do boot cpu 4 启动AP之前 BP通过本地APIC对AP的APIC执行一次初始化操作 就是本地APIC中的一些寄存器向目标CPU的APIC发一些信号 初始化在头尾分别把全局量init deasserted置0与置15 接着将start eip中的初始化程序入口地址发送给目标CPU 等待其回应 此地址写入目标CPU的APIC的控制寄存器APIC ICR6 AP受到启动后 先进入 跳板 进入startup 32 执行初始化 调用函数initialize secondary 进一步初始化 SMP的启动 相关函数介绍startup 32 initialize secondary AP在startup 32中进入BP为其准备的空转进程中 也就是自己的上下文 此进程的thread eip指向start secondary 所以initialize secondary 使其跳转到start secondary 函数 并重新设置了堆栈指针 SMP的启动 相关函数介绍start secondary 1 cpu init 对AP作进一步初始化 cpu init 主要为进程调度做准备 并把全局位图cpu initialized对应位置1 让BP知道此AP已经初始化完毕 SMP的启动 CPU之间的同步与协调 1 全局量init deasserted BP为AP初始化前将init deasserted设置为0 AP进入smp callin 后在一个循环中等待其成为1 保证AP在此期间不对APIC操作 2 全局位图cpu callout map AP在smp callin 中等待对应位变成1 BP则在do boot cpu 中将目标AP对应位设1 3 全局位图cpu callin map BP在do boot cpu 中向AP发出启动命令后 在一个定时循环中等待其对应位变成1 AP则在smp callin 结束前设置相应位为1 BP检测到或超时 才从do boot cpu 返回 4 全局量smp commenced AP的起跑命令 SMP的启动 相关函数介绍start secondary smp callin 调用calibrate dalay 测试CPU计算速度同步量的检测与设置cpu callin map标志位设置为1初始化TimeStampCount时间印记执行完smp callin 等待smp commenced变成1 进入cpu idle SMP的启动 相关函数介绍smp init smp boot cpus 我们回到smp boot cpus 继续往下讲 完成所有do boot c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤基高端新材料项目建议书(参考)
- 历史建筑修缮工程规划设计方案(参考模板)
- 老字号品牌振兴计划可行性研究报告(模板)
- 淮北师范大学《煤的洁净燃烧与高效利用技术》2023-2024学年第二学期期末试卷
- 合肥幼儿师范高等专科学校《编程开发》2023-2024学年第二学期期末试卷
- 的车辆安全检查工作制度
- 河北师范大学《量子力学ⅡA》2023-2024学年第二学期期末试卷
- 长沙学院《舞台演播室形体》2023-2024学年第二学期期末试卷
- 西北工业大学《飞行器制导与控制》2023-2024学年第二学期期末试卷
- 湖州职业技术学院《金属材料制备实验》2023-2024学年第二学期期末试卷
- (二模)保定市2025年高三第二次模拟考试地理试卷(含答案解析)
- 2023年1月浙江高考英语试题(含答案解析)
- 非全日制劳动合同协议
- 2025绿地集团购房合同样本
- 2025-2030再生胶产业规划专项研究报告
- 2025年人教版小学六年级下册趣味数学竞赛试卷(附参考答案)
- 珠宝展柜租赁合同协议
- 浙江2025年浙江省药品检查中心招聘笔试历年参考题库附带答案详解
- 一年级语文下学期期末过关考试题
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南
- 2025年邮政社招笔试试题及答案
评论
0/150
提交评论