1.1 计算机系统
计算机系统基本组成
处理器(CPU)
- 内存地址寄存器 (MAR) :指明下次读写的地址
- 内存缓冲寄存器 (MBR) :存储写入内存或者从内存读取的内容
- 输入输出(I/O)地址寄存器
- 输入输出(I/O)缓冲寄存器
内存
真实存储器或主要存储器
输入输出IO模块
- 二级存储设备
- 通信设备
- 终端设备
系统总线
负责处理器、主存及I/O模块之间的数据传递
指令
定义
计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令
指定动作
- 处理器-存储器:互传数据
- 处理器-I/O:完成与外部的数据交换
- 数据处理:执行算术操作或逻辑操作
- 控制:改变指令执行顺序
指令周期
主要包括取指、间址、执行阶段
1.2 中断技术
1.2.1 中断定义
中断是指处理器对系统中发生的异步事件的响应,从用户程序的角度看,中断请求打断了用户程序的正常执行序列,当中断处理完成后,再恢复执行。中断可以在程序中的任何位置发生,而不是在一条指定的指令处。
1.2.2 中断类别(重点)
程序中断
程序执行过程中发生,由指令执行的结果产生,例如算术溢出、除数为0、非法机器指令、地址越界、缺页、断点调试等
时钟中断
由处理器内部计时器产生
I/O中断
I/O操作正常或异常结束时由设备控制器产生,用于发信号通知一个操作的正常完成或各种错误状态
硬件故障中断
由诸如掉电或存储器奇偶校验错误之类的故障产生
1.2.3 引入中断后指令周期变化
在原来的周期基础上,当允许中断时,在一条指令执行阶段结束后,检查是否有中断,若有中断,则执行中断。
1.2.4 软硬协同实现
- 设备I/O操作完毕,发出中断请求,暂存在中断请求寄存器
- 中断控制器提交中断请求
- 处理器应答中断请求
1.2.5 中断处理过程(重点)
- 设备管理器发出中断信号
- 处理器执行完当前指令
- 处理器发出中断应答信号
- 处理器将PC与PSW压栈(保存现场) (源程序执行至此、关中断)
- 将其他寄存器压栈
- 执行中断处理程序
- 恢复被中断的程序现场(恢复现场) (中断程序执行至此、开中断)
- 原程序继续执行
1.2.6 多中断处理(重点)
主要包括顺序处理与嵌套处理
顺序处理(禁止中断)
顺序中断处理即为在用户程序执行的不同指令时(不同时期)所触发的中断处理
嵌套处理(中断嵌套)
嵌套中断处理为用户程序在触发中断处理时,在低级中断处理程序执行过程中继续触发中断
1.3 存储器层次架构
层次(按速度降序):寄存器、高速缓存(cache)、内存、磁盘与固态硬盘、可移动介质(光盘、U盘、磁带等)
1.3.1 高速缓存
什么是高速缓存
处理器从内存或外存读取数据时,耗时较大,高速缓存可以直接与CPU通信,大大提升了读取速度
工作原理(重点)
提纲总结表述: 为加快内存访问速度,CPU首先访问Cache,不命中时再访问内存且复制进Cache
个人总结表述:
处理器先给出需要获取的数据地址,然后去高速缓存中查找是否有该数据,如果有,直接读高速缓存中的数据并写入寄存器,否则为内存块分配高速缓存槽,并去内存中将该数据载入高速缓存槽中,再从高速缓存中将该数据写入寄存器中。
1.3.2 平均存取时间计算(重点)
两级存储器的平均存取时间是命中率H
的函数
令T1
表示访问第一级存储器(如高速缓存)的存取时间
T2
表示访问第二级存储器(如内存)的存取时间
则读取一个字节的平均存取时间可表示为:H*T1+(1-H)*(T2+T1)
。
1.3.3 程序的局部性原理(重点)
- 时间局部性:指的是在程序运行过程中最近被引用到的存储器位置在程序执行后期还会被多次引用到的可能性很大。
- 空间局部性:指的是程序运行过程中如果一个存储器的位置被引用,那么在程序执行后期该存储器附近的位置被引用的可能性很大。
总结起来就是一个变量在程序运行过程中,如果被引用过一次,那后续很有可能会再被引用到;一个变量被访问到过后,这个变量所在的位置附近的位置很有可能在程序后续运行中被访问到。
高速缓存的局部性原理:据局部性原理,程序接着的多次访问很可能是该块中的其他字节,属于空间局部性
1.4 操作系统目标与功能
目标
- 交互方便性
- 资源管理有效性
- 系统可拓展性
功能
也就是接下来几章的内容
- 进程管理
- 内存管理
- 设备管理
- 文件管理
1.5 操作系统发展与类别(重点)
1.5.1 串行处理
特点:
- 没有操作系统
- 机器在控制台上执行
存在的问题: - 调度问题:用户需要向资源管理者登记预定需要使用的时间,在使用时独占所有空间,资源利用率低下
- 准备时间问题:作业运行前需要往内存中加载编译器和源程序,保存编译好的程序,加载目标程序等操作,时间效率低,如果发生错误用户只能按照所有步骤重新做一遍,容错率低下。
1.5.2 简单批处理系统
- 拥有监控程序,可以控制事件顺序
监控程序角度
- 大部分常驻内存,其他的程序和公用函数需要时再载入内存
- 顺序:监控程序读取作业->作业享控制权->作业完成交回控制权->监控读取下一个作业,并输出结果。
处理器角度
- 读内存中监控程序指令
- 读监控程序中的分支指令
- 遇到结束指令或错误条件,取监控程序的下一条指令
JCL作业控制语言
是一种特殊类型的程序设计语言,为监控程序提供指令
其他硬件功能
内存保护、定时器、特权命令、中断等
缺点
- 部分内存交给了监控程序,利用率低
- 监控程序消耗了机器时间
1.5.3 单道/多道处理系统(重点)
- 单道:就是程序的顺序执行,当程序需要IO等待时,只能等待
- 多道:是当程序需要IO等待时,将CPU释放出来,执行其他程序,同时引入中断、磁盘、DMA等计数
CPU利用率计算(计算题?)
CPU利用率 = CPU实际执行时间 / 总时间
相对于单道系统,多道系统如何提高资源利用率?(重点)
多道批处理系统可以把多个作业同时放入内存,并允许它们在处理器上替运行,共享系统中的各项硬件资源和软件资源。当某个作业因 I/O 请求而暂停运行时,处理器便可以转向运行另外一个等待运行的作业,以提高处理器利用率。这种处理方式称为多道程序设计。在一段时间间隔内,处理器可以执行多个程序,称为这些程序可并发执行。
1.5.4 分时系统(重点)
特性主要是使用多道程序设计处理多个交互作业
- 多道程序设计:指通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中的各种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。
特点:
- 分时性:若干终端用户分时使用计算机,多个用户共享同一台计算机的处理器时间
- 独立性:终端用户彼此独立互不干扰,每个终端用户感觉自己独占操作系统
- 及时性:用户的请求可以在足够短的时间得到响应
- 交互性:通过终端与系统交互,用户直接控制程序运行,便于程序调试和排错
1.5.5 实时系统
特点:
- 实时性
- 可靠性
- 安全性
- 专用性
- 有限交互
1.5.6 嵌入式系统
特点:
- 内核小
- 专用性强
- 系统精简
- 高实时性
- 多任务操作系统
- 特定开发工具环境
核心:嵌入式微处理器
其特点主要包括:
- 对实时任务有很强的支撑能力
- 具有功能很强的存储区保护功能
- 可拓展的处理器结构
- 功耗低