📄 一句话概括
硬件看得再多也归三堆:输入设备送数进来,CPU 和内存负责运算,输出设备把结果送出去,硬盘只是替内存看仓库。
📝 本节和前面几节的关系
上一节立了原则一(输入运算输出),这一节把它落到看得见摸得着的零件上——三段各自归谁管。
一、三件套各管一段
输入装置(键盘、鼠标、麦克风):把人的动作变成数据送进内存; 运算装置(CPU+内存):CPU 是干活的工人,内存是摆料的操作台——CPU 要算的数据必须先在内存里; 输出装置(显示器、打印机、喇叭):把内存里的结果变成人看得见听得着的东西。
二、硬盘为什么不在三件套里
最容易混的是硬盘。它不参与【正在进行的运算】,只负责断电后长期保管程序和数据。 所以开机时总有个【加载】过程:把硬盘里的程序搬进内存,CPU 才能开始干活。这也是「程序必须装入内存才能运行」的由来。
三、一次运行的全流程
把流程串起来:双击图标 -> 硬盘里的程序装入内存 -> CPU 从内存逐条取指令执行 -> 结果写回内存 -> 送到显示器。 这一条链会在第二章真机复盘一遍——届时你会亲手把这条链上的零件【连】起来。
四、动手 Demo:给硬件发工牌
用一张角色表把 5 个常见硬件归位,再画出一次运行的数据流,硬盘的位置一目了然。
# 硬件角色表与数据流
roles = [
("键盘", "输入"), ("内存", "运算舞台"), ("CPU", "运算工人"),
("显示器", "输出"), ("硬盘", "仓储"),
]
for name, role in roles:
print(name, "->", role)
print("数据流: 硬盘 -> 内存 -> CPU -> 内存 -> 显示器")
实跑输出:
--------------------------------------------------------------------
硬件三件套角色表——输入、运算、输出各归谁管
--------------------------------------------------------------------
原则 1 落到硬件上,就是三件套。下表把 5 个常见硬件归位:
硬件 角色 一句话职责
--------------------------------------------------------------
--------------------------------------------------------------
键盘/鼠标 输入 把人的动作变成数据送进内存
内存 运算(舞台) CPU 干活时数据全摆在它这里
CPU 运算(工人) 只做取数、算数、存数这三件事
显示器 输出 把内存里的结果变成人看得见的画面
硬盘 仓储 断电后替内存保管程序和数据
注意:硬盘不参与「正在进行的运算」,它只负责长期保管。
CPU 要用数据时,必须先把硬盘里的内容搬进内存——
这就是「程序必须先装入内存才能运行」的原因。
一次运行的数据流:
1. 硬盘里的程序
2. 装入内存
3. CPU 逐条执行
4. 结果写回内存
5. 送到显示器
注意数据流里没有键盘:那是【输入新数据】时的入口,运行已装入的程序时走的是硬盘到内存这条线。 内存不够时系统拿硬盘顶包(虚拟内存),速度立刻掉一个量级——因为硬盘比内存慢得多。
30 秒实验
- 开机时盯着启动画面看:那个进度条就是【硬盘 -> 内存】的搬运过程。
- 打开任务管理器看内存占用——那正是【操作台】现在摆了多少料。
常见误区
- 以为 CPU 直接读硬盘——中间必须过内存,这是初学最常见的结构性误解。
- 把内存和硬盘混为一谈——内存断电就清空,硬盘断电不丢,分工完全不同。
自测三问(点开对答案)
1. CPU 要算的数据从哪里来? —— 从内存来。CPU 只跟内存打交道,硬盘的数据必须先搬进内存。 2. 硬盘的角色是什么? —— 仓储——断电后长期保管程序和数据,不参与正在进行的运算。 3. 为什么程序必须装入内存才能运行? —— 因为 CPU 的取指和取数都只认内存,硬盘再大也进不了 CPU 的视线。- ☐ 下一节(1.3 软件是指令和数据的集合)
相关笔记
- 软件是指令和数据的集合 — 下一节把两张表摊开细讲
- 🔵 计算机基础 · 索引 — 硬件部件有更细的展开
- 💻 计算机是怎样跑起来的 · 索引