时间:5个小时
目标:复习第一节、生成笔记
深度:理解复述、以 PPT 笔记为主,结合课本速通
工具:4.0、课本、PPT
课程学习深度
eg.1000100 表示+,其他不用管
1. 计算机体系结构
● OS 向应用程序提供的接口 — — 系统调用(应用要实现该功能需要该接口)
● 扩充:API 和系统调用的联系和区别
①二者都是软件组件之间的接口
②API 用于任何软件组件之间的交互,系统调用特指应用程序与操作系统之间的交互
①API 和系统调用都是为了实现软件组件之间的交互而设计的,二者都为软件组件提供了一个接 O, 使得一个组件可以与另一个组件交互
● 如果说某个功能是硬件实现的,则说明该功能的实现是由底层物理电路结构决定的;
● 如果说某个功能是软件实现的,则说明该功能是由程序员通过指令编程实现。
● 没有 OS, 计算机所暴露的是指令系统
● X86 向后兼容
● 一条质量完不成复杂的工作,诞生了,应用程序
P 问题:算法问题=>多项式=>+*/%
NP 问题:可能不能快速地找到一个解,但如果给我们一个潜在的解,我们可以在多项式时间内验证 它是否正确。 (经常说算力不够)
2. 计算机的基本构成
● 外设和外围设备知道不是一个东西,CPU 直接控制外设,外设控制外围设备
● 计算机要显示东西=>CPU 控制显卡=>显卡控制显示器呈现(显示器上灯泡怎么亮) CPU->存储器+I/O设备(->外围设备)
●
● PC 寄存器:保存下一条指令的地址
● IR (通用叫法):保存当前即将执行的指令
● 寄存器存储效率非常高
● 执行单元核心是运算器(算术逻辑单元:算术运输、逻辑运算)
● FPC 、IR 等 CPU 中特殊的寄存器
● 现在一般是64位寄存器
● “外设指的是控制器,外围设备受外设控制”时,这实际上是一个简化的描述。更准确地说,外围设 备是实际执行任务的设备(如显示、打印、存储等),而控制器是负责管理这些设备与计算机主系统 之间通信的硬件接口。
● CPU 视角不同I/O设备都类似
● l/0模块是一个一个端口,主存是一个一个内存单元。(端口的结构与内存类似)
● 所有外设的寄存器映射为端口,并进行统 一 的编址。(CPU通过I/O指令对端口进行读和写)
● 显卡有显存
3. 指 令
● 操作码+地址
● 学习时一般用16进制表示二进制数
●
● 地址反映内存大小
●
从高往低读取
① PC:300>1940、1— 存入 AC、940->0003、AC(0003)
② PC(302)->5942、5—相加、942->0002、AC(00o5)
③ PC(304)->2942、2— 写入、942(05)943(00)
● 指令的分类:
① 访存指令:在 CPU 和内存之间进行数据传递。
② 1/0指令:在 CPU 和1/0设备之间进行数据传递。
③ 数据处理指令:进行数据计算
④ 控制指令:进行一些控制工作,例如跳转指令,可以改变 PC 寄存器的值从而实现跳转。
● 程序=指令+数据(指令操作的对象)
● I/O
① 程序在运行前需要通过输入设备将程序的指令和数据载入到内存中。
② 程序在运行中有时也需要利用输入设备从外部读取数据。
③ 程序在运行中有时需要通过输出设备将数据写入外部,例如显示器、磁盘等。
● 程序在进行计算时 CPU 在工作。程序在进行I/O时,CPU 处于空闲状态,相应的I/O控制器在工作。
● 程序执行时,不断地I/O与计算交互
● I/O时 ,CPU 是空闲的->中断
4. 中断
● 中断技术允许其他模块(如1/0 设备)中断处理器的正常处理过程。
●
●
● 为什么要使用中断
① 程序进行I/O时CPU处于空闲状态
② CPU 需要不断读取I/O状态,以判断I/O是否结束,无法执行程序的其它指令,程序执行的效率低下
● 目标:程序在进入I/O阶段后, CPU 执行程序的其它指令。
● 问题:若 CPU 在程序I/O时执行其它指令,如何判断I/O是否结束?
● 作用:
① 当I/O结束后,I/O控制器向 CPU 发送中断信号通知CPU。
② CPU 收到中断信号后中断当前执行的指令,转而去进行中断处理(执行1/0之后的必要指令)。
③ 当中断处理结束后进行中断返回,继续执行之前中断的指令。
● 中断机制是由硬件提供的,OS 只能使用
● 为了实现中断,需要硬件具备以下几个功能:
1、处理器能够接收中断信号。
2、为了中断当前执行的程序,处理器必须能够保存现场。在中断处理结束后能炼复现场继续执行 被中断的程序。
3、处理器在发生中断时能够正确的定位到处理中断的程序(中断处理器或中断处理例程)
子问题:由于不同中断的处理程序是不同的,因此处理器必须能够对接收的中断进行区分,并准 确定位到相应的处理程序。
● 1、 接受中断信号
指令的执行周期添加一个新的步骤:检查中断
● 2、 保持现场、恢复现场
为处理器添加 一个新的寄存器,栈指针寄存器 (SP) 。该寄存器保存栈顶的地址。
保存现场(添加新的硬件功能,使其在发生中断时能够自动的将PC寄存器的内容压入栈顶并将PC寄存器设置为中断处理程序第一条指令所在内存单元的地址。)
恢复现场 (设计一条新的指令,该指令实现的功能是将栈顶内容出栈并存至PC 寄存器、将该条指令设置为每个中断处理程序的最后一条指令)
●
● 简单中断流程:
(硬件、软件
系统硬件产生中断->处理器结束当前指令>处理器发生中的应答信号>处理器把 PC (和 PSW 即当前运行进 程状态信息等,最少二者)和压入控制栈>根据中断,处理器加载新PC值>保存剩余的处理状态信息->处理中断->恢复处理状态信息->恢复I旧 PSW 和 PC)
中断产生->中断当前指令>压栈>查中断表加载新 PC值->处理中断->恢复现场
Eg.
区分中断、定位处理程序:
① 为中断编号,发送给处理器的中断请求都包含一个id, 用以区分中断的类型。
② 将各中断处理程序的首地址存放到中断向量表(一个数组)中,并按照编号进行排列。
③ 在处理器中增加一个新的寄存器,用于存放中断向量表的首地址。