计算机系统原理(简答题)助记版

7 阅读8分钟

计算机系统原理简答题快速记忆方法


第一章 计算机系统概述

必考题速记

① 冯·诺依曼计算机组成及功能

口诀:"两输运控存"

部件功能
输入设备接收用户输入
输出设备展示处理结果
运算器算术+逻辑运算
控制器取指→译码→控制协调
存储器存储程序和数据

② 存储程序工作方式(3句话版本)
  1. 程序和数据以二进制预先存入存储器
  2. 运行时自动从存储器取出指令执行
  3. 实现了自动连续执行,提高工作效率

③ 指令执行四个阶段
取指令 → 分析指令(译码) → 执行指令 → 存储结果
  ↑              ↑              ↑           ↑
从存储器      确定操作性质    具体操作    写回存储器
取出指令

④ 计算机层次结构(由低到高)

口诀:微机操汇高

  1. 微程序机器层 ← 硬件直接执行
  2. 机器语言机器层 ← 机器指令
  3. 操作系统机器层 ← 系统调用
  4. 汇编语言机器层 ← 汇编语言
  5. 高级语言机器层 ← C/Java等

⑤ 为什么MIPS不能很好反映性能?
原因说明
原因1只考虑指令数量,忽略指令复杂性
原因2忽略内存访问、I/O等影响因素
原因3理论值与实际运行存在差距

第二章 数据的表示和运算

必考题速记

① 为什么用二进制?
  1. 只有0和1两种状态 → 与电路开关一致
  2. 运算规则简单 → 计算高效
  3. 抗干扰能力强 → 只涉及两种状态

② 浮点数表示范围和精度由什么决定?
组成决定
阶码表示范围(指数大小)
尾数表示精度(小数位数)

记忆:阶码管"大小",尾数管"精细"


③ 为什么要规格化?两种操作?
  • 目的:提高浮点数的精度和运算效率,确保尾数最高位为1
操作方向触发条件
左规尾数左移,阶码减小处理尾数溢出
右规尾数右移,阶码增大处理尾数下溢

④ 汉字编码为什么要多种编码?
编码类型是否二进制用途
输入码(拼音/五笔)方便人输入
内码(GB2312等)计算机内部存储
字模码(点阵)显示字形

记忆:输入给人用 → 内码给机器用 → 字模给显示用


第三章 程序的转换及机器级表示

必考题速记

① 高级语言→可执行文件的步骤
源程序(.c)
   ↓ 词法分析
   ↓ 语法分析
   ↓ 语义分析
   ↓ 代码生成
   ↓ 代码优化
目标文件(.o)
   ↓ 链接
可执行文件

② 无条件跳转 vs 调用指令
对比项无条件跳转调用指令
相同点都改变程序执行流程都改变程序执行流程
操作只改变PC值改变PC值+保存返回地址
能否返回不能能(return)

③ 按值传递 vs 按地址传递
方式传递内容修改是否影响原变量
按值传递复制参数值不影响
按地址传递传递地址影响

比喻:

  • 按值 = 给你一份复印件(改了原件没变化)
  • 按地址 = 给你原件地址(直接改原件)

④ 为什么递归开销大?
  • 空间开销:每次递归调用占用额外栈空间
  • 时间开销:频繁函数调用和返回
  • 递归越深 → 栈空间占用越多 → 可能栈溢出

⑤ 数据为什么要地址对齐?
DRAM以块为单位访问
→ 若数据跨多个块:需多次访问(低效)
→ 若地址对齐:一次访问获取所有数据(高效)

第四章 可执行文件的生成与加载

必考题速记

① 链接器的两项主要工作
  1. 符号解析:将符号引用与符号定义关联,确定地址
  2. 重定位:确定符号的最终内存地址

② 各节(.section)存放内容
节名存放内容
.text程序代码(指令)
.rodata只读数据(常量字符串)
.data已初始化的全局/静态变量
.bss未初始化的全局/静态变量

③ 静态链接 vs 动态链接
对比项静态链接动态链接
时机编译时运行时
方式库代码复制到可执行文件共享库映射到内存
文件大小
依赖外部库不依赖依赖
共享不可共享多程序共享

④ 虚拟地址空间的好处
  • 每个进程拥有独立的虚拟地址空间
  • 避免进程间地址冲突
  • 提高系统安全性稳定性

⑤ shell加载程序的过程
① 用户输入命令行
② shell解释命令,识别要执行的程序
③ shell创建新进程
④ 加载器加载可执行文件 → 执行入口点

