文案库 · B站

【CSAPP-深入理解计算机系统】1-2.计算机系统漫游

九曲阑干 · 2020-07-25 · 赞 2,542 · 收藏 1,982 · 评论 105 · 读取于 2026-11-12

要点(每条带原文引文)

  • 在Linux系统中,用户通过Shell程序输入可执行文件名来运行程序。 — ✓ “在Shell中输入相应可执行程序的文件名” (0:14)
  • Shell是一个命令解释程序,若输入非内置命令则将其视为可执行文件进行加载和运行。 — ✓ “Shell就会假设这是一个可执行文件的名字” (0:40)
  • CPU包含程序计数器PC、寄存器文件和算术逻辑单元ALU等核心组件。 — ✓ “Register file PC ALU System bus”
  • PC存放当前指令地址,处理器不断执行PC指向的指令并更新PC以指向下一条指令。 — ✓ “处理器就在不断的执行PC指向的指令” (2:10)
  • 32位机器一个字长为4字节,64位机器一个字长为8字节。 — ✓ “对于32位的机器,一个字是4个字节” (1:57)
  • 寄存器是CPU内部用于临时存放数据的存储设备,如暂存变量A和B的值进行计算。 — ✓ “处理器从内存中读取A的值,暂存在寄存器X中” (2:40)
  • 主存(内存)从逻辑上看是从零开始的大数组,每个字节都有相应地址。 — ✓ “从逻辑上讲,内存可以看成一个从零开始的大数组” (3:28)
  • 总线贯穿整个计算机系统,负责在不同部件间传递固定长度的数据块(字)。 — ✓ “通常总线被设计成传送固定长度的字节块” (3:49)
  • 输入输出设备通过控制器或适配器连接到IO总线,实现数据传递。 — ✓ “每一个输入输出设备都是通过一个控制器或者适配器与IO总线相连” (4:16)
  • 运行Hello程序时,Shell读取键盘输入并将字符串存入内存。 — ✓ “Shell程序会将输入的字符逐一读入寄存器” (4:54)
  • 按下回车后,系统利用DMA技术将磁盘上的可执行文件代码和数据复制到内存。 — ✓ “这个复制过程将利用DMA技术” (5:25)
  • 处理器从内存复制数据到寄存器,再复制到显示设备,最终在屏幕输出结果。 — ✓ “然后再从寄存器文件复制到显示设备” (5:44)
  • 计算机系统设计的主要任务是缩短信息在磁盘、内存、处理器和IO设备间的搬运时间。 — ✓ “系统设计人员的一个主要任务就是缩短信息搬运所花费的时间” (6:21)
  • 大容量存储设备存取速度慢且便宜,小容量高速设备价格昂贵。 — ✓ “大容量的存储设备的存取速度要比小容量的慢” (6:31)
  • 从磁盘读取一个字的开销比从内存大千万倍,从内存读取比从寄存器慢百倍。 — ✓ “从磁盘上读取一个字所花费的时间开销要比从内存中读取的开销大一千万倍” (6:49)
  • 为解决处理器与内存速度差异,系统在寄存器与内存之间引入了多级高速缓存。 — ✓ “针对处理器和内存之间的差异,系统设计人员在寄存器文件和内存之间引入了高速缓存” (7:13)
  • 现代处理器通常拥有L1、L2、L3三级高速缓存,访问速度逐级降低,容量逐级增大。 — ✗ “L1 cache L2 cache L3 cache”
  • 存储器层次结构从上到下表现为:访问速度变慢,容量变大,每字节造价变便宜。 — ✓ “从上到下,设备的访问速度越来越慢,容量越来越大” (7:55)
  • 上层存储设备作为下层存储设备的高速缓存,例如寄存器是L1的缓存,L1是L2的缓存。 — ✗ “上层存储设备是下一层存储设备的高速缓存”

要点由 LinkDigest 的模型写出,引文逐字核对过:✓ 在原文里找到了,✗ 没找到。

