ch2-2.1处理器_第1页
ch2-2.1处理器_第2页
ch2-2.1处理器_第3页
ch2-2.1处理器_第4页
ch2-2.1处理器_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统教程(第4版)第二章处理器管理,高等教育出版社出版2010年9月,第二章处理器管理,2.1中央处理器2.2中断技术2.3进程及其实现2.4线程及其实现2.5Linux进程和线程2.6Windows2003进程和线程2.7处理器调度2.8处理器调度算法2.9Linux调度算法2.10Windows2003调度算法,2.1中央处理器,2.1.1处理器2.1.2程序状态字寄存器,2.1.1处理器,单处理器和多处理器系统共享存储(紧密耦合)多处理机系统和分布存储(松散耦合)多处理机系统。共享存储多处理机系统分为主从式系统(MSP)和对称式系统(SMP)。集群(cluster)是分布存储多处理机系统重要实例,寄存器(1),计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。,寄存器(2),通用寄存器-EAX,EBX,ECX和EDX指针及变址寄存器-ESP,EBP,ESI及EDI段选择符寄存器-CS、DS、SS、ES、FS、GS指令指针寄存器和标志寄存器-EIP、EFLAGS控制寄存器-CR0,CR1,CR2和CR3外部设备使用的寄存器,寄存器(3),EAXEBXECXEDX,AXBXCXDX,ESPEBPESIEDI,SPBPSIDI,寄存器(4),CSDSSSES,FSGS,IP,EFAG,CR0,CR1,CR2,CR3,从内存角度,物理内存,0 x00000000,内核代码内核静态数据,0 x00400000,0 x20000000,用户代码或数据,0 xc0000000,虚拟空间,(512M),(3G),0 x00000000,0 xe0000000,0 xffffffff,堆栈,堆栈是记录C程序运行时调用路径和参数的空间函数调用框架传递参数保存返回地址提供局部变量空间C语言编译器对堆栈的使用有一套规则堆栈运行机制的意义理解操作系统一些关键性代码的基础,堆栈相关寄存器,esp:堆栈指针(stackpointer)指向系统栈最上面一个栈帧的栈顶ebp:基址指针(basepointer)指向系统栈最上面一个栈帧的底部在C语言中记录当前函数调用基址eip:指令寄存器(extendedinstructionpointer)指向下一条等待执行的指令地址,cs:eip的寻址方式,总是指向下一条的指令地址顺序执行:总是指向地址连续的下一条指令跳转/分支:执行这样的指令的时候,cs:eip的值会根据程序需要被修改call:将当前cs:eip的值压入栈顶,cs:eip指向被调用函数的入口地址ret:从栈顶弹出原来保存在这里的cs:eip的值,放入cs:eip中发生中断时?,堆栈操作,push以字节为单位将数据(4个字节)压入栈,从高到低按字节依次将数据存入ESP-1、ESP-2、ESP-3、ESP-4的地址单元pop过程与PUSH相反call调用一个函数或过程此时下一条指令地址会被压入堆栈,以便返回时能恢复执行下条指令ret从一个函数或过程返回之前call保存的下条指令地址会从栈内弹出到EIP寄存器中程序转到CALL之前下条指令处执行,esp,ebp,高地址,低地址,esp,利用堆栈实现函数调用和返回,/调用者calltarget,/建立被调用者函数的堆栈框架pushl%ebpmovl%esp,%ebp/拆除被调用者函数的堆栈框架movl%ebp,%esppopl%ebpret,/被调用者函数体/dosth.,call指令1)将下一条指令的地址A保存在栈顶2)设置eip指向被调用程序代码开始处,将地址A恢复到eip中,函数堆栈框架的形成,执行callXXX之前cs:eip原来的值指向call下一条指令,该值被保存到栈顶然后cs:eip的值指向xxx的入口地址进入XXX第一条指令:pushl%ebp保存调用者的栈帧地址第二条指令:movl%esp,%ebp初始化XXX的栈帧地址函数体中的常规操作,可能会压栈、出栈退出XXXmovl%ebp,%esppopl%ebpret,esp,ebp,高地址,低地址,cs:eip,esp,ebp,esp,ebp,esp,多处理器和多核处理器(1),多处理器指在一个体系结构上放置多个(单核)CPU芯片,而多核则指在同一块CPU芯片上放置多个核(core),即执行单元。多CPU和多核的区别是后者更加紧凑,成本更低、功耗更小。多CPU结构和多核结构可统称为多核结构。,多处理器和多核处理器(2),双核处理器(DualCoreProcessor)Intel双核处理器:PentiumEE支持超线程技术,PentiumEE在打开超线程技术之后会被操作系统识别为四个逻辑处理器。,多处理器和多核处理器(3),双核处理器(DualCoreProcessor)AMD双核处理器:Athlon64X2支持1GHz规格的HyperTransport总线,并且内建支持双通道设置的DDR内存控制器。,多处理器和多核处理器(4),多核/众核处理器(Multi/ManyCoreProcessor)超过八核的处理器就被称为众核处理器。,多处理器和多核处理器(5),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,多处理器和多核处理器(6),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,x86体系结构下,处理器4个演变阶段。(1)多处理器结构、(2)超线程结构、(3)多核结构、(4)多核超线程结构。,多处理器和多核处理器(7),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,(1)多处理器结构,FSB(FrontSideBus)指CPU与北桥芯片之间的数据传输速率,又称前端总线。北桥芯片(NorthBridge)是主板芯片组中的组成部分。负责与CPU的联系并控制内存、AGP(AcceleratedGraphicsPort)数据在北桥内部传输,提供对CPU的类型和主频、系统的前端总线频率、内存的类型和最大容量、AGP插槽、ECC纠错等支持,整合型芯片组的北桥芯片还集成了显示核心。,多处理器和多核处理器(8)FSB和北桥芯片,多处理器和多核处理器(9)北桥芯片,多处理器和多核处理器(10),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,(2)超线程结构,超线程是在一个CPU上同时执行多个程序,让应用程序使用芯片不同部分。要在处理器上多加入一个逻辑处理单元指针,在单个处理器芯片内部集成多个线程执行环境(包括一套完整的寄存器组,用于保存线程运行时所需的全部状态信息)。线程执行环境共享一套执行部件和所有高速缓存。从宏观上看,单个CPU芯片上存在多个并行的逻辑处理器。,多处理器和多核处理器(11),多处理器和多核处理器(12),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,(3)多核结构,多处理器和多核处理器(13),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,多核技术是在单个CPU芯片内部集成多套执行核:每个执行核具有一套相对完整的执行部件、寄存器组和级高速缓存等逻辑单元;各个内核之间还可能会共享二级高速缓存和FSB总线控制器等逻辑单元。,多处理器和多核处理器(14),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,(4)多核超线程结构,多处理器和多核处理器(15),Intel:Larrabee的x86通用并行计算处理器,提供一整套编码方案和上层C+编程环境,从而可无缝的衔接传统串行编程和众核计算中的并行编程。每个核最多有四个线程。,操作系统与多核处理器,处理器通信支持进程/线程数据共享支持存储器层次及管理程序并行执行模型支持同步支持调度及优化能耗管理,3特权指令与非特权指令(1),机器指令的集合称指令系统(1)数据处理类指令:执行算术和逻辑运算(2)转移类指令:改变指令的执行序列(3)数据传送类指令:在寄存器之间,寄存器和主存单元之间,主存单元之间(4)移位与字符串指令:算术、逻辑和循环位移;字符串传送、比较、查询和转换(5)I/O类指令:启动和控制设备;主存和设备之间交换数据,特权指令与非特权指令(2),从资源管理和控制程序执行的角度出发,把指令系统中的指令分作两部分:特权指令和非特权指令。特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、建立存储键,加载PSW等。,4处理器状态,处理器怎么知道当前是操作系统还是一般用户程序在运行呢?处理器状态标志:管理状态(特权状态、系统模式、特态或管态)和用户状态(目标状态、用户模式、常态或目态)。处理器状态的转换。处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令Intelx86的处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低,处理器模式转换,导致处理器从用户态向核心态转换,一是程序请求操作系统服务,执行系统调用;二是程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理或异常处理程序工作。两类情况都通过中断机制发生,中断和异常是用户态到内核态转换仅有的途径。从内核模式转向用户模式,计算机提供一条特权指令称作加载程序状态字(IBM370为loadPSW指令,Intelx86为iret指令),用来实现从核心态返回到用户态,控制权交给应用进程。,2.1.2程序状态字寄存器(1),计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW(ProgramStatusWord)来区别不同的处理器工作状态PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序占有处理器执行,它的PSW将占有PSW寄存器,程序状态字寄存器(2),PSW寄存器包括以下内容:程序基本状态:(1)程序计数器;(2)条件码;(3)处理器状态位。中断码。保存程序执行时当前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论