操作系统笔记1——操作系统所依靠的计算机系统组成

本节讲操作系统所依靠的计算机系统组成,也即现代的冯·诺依曼结构计算机

基本构成

软硬件总构成

计算机系统层次结构

硬件构成

计算机硬件构成

  • cpu内部构成

PC= 程序计数器
IR= 指令寄存器
MAR= 内存地址寄存器
MBR= 内存缓存寄存器
IO AR= 输入输出地址寄存器
IO BR= 输入输出缓存寄存器

微处理器

微处理器

一个芯片上容纳一个处理器内核

多核微处理器

一个芯片上容纳多个处理器内核,共享执行单元

  • 双核、四核、八核、etc.
  • 每个核还可以配多个硬件线程——逻辑处理器

片上系统

  • CPU、高速缓存以及系统中的多数硬件都在同一芯片上
  • 满足便携式设备的需求(如现代智能手机)

计算机如何执行指令

处理器执行的程序是由一组保存在存储器中的指令组成的。按照最简单的形式,指令处理包括两个步骤:

  • 处理器从存储器中一次读(取)一条指令
  • 执行每条指令。

程序执行由不断重复的取指令和执行指令过程组成。一个单一的指令需要的处理称为一个指令周期

基本指令周期

基本指令周期

  • 每个指令周期开始时处理器从存储器取下一条指令(一般而言程序计数器PC存储着下一次取的指令地址)
  • 取到的指令存储于指令寄存器(IR)中
  • 指令大体分为四种:
    • 处理器<–>存储器
    • 处理器<–>IO
    • 数据处理:执行与数据相关的算术或逻辑操作
    • 控制:改变指令的执行顺序

实际的指令执行过程

中断

事实上,所有计算机都提供了允许其他模块(IO,存储器)等中断处理器正常处理过程的机制。

当外部设备做好服务的准备时(即当它准备好从处理器接受更多的数据时),该外部设备的 IO 模块给处理器发送一个中断请求信号。这时处理器会做响应,暂停当前程序的处理,专门去处理服务于特定 IO 设备的程序,这个程序成为中断处理程序。在对该设备的服务响应完成后,处理器恢复原先的执行任务

中断的类别

  • 程序中断:某些指令执行的结果(多为错误或异常,如算术溢出、被0除、用户没有权限访问某位置)中断;
  • 时钟中断:处理器内部的计时器中断使得处理器按一定的规律执行函数;
  • I/O中断:由I/O控制器产生,发信号通知一个I/O操作正常完成或错误
  • 硬件失效中断:字面意思,硬件寄了

为什么要有中断

  • 没有中断,CPU必须迁就I/O设备的时钟速度,每次写操作后CPU必须保持空闲直到I/O设备发出完成指令——太慢力

    有无中断的IO操作.png

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

    • 利用中断功能,处理器可以在I/O操作(或者其它中断处理程序)的执行过程中执行其他指令
    • I/O操作和用户程序中指令的执行是并发的。中断技术使得多道批处理系统的I/O设备可与CPU并行工作,提高了效率。
  • 对CPU的其它中断操作,以上也是类似的,中断是无法预测的,处理短促的中断事件比一直跟着某个进程直到产生结果或者错误快

中断和指令周期

指一个包含了正常指令和中断指令的全周期。

利用中断功能,处理器可以在1/O操作的执行过程中执行其他指令。

和前面一样,用户程序到达系统调用WRITE处,但涉及的IO程序仅包括准备代码和真正的I/O命令。在这些为数不多的几条指令执行后,控制权返回到用户程序。在这期间,外部设备忙于从计算机存储器接收数据并打印。这种IO操作和用户程序中指令的执行是并发的。

从用户程序的角度来看,中断打断了正常执行的序列。中断处理完成后,再恢复执行。因此,用户程序并不需要为中断添加任何特殊的代码,处理器和操作系统负责挂起用户程序,然后在同一个地方恢复执行

中断和指令周期

中断处理

软硬件过程

简单中断处理.png1

其中,因中断处理导致的内存和寄存器变化如下图:

中断导致的存储器和寄存器变化.png

总体过程

中断处理过程.png