画面文字(前 10 行)

  • 0:00 Run Hello Program by Shell / linux> gcc -o hello hell.c / hello.c / Compilation System / (gcc) / hello / 讲述了 hello 程序如何经过编译系统得到可执行目标文件 hello
  • 0:12 Run Hello Program by Shell / linux> gcc -o hello hell.c / hello.c / Compilation System / (gcc) / hello / disk / 在 linux 系统上运行可执行程序
  • 0:25 Run Hello Program by Shell / linux> ./hello / Shell / 这里做一个简单的介绍,shell 是一个命令解释程序
  • 0:38 Run Hello Program by Shell / linux> ./hello / Shell / 对这个文件进行加载并运行
  • 0:51 Run Hello Program by Shell / linux> ./hello / hello,world / Shell / hello 程序运行结束并退出
  • 1:04 Run Hello Program by Shell / linux> ./hello / hello,world / linux> / Shell / 接下来我们讲看一下 hello 程序运行时,系统发生了什么
  • 1:17 Hardware Organization of a System / 中央处理单元(Central Processing Unit, ),也称处理器
  • 1:30 Hardware Organization of a System / PC / 首先我们看一个这个Program Count,简称 PC
  • 1:43 Hardware Organization of a System / PC / 个人认为,这种直译的方式并没有很好表述 PC 的真实含义
  • 1:55 Hardware Organization of a System / PC / 32-bit: / 1 word = 4 Byte / 64-bit: / 1 word = 8 Byte / 说白了,PC就是一个4字节或是8字节的存储空间

逐字稿

在上一期的视频中,讲述了Hello程序如何经过编译系统得到可执行目标文件Hello。 此时,可执行目标文件Hello已经存放在系统的磁盘上,那么如何运行这个可执行程序呢? 在Linux系统上运行可执行程序,第一步我们需要打开一个Shell程序,然后在Shell中输入相应可执行程序的文件名。 对于不熟悉Linux系统的同学,可能对Shell程序比较陌生,这里做一个简单的介绍。 Shell是一个命令解释程序,它输出一个提示符来等待一个命令行的输入,然后执行这个命令。 如果该命令行的第一个单词不是内置的Shell命令,那么Shell就会假设这是一个可执行文件的名字,对这个文件进行加载并运行。 在这个…

这里只显示前 300 字。 登录后免费看完整逐字稿(已读过的链接不扣积分)

读了什么

  • 读了 1 张图,每张都有描述
  • 图上文字 57 行
  • 逐字稿 73 段 (515 / 515 s)
  • 画面文字 40 行,带出现时间
  • 抽帧间隔不超过 12.9 秒
  • 没读到:comments not read

样例,第 1 张图 — A computer architecture block diagram on a black background with cyan boxes and arrows. The top left section contains a 'Register file' connected to an 'ALU' and a 'PC', all linked to a 'Bus interface'. This connects via a 'System bus' to an 'I/O bridge', which links to 'Main memory' via a 'Memory bus'. A horizontal 'I/O bus' at the bottom connects the I/O bridge to a 'USB controller' (connected to 'Mouse' and 'Keyboard'), a 'Graphics adapter' (connected to 'Display'), and a 'Disk controller' (connected to a 'Disk' icon). 图上文字开头: “Register file PC ALU System bus Memory bus Bus interface I/O bridge Main memory …”

只有计数和一句样例;全文留在原帖。

LinkDigest

读你自己的链接

贴一条小红书、抖音、B站、微博、公众号、YouTube 或 TikTok 链接,几十秒后拿到文案、逐字稿、图上文字和要点。

试读一条链接
解析获取读取整理

点下面的示例,或粘贴你自己的链接。

示例

相关内容

本页由 LinkDigest 读取公开内容后生成的要点与引文;原文版权归作者,引用请注明原文链接。如需下架,请通过 /app/feedback 告知。 原文链接 · support@linkdigest.dev