机器里面有什么 · 计算机入门
计算机里面有什么?为什么没保存的东西一断电就没了?
课程目录为什么需要它
三大件,处理器、内存和存储,能解释很多日常现象:为什么开太多 App 手机会变慢,为什么要按保存,价签上的「8 GB」和「256 GB」各是什么意思。
以后你自己的程序要记住东西时,你也会知道这些东西放在哪里。
直觉理解
想象一个人坐在书桌前写作业:
- 处理器(CPU)就是这个人。真正干活的是它,每次只做很小的一步,但每秒能做几十亿步。
- 内存(RAM)就是书桌。你此刻正在用的东西都摊在桌上,伸手就拿得到。它很快但不大,而且一断电就被清空。
- 存储(固态硬盘、机械硬盘,或者手机上的「256 GB」)就是书架。它很大,断电也会一直保存,只是拿东西要慢一些。
打开一个 App 时,它会从书架复制到书桌上,处理器才能用它。写文档时,你打的字都摊在桌上;按保存,就是在书架上放一份副本。所以突然断电时,没保存的内容会消失:桌子被清空了,书架上还什么都没有。
App 开得太多,桌子就挤满了。计算机只好不停地把东西在桌子和书架之间搬来搬去,所以什么都变慢了。
程序要记住的值也放在桌上。右边这台小机器把一个分数放进内存,再一步步改它。
定义
处理器 CPU
The CPU (central processing unit) is the part of a computer that carries out the instructions of a program.CPU(中央处理器)是计算机里执行程序指令的部件。
内存 RAM
RAM is fast, temporary memory that holds the programs and data in use right now; its contents are lost when the power is off.内存(RAM)是快速的临时存储,放着正在使用的程序和数据;断电后里面的内容就没了。
存储 Storage
Storage, such as an SSD or a hard drive, keeps files permanently, even when the power is off.存储(比如固态硬盘或机械硬盘)会长期保存文件,断电也不会丢。
示例
桌上的分数
动手试试score 这个名字就是书桌(内存)上的一个位置,每一步都会改变那里放的值。把 10 改成别的数,再运行一次。
# A spot in memory called score
score = 0
print("Start:", score)
score = score + 10
print("After level 1:", score)
score = score + 10
print("After level 2:", score)- L2把 0 放进内存,名字叫 score。
score = 0 - L3显示内存里现在的值。
Start: 0 - L4CPU 读出 score(0),加 10,再把 10 放回同一个位置。
score = 10 - L6再来一次:10 + 10。旧的值被换掉了。
score = 20 - L7显示新的值。
After level 2: 20
桌子快,书架慢
动手试试真实的时间短到没法想象,所以这台机器把它们放大:假如从内存拿一次东西要 1 秒,从存储拿要多久?数字是粗略的,但差距是真的。
# If reaching memory (the desk) took 1 second...
memory = 1
ssd = memory * 1000 # roughly 1000 times slower
hard_drive = memory * 100000 # roughly 100000 times slower
print("Memory:", memory, "second")
print("SSD:", ssd // 60, "minutes")
print("Hard drive:", hard_drive // 3600, "hours")- L2假设去内存拿一次要 1 秒。
memory = 1 - L3固态硬盘大约慢一千倍。
ssd = 1000 - L4老式的机械硬盘大约慢十万倍。
hard_drive = 100000 - L61000 秒大约是 16 分钟。
SSD: 16 minutes - L7100000 秒大约是 27 小时。
Hard drive: 27 hours
突然断电
动手试试一条消息先打进内存,打到一半时保存到存储,然后突然断电。运行看看,哪些字留下来了。
memory = "See you at"
storage = ""
# Press Save: copy memory to storage
storage = memory
# Keep typing (only in memory)
memory = memory + " 6 pm!"
# Power cut: memory is wiped
memory = ""
print("Memory after restart: [" + memory + "]")
print("Storage after restart: [" + storage + "]")- L1你打的字在内存里。
memory = "See you at" - L4保存:复制一份到存储。
storage = "See you at" - L6你接着打字,新打的字只在内存里。
memory = "See you at 6 pm!" - L8断电了,内存被清空。
memory = "" - L10存储里还有保存过的内容,「 6 pm!」丢了。
Storage after restart: [See you at]
常见错误
价签上的内存和存储
标着「8 GB + 256 GB」的手机,8 GB 是内存(书桌),256 GB 是存储(书架)。存储大,能放更多照片;内存大,能同时开着更多 App。
「关掉 App 就是删掉它」
关掉 App 只是把它从书桌(内存)上拿走,它还在书架(存储)上,下次还能打开。删除才是把它从存储里移走。
不是什么都会自动保存
很多 App 会边用边自动保存,但不是全部。重要的东西,关掉之前先按保存(或者确认它显示「已保存」)。
小测验
1. 哪个部件真正在执行程序的指令?
查看答案
答案:B
干活的是 CPU(处理器)。内存和存储负责放东西,屏幕负责显示输出。
2. 你正在打字,还没按保存就停电了。你打的字当时在哪里?
查看答案
答案:A
在保存之前,你的内容只在内存(RAM)里。保存会把它复制到存储,断电也不会丢。
3. 一部手机有 6 GB 内存和 128 GB 存储。你想放更多照片,该看哪个数?
查看答案
答案:B
照片是要长期留着的文件,所以放在书架上,也就是存储。
要点
- CPU 负责干活,内存(RAM)放此刻正在用的东西,存储长期保存文件。
- 内存快,但断电就清空;存储慢一些,但一直保留。
- 保存就是把内容从内存复制到存储。
动手练习
3 道小练习:先想一想,再动手改一改看看结果,最后自己来一次。提交马上告诉你对不对。
- 想一想从书架到书桌
你点开一个游戏。CPU 运行它之前,游戏要先从 ___ 复制到 ___。
- 改一改及时保存
这台机器在保存之前就断电了,所以打印出来的
Saved:后面是空的。在合适的位置加一行
storage = memory,让断电之后机器打印:Saved: Meet at the park at 6消息本身不要改。
- 自己来书桌还是书架?
下面每一项,如果它在内存里(断电就没了)写 M,在存储里(会一直保留)写 S:
- 手机相册里的一张照片
- 你正在玩的这一局游戏的分数
- 上周安装的一个 App
- 打了字但从没保存的文字
按顺序写出四个字母,例如
MMSS。
本课术语
| 术语 | 中文 | 英文定义 |
|---|---|---|
| CPU (processor) | 处理器 | The part of a computer that carries out a program's instructions. |
| Memory (RAM) | 内存 | Fast, temporary space for programs and data in use; wiped when the power is off. |
| Storage | 存储 | Permanent space for files, such as an SSD or hard drive; kept when the power is off. |
| Save | 保存 | Copy your work from memory to storage so that it is kept. |