操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

操作系统——计算机系统概述

学习脉络:计算机的基本构成部件有哪些——各个部件的具体功能——各部件之间如何进行工作的——涉及到的技术和算法有哪些——常见的计算机结构和设计模式

计算机的基本构成

计算机由4个主要的部件构成:处理器(processor)、内存(main memory)、输入/输出模块(I/O modules)、系统总线(system bus)

计算机部件示意图:
操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

  • PC:程序计数器,存放指令地址
  • IR:指令寄存器,存放指令内容
  • MAR:存储器地址寄存器,存放要读写的存储器地址
  • MBR:存储器缓冲寄存器,存放要读写的的数据
  • I/O AR:输入/输出地址寄存器,存放一个特定的输入/输出设备的地址
  • I/O BR:存放输入/输出设备与处理器进行交换的数据

总结:处理器与其他部件进行交换数据时都有相应的地址寄存器和缓存寄存器,分别用来确认用来交换数据的地址和数据内容

微处理器的发展

  • 微处理器
    一个芯片(底座)上容纳一个处理器(内核)
  • 多核微处理器
    一个芯片上容纳多个处理器,共享执行单元
    –双核、四核
    –每个核还可以配多个硬件线程——逻辑处理器
  • 片上系统
    CPU、高速缓存以及系统中的多数硬件都在同一芯片上
    满足便携式设备的需求

指令的执行

操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

指令周期:取出一条指令并执行这条指令的时间
指令周期分为取指周期和执行周期
所有指令的取指周期都一样,不同的是执行周期

中断

  • 中断是一种机制,即允许其它模块(I/O、存储器)在处理器正常处理过程中打断其工作,转而去处理其他程序。

  • 中断分类:
    –程序中断:在某些条件下由指令执行结果产出,如算术溢出、除数为0
    –时钟中断:由处理器内部的计时器产生
    –I/O中断:由I/O控制器产生
    –硬件失效中断:由掉电或存储器奇偶校验之类的故障产生

  • 中断是提高处理器效率的一种手段。

利用中断功能,处理器可以在I/O操作的执行过程中执行其他指令。
I/O操作和用户程序中指令的执行是并发的

中断和指令周期

操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

中断处理过程

操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

  • 开中断:处理器在程序运行时允许中断
  • 关中断:处理器在程序运行时不允许中断
  • 保存中断现场:为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机PSW(程序状态字)和PC(程序计数器)等的值
  • 中断向量:中断服务程序的入口地址

总结:中断处理过程首先设备发出中断信号,cpu响应中断信号,保存正在执行的程序信息,去执行中断服务程序,中断程序执行完之后再回到原程序继续执行

多个中断

  • 顺序中断处理
  • 嵌套中断处理

顺序中断处理

当正在处理一个中断时,禁止中断(对任何新的中断请求信号不予理睬,处理完这个再处理下个)
缺点:没有考虑相对优先级和时间限制的要求
顺序中断示意图:
操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

嵌套中断处理

定义中断优先级,允许高优先级的中断打断低优先级的中断处理程序的运行。
嵌套中断示意图:
操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

存储器的层次结构

对存储器的要求是容量大、速度快、成本低,三者同时满足是很困难的,于是为了解决这三方面的矛盾,引入了存储器的层次结构
操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)
层次结构的特点:

  • 由上至下:

–每“位”的价格递减
–容量递增
–存取时间递增
–处理器访问存储器的频率递减

  • 容量较大、价格较便宜的慢速存储器,是容量较小、价格较贵的快速存储器的后备。
  • 存储器层次结构能够成功的关键:低层访问频率递减。

例题:假定有一个二级存储器(内存+高速缓存),内存存取时间为1us,高速缓存存取时间为0.1us,且高速缓存的命中率为95%,则访问一个字节的平均存取时间为:

0.95×0.1+0.05×(0.1+1)=0.15(us)

访问的局部性原理

  • 在较短的时间内,处理器只会集中访问内存的某一块小区域,例如:
    –循环:重复访问一小范围的指令集合;
    –数组操作:存取一簇数据。
  • 经过很长一段时间,程序访问的“簇”(一组数据集合)会改变,但在较短时间内,处理器主要访问存储器中固定的“簇”。
  • 如二级存储结构,程序当前访问的“簇”暂时存放在第一级存储器中,而第二级存储器包含所有指令和数据。

时间局部性(temporal locality)

时间局部性指的是:被访问过一次的存储器位置在未来会被多次访问(通常在循环中)。

