Skip to content

Commit 95f93cd

Browse files
committed
0226-作业提交
1 parent 11e51f4 commit 95f93cd

File tree

2 files changed

+21
-0
lines changed
  • group07/562247675/homework/homework-0226/src

2 files changed

+21
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# CPU、内存、硬盘、指令之间的关系
2+
  以文件复制为例,简单描述四者之间的协同工作。
3+
4+
  日常生活中,我们经常会在电脑磁盘之间的复制粘粘文件,是怎么实现的呢?粗读了《程序是怎么跑起来的》,这里简单描述下这个过程。
5+
6+
  当我们按下 Ctrl + C 时,CPU 执行 “复制指令” 将硬盘文件的起止地址临时放到内存中,这时内存并没有读取磁盘的所有文件数据。
7+
8+
  当我们按下 Ctrl + V 时,CPU 执行 “粘粘指令” 才会真正去拷贝文件,将文件起止地址取出,读取硬盘起止地址的数据到内存中,将内存中的数据,写入到硬盘新的起止地址里。
9+
  
10+
  这个过程看似简单,但是却有几个地方需要仔细去思考的,下面是我自己的几个自问自答。
11+
12+
- 如果文件有 100GB,而内存只有 8GB,内存会不会爆掉?
13+
不会,CPU “复制指令”执行时,总是会先将磁盘的文件读取到内存的缓存区,再从缓存区写入到硬盘中。因为内存的读写速度,是硬盘的好几十万倍(内存读写速率毫微秒级别,硬盘读写速率毫秒级别)所以不会出现硬盘等待内存读取数据再写入硬盘的情况,看到的进度条,也只是反映硬盘的写入速率。
14+
15+
- 既然内存读写速率这么快,那硬盘是不是可以被内存替代?
16+
不会,硬盘读写速率慢,但数据写入到硬盘后,是持久化存在的,不会因为关机而导致数据丢失,再次开机时硬盘数据还在。
17+
但是,内存是带电存储的,虽然读写速率快,但是一旦关机失去电荷,内存中所有的数据将会丢失,内存也不会被硬盘所替代。
18+
同时,内存容量的造价,也比硬盘要昂贵的多。单个硬盘容量超过 1TB 的很常见,但是单个内存容量超过 64GB 的,生活中是很少见的。
19+
20+
- “复制指令” 和 “拷贝指令” 在 CPU 内部是真实存在的吗?
21+
显然不是,这里描述的这两个 “指令”,其实是 CPU 内部多种指令集协同工作完成的,并不存在这样的单独指令。

group07/562247675/homework/homework-0226/src/test/resources/readme.md

Whitespace-only changes.

0 commit comments

Comments
 (0)