多个中断的处理

  • 顺序中断处理:当正在处理一个中断时,禁止中断(对任何新的中断请求信号不予理睬,处理完这个再处理下个)

    • 顺序中断.png

    • 缺点:没有考虑相对优先级和时间限制的要求

  • 嵌套中断处理:定义中断优先级,允许高优先级的中断打断低优先级的中断处理程序的运行。

    • 嵌套中断.png

存储器层次结构

存储器分层结构

层次结构的特点:

  • 由上至下:
    • 每“位”的价格递减
    • 容量递增
    • 存取时间递增
    • 处理器访问存储器的频率递减
  • 容量较大、价格较便宜的慢速存储器,是容量较小、价格较贵的快速存储器的后备。
  • 存储器层次结构能够成功的关键:低层访问频率递减。

访问的局部性原理

  • 在执行程序期间,处理器的指令访存和数据访存呈现“簇”状(一组数据集合),例如:
  • 循环:重复访问一小范围的指令集合;
  • 数组操作:存取一簇数据。
  • 经过很长一段时间,程序访问的“簇”会改变,但在较短时间内,处理器主要访问存储器中固定的“簇”。如二级存储结构,程序当前访问的“簇”暂时存放在第一级存储器中,而第二级存储器包含所有指令和数据。
  • 这里指的是硬件上的局部性

高速缓存

为什么有高速缓存

  • 指令执行期间,处理器需要多次访问内存;
    处理器和内存的速度不匹配,处理器速度的提高一直快于内存访问速度的提高——处理器执行指令的速度受限;
  • 利用局部性原理,在处理器和内存之间提供一个容量小而速度快的存储器——高速缓存。
  • 高速缓存试图使访问速度接近现有最快的存储器,同时保持价格便宜的大存储容量。
    带缓存的存储结构

高速缓存原理

高速缓存的读

高速缓存的设计原理

  • 高速缓存大小

  • 块大小

  • 映射函数

  • 置换算法

  • 写策略

  • 高速缓存的级数、

具体可见CSAPP的缓存一章

I/O

可编程IO

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

中断驱动IO

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

DMA(直接内存存取)

DMA是直接内存存取,这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。DMA直接通过一个通路把数据传送到主存储器,无需cpu的参与.

主要特点:

  • 直接通过一条数据通路直接与主存进行交换信息

  • 无需CPU的直接参与,大大提高了cpu资源利用率

  • I/O与CPU并行工作

  • 适合于高速 I/O 或辅存与主存之间交换信息

工作机制:DMA由专门的硬件(DMA)控制下,实现高速外设和主存储器之间自动成批交换数据,尽量减少CPU干预的输入/输出操作方式。

  • 当处理器要读或写一块数据时,给DMA模块产生一条命令,发送以下信息:

    • 是否请求一次读或写;
    • 涉及的I/O设备的地址;
    • 开始读或写的存储器单元;
    • 需要读或写的字数。

    此时IO设备的管理权转移到DMA设备,CPU继续其它工作。DMA模块直接与存储器交互,传送整个数据块,无须处理器参与。

  • 传送完成或IO错误,DMA模块发一个中断信号给处理器,处理器处理中断。

缺点:周期挪用:当 CPU 与 I/O 同时访问主存,CPU 必须把总线占有权让给 DMA 接口使用,即 DMA 采用周期挪用占用一个存储周期,处理器的执行速度会变慢。

DMA 中断IO 可编程IO的区别

【建议收藏】计算机组成原理—DMA、中断控制、I/O之间的联系与区别

多核处理器和多核计算机组织结构

对称多处理器(SMP)

SMP是具有以下特点的独立计算机系统:

  • 具有两个或两个以上可比性能的处理器;

  • 所有处理器共享内存和I/O设备,并通过总线或其他内部连接方式互连,从而每个处理器的访存时间大致上相同;

  • 所有处理器共享对I/O设备的访问,通过相同的通道或者可以连接到相同设备的不同通道;所有处理器可以执行相同的功能;

  • 整个系统由一个统一的操作系统控制,为多个处理器及其程序提供各种级别的交互。

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

该结构说白了就是N个处理器共享总线、IO、内存,形成多物理处理器的电脑,如下图所示:

SMP.png

多核CPU

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



  1. PSW,程序状态字,PSW中包含了当前运行进程的状态信息,包括内存使用信息、条件码和其他诸如允许中断/禁止中断位、内核/用户模式位等状态;PC,程序计数器。 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

方铎极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值