第五章 存储器层次结构

必考题速记

① 为什么采用层次存储结构?
矛盾解决方案
CPU速度快 vs 主存速度慢引入Cache
主存容量小 vs 需要大容量引入虚拟内存

结论:用多层次存储,兼顾速度、容量、成本


② 为什么引入Cache能提高效率?
Cache速度快(接近CPU速度)
→ CPU先在Cache找数据
→ 命中:直接读取(快)
→ 未命中:才去主存(慢)
→ 利用局部性原理,命中率高
→ 整体访存效率提升

③ 三种Cache映射方式对比
映射方式对应关系是否需要替换策略特点
直接映射一对一固定不需要简单但冲突多
全相联映射任意对应需要灵活但硬件复杂
组相联映射组内任意需要折中方案

直接映射不需要替换策略原因: 新数据来了直接覆盖固定位置,没有"选哪个替换"的问题


④ 为什么要考虑Cache写策略?
CPU修改Cache数据时
→ Cache和主存内容不一致(数据不同步)
→ 必须有策略决定何时写回主存
写策略方式优点缺点
写回法替换时才写主存速度快可能短暂不一致
写通法立即写主存始终一致速度慢

⑤ Cache-主存 vs 主存-外存 的区别
层次解决的问题手段
Cache-主存速度问题(CPU太快,主存太慢)引入高速Cache
主存-外存容量问题(主存不够大)引入虚拟内存

⑥ 物理地址 vs 逻辑地址
对比项物理地址逻辑地址
定义内存真实地址用户程序中的地址
CPU使用直接使用需转换后使用

地址转换由硬件实现(MMU) 原因:硬件转换速度快,满足CPU快速访问需求


第六章 I/O子系统

必考题速记

① I/O子系统层次结构(从上到下)
用户层I/O软件
      ↓
设备独立性软件
      ↓
设备驱动软件
      ↓
中断处理软件
      ↓
硬件(设备)

② 三种I/O控制方式对比
方式CPU介入程度效率适用场景
程序直接控制一直轮询等待简单/低速设备
中断控制I/O完成才介入中速设备
DMA方式仅启动和结束高速/批量数据

记忆:效率递增,CPU介入递减


③ 为什么DMA能提高批量数据效率?
方式数据路径CPU参与
传统方式数据 → CPU → 内存全程参与
DMA方式数据 → 直接到内存不参与传输
  • 减少CPU开销
  • CPU可同时执行其他任务
  • 支持高速数据传输

④ 保护/恢复现场时为什么要关中断?
如果不关中断:
→ 中断可能在保存/恢复过程中发生
→ 破坏正在保存的现场状态
→ 导致状态不一致,系统出错

关中断保证:保护/恢复现场的原子性

⑤ I/O端口两种编址方式
编址方式地址空间优点缺点
独立编址I/O和内存地址分开互不干扰需专门I/O指令
统一编址I/O和内存地址统一访问方式简单占用内存地址空间

答题模板

万能答题框架:"是什么 + 为什么 + 怎么做"

示例:为什么引入Cache?

是什么: Cache是CPU和主存之间的高速缓存

为什么需要: CPU速度远快于主存,存在速度差异,导致CPU经常等待,效率低下

怎么做: 将频繁访问的数据存入Cache,CPU先查Cache,命中则直接读取,利用局部性原理提高命中率,从而提高整体访存效率


高频考点总结

题目类型核心答案要点目标字数
冯诺依曼组成五部件+各自功能100字
指令执行过程四阶段80字
Cache原理局部性+命中率100字
三种I/O方式CPU介入程度对比120字
静态vs动态链接时机+特点对比100字
虚拟内存好处独立+安全+扩容80字

考前30分钟速查清单

  • 冯诺依曼五大部件(两输运控存)
  • 指令执行四阶段(取分执存)
  • 层次结构五层(微机操汇高)
  • Cache三种映射方式
  • I/O三种控制方式
  • 静态vs动态链接区别
  • 四个节(.text/.rodata/.data/.bss)内容
  • 物理地址vs逻辑地址
  • 补码规则(正数不变,负数取反加1)
  • 浮点数(阶码管范围,尾数管精度)

答题注意事项

  1. 先写结论,再写理由
  2. 分点写,不要大段文字
  3. 每点不超过2行,简洁有力
  4. 遇到不会的,写相关概念也能得部分分