💻 第一章 计算机的三大原则
📄 一句话概括

硬件看得再多也归三堆:输入设备送数进来,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 秒实验

  1. 开机时盯着启动画面看:那个进度条就是【硬盘 -> 内存】的搬运过程。
  2. 打开任务管理器看内存占用——那正是【操作台】现在摆了多少料。

常见误区

  1. 以为 CPU 直接读硬盘——中间必须过内存,这是初学最常见的结构性误解。
  2. 把内存和硬盘混为一谈——内存断电就清空,硬盘断电不丢,分工完全不同。
自测三问(点开对答案) 1. CPU 要算的数据从哪里来? —— 从内存来。CPU 只跟内存打交道,硬盘的数据必须先搬进内存。 2. 硬盘的角色是什么? —— 仓储——断电后长期保管程序和数据,不参与正在进行的运算。 3. 为什么程序必须装入内存才能运行? —— 因为 CPU 的取指和取数都只认内存,硬盘再大也进不了 CPU 的视线。

相关笔记