第一章 计算机系统概论
1.冯诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?
冯诺依曼型计算机的主要设计思想是:采用 二进制表示数据和指令 ,并采用 存储程序原理,即将程序和数据一起存放在存储器中,计算机按地址顺序取出指令并执行。
冯诺依曼型计算机主要由 五大部分组成:
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备。
2.什么是存贮容量?什么是单位地址?什么是数据字?什么是指令字?
- 存储容量:指存储器中能够存放二进制信息的总量,等于存储单元数与每个存储单元位数的乘积。
- 单位地址:存储器中每个存储单元的编号,用来唯一标识一个存储单元。
- 数据字:一次存取或处理的一组二进制数据,通常与机器字长相同。
- 指令字:一条机器指令在存储器中的二进制表示形式,通常由操作码和地址码组成。
3.什么是指令?什么是程序?
指令是计算机为完成某种操作而发出的命令,一条指令通常由操作码和地址码组成。
程序:程序是为特定问题求解而设计的指令序列,计算机程序由指令构成。
4.指令和数据均放在内存里,计算机如何区分开它们是指令还是数据的?
指令和数据虽然都以 二进制形式存放在存储器中 ,但CPU可以根据 指令周期的不同阶段 来区分:在 取指阶段 取出的是指令,在 执行阶段 根据指令地址码取出的是数据。同时也可以根据 地址来源 区分,由 PC提供地址取出的是指令 ,由 指令地址码提供地址取出的是数据。
5.什么是内存?什么是外存?什么是CPU?什么是接口?简述其功能。
内存(主存):是计算机中直接与CPU交换信息的存储器,用于存放正在执行的程序和数据。
外存:是用于长期保存程序和数据的辅助存储设备,如硬盘、U盘等。
CPU:中央处理器,是计算机的运算和控制核心,负责执行指令和控制计算机各部件工作。
接口:是主机与外部设备之间进行信息交换的连接部件,用于实现数据传输和设备控制。
6.为什么冯诺依曼体系结构选择二进制?
冯诺依曼体系结构采用二进制,主要原因是:电子元件具有 两种稳定状态 ,适合表示0和1,因此电路实现简单;同时二进制 抗干扰能力强 ,并且 逻辑运算和硬件实现较为简单,便于计算机进行数据处理和控制。
第三章 存储系统
1.cache与虚存的异同
相同点:
Cache 和虚拟存储器都利用程序的局部性原理,采用分级存储结构,通过数据块交换提高系统性能,并需要地址映射机制。
不同点:
Cache 位于 CPU 与主存之间,主要目的是提高存储访问速度;虚拟存储器位于主存与辅存之间,主要目的是扩大存储容量。Cache 主要由硬件实现,而虚拟存储器由硬件和操作系统共同实现。
2.静态存储依靠什么存储信息?动态存储器又依赖什么原理存储信息?比较它们的优缺点
| 项目 | 静态存储器 SRAM | 动态存储器 DRAM |
|---|---|---|
| 存储原理 | 触发器 | 电容电荷 |
| 是否刷新 | 不需要 | 需要刷新 |
| 速度 | 快 | 较慢 |
| 集成度 | 低 | 高 |
| 成本 | 高 | 低 |
| 应用 | Cache | 主存 |
3.说明Cache的地址映射作用和方法?
直接映射:主存块只能映射到Cache中的一个固定位置。
全相联映射:主存块可以映射到Cache中的任意位置。
组相联映射:Cache分成若干组,主存块先确定组号,再在组内任意位置存放。
4.说明cache的替换策略
随机替换(Random):随机选择一个Cache块进行替换。
先进先出(FIFO):最早进入Cache的块最先被替换。
最近最少使用(LRU):替换最近一段时间内最少被访问的块。
每行也设置一个计数器,cache每命中一次,命中行的计数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出
最不经常使用(LFU):替换访问次数最少的块。
每行设置一个计数器,从0开始计数,每访问一次,将访行的计数器增1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零
5.cache的写操作策略

6.DRAM存储器为什么要刷新?有哪几种常用的刷新方法?
动态存储器DRAM利用 电容存储电荷 表示信息,由于电容会漏电,存储信息会逐渐丢失,因此需要在一定时间内 周期性刷新以恢复电荷。
常用的刷新方法有:
- 集中刷新:允许的最大刷新间隔内,按照存储芯片容量的大小集中安排若干个刷新周期,刷新时停止读写操作。
- 分散刷新:在每个存储周期后进行一次刷新。
- 异步刷新(交叉刷新):把刷新操作平均分配到整个最大刷新间隔时间内进行。
7.段式虚拟存储器对程序员是否透明?请说明原因
段式虚拟存储器对程序员 不是完全透明的 。
因为段式存储管理中,程序的逻辑地址由 段号和段内地址组成,程序被划分为若干逻辑段(如代码段、数据段、堆栈段),程序员需要了解段的划分和使用,因此段结构对程序员是可见的。
8.在一个进程的执行过程中,是否其所有页面都必须处在主存中?
在有虚拟存储管理的系统中,程序不是一次性装入内存才运行,所以不是所有页面都必须处在主存中,而是根据程序的局部性,有的页面在主存,有的页面在辅存。
9.为什么在页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址,而在段式虚拟存储器地址变换时必须用段起始地址与段内偏移量相加才能得到物理地址?
在页式虚拟存储器中,页和物理页框的大小是 固定且相同的 ,页内偏移量在逻辑地址和物理地址中保持不变,因此在地址变换时可以 将物理页号与页内偏移量直接拼接形成物理地址。
而在段式虚拟存储器中,段的长度 不固定 ,每个段在主存中的起始地址不同,因此必须 用段起始地址与段内偏移量相加 才能得到物理地址。
10.在虚存实现过程中,有些页面会在内存与外存之间被频繁地换入和换出,使系统效率急剧下降。这种现象称为颠簸。请解释产生颠簸的原因,并说明防止颠簸的办法。
颠簸是指在虚拟存储系统中,页面在 主存与外存之间频繁地换入和换出,使系统大部分时间用于页面调度而不是执行程序,从而导致系统效率急剧下降的现象。
产生颠簸的原因主要有:
- 分配给进程的物理块数过少
- 系统中进程数过多
- 页面置换算法不合理
防止颠簸的方法有:
- 增加主存容量
- 减少并发进程数
- 采用合理的页面置换算法
- 采用工作集策略。