空间局部性(spatial locality)

如果一个存储器的位置被访问,那么将来它附近的位置也会被访问。

高速缓存

  • 指令执行期间,处理器需要多次访问内存;

  • 处理器和内存的速度不匹配,处理器速度的提高一直快于内存访问速度的提高——处理器执行指令的速度受限;

  • 利用局部性原理,在处理器和内存之间提供一个容量小而速度快的存储器——高速缓存。

高速缓存原理

高速缓存试图使访问速度接近现有最快的存储器,同时保持价格便宜的大存储容量。
操作系统——计算机系统概述(基本构成,指令,中断,存储器,局部性原理,I/O操作,多处理器)

高速缓存设计

  • 高速缓存大小(cache size)
  • 块大小(block size)
    –高速缓存与内存间的数据交换单位
  • 映射函数(mapping function)
    –确定内存块将占据哪个高速缓存单位
  • 置换算法(replacement algorithm)
    –选择置换哪些将来用到可能性最小的块
  • 写策略(write policy)
    –规定何时发生存储器写操作
  • 高速缓存的级数
    –一般分为L1(最接近处理器),L2,L3级

I/O操作

当处理器正在执行程序时接受到一个I/O相关指令时,它会给I/O模块发命令去执行这个指令
执行I/O操作的技术:

  • 可编程I/O(programmed I/O)

  • 中断驱动I/O(interrupt-driven I/O)

  • 直接内存存取(Direct Memory Access,DMA)

  • 通道

前两个适用于数据传输率比较低的设备,后两个适用数据传输率比较高的的设备

可编程I/O(programmed I/O)

–I/O模块执行请求的动作并设置I/O状态寄存器中相应的位;
–处理器执行I/O指令后,要定期检查I/O的状态,以确定I/O操作是否已经完成。
– 缺点:处理器在等待I/O操作完成期间需不断询问I/O模块的状态,严重降低了整个系统的性能。

中断驱动I/O(interrupt-driven I/O)

  • 处理器给I/O模块发送I/O命令,然后继续做其它有用的工作;
  • 当I/O模块准备好与处理器交换数据时,将打断处理器的执行并请求服务;
  • 处理器执行数据传送,然后恢复以前的执行过程。
  • 缺点:处理器仍需要主动干预在存储器和I/O模块之间的数据传送,任何数据传送都必须完全通过处理器

直接内存存取(Direct Memory Access,DMA)

  • 当处理器要读或写一块数据时,给DMA模块产生一条命令
  • 处理器继续其它工作。DMA模块直接与存储器交互,传送整个数据块,无须处理器参与;
  • 传送完成,DMA模块发一个中断信号给处理器。
  • 只有在开始传送和传送结束时处理器才会参与
  • 缺点:在DMA传送过程中,当处理器需要访问总线时,因存在竞争,处理器将暂停一个总线周期,处理器的执行速度会变慢。

通道

  • cpu将部分权力下放给通道
  • 通道是一个具有特殊功能的处理器,用于对外围设备的管理和数据传送
  • 缺点:花费更多的硬件为代价

多处理器

通过复制处理器来进行并行处理,进而提高计算机性能

  • 对称多处理器(SMP)
  • 多核计算机
  • 集群

对称多处理器(SMP)

  • SMP是具有以下特点的独立计算机系统:
    –具有两个或两个以上可比性能的处理器;
    –所有处理器共享内存和I/O设备,并通过总线或其他内部连接方式互连,从而每个处理器的访存时间大致上相同;
    –所有处理器共享对I/O设备的访问,通过相同的通道或者可以连接到相同设备的不同通道;
    –所有处理器可以执行相同的功能;
    –整个系统由一个统一的操作系统控制,为多个处理器及其程序提供各种级别的交互。

  • 多处理器的存在对用户是透明的

多核计算机

  • 多核(muliticore)计算机是指将两个或多个处理器(核)组装在同一块芯片上。
  • 每个核上通常会包含组成一个独立的处理器的所有零部件。

一些概念和易混点的理解

cpu(Central Processing Unit)和处理器的区别?
处理器是计算机的主要部件之一,cpu即*处理器,如果计算机只有一个处理器,它通常就是指cpu。

什么是透明性?
在计算机中,“透明”就是可以当做不存在。
比如多处理器的存在对用户是透明的,意思就是用户在通过键盘鼠标对计算机进行操作的时候,用户不需要知道计算机内部的工作原理,也不需要知道处理器的个数,那多处理器对用户来说就可以当作不存在。