文档章节

CPU、内存、硬盘、指令之间的关系

zoakerc
 zoakerc
发布于 2017/02/27 10:29
字数 647
阅读 166
收藏 0

  日常生活中,我们经常会在电脑磁盘之间的复制粘粘文件,是怎么实现的呢?粗读《程序是怎么跑起来的》,这里简单描述下这个过程,仅自己思考之言,错误之处欢迎指正。

  当我们按下 Ctrl + C 时,CPU 执行 “复制指令” 将硬盘文件的起止地址临时放到内存中,这时内存并没有读取磁盘的所有文件数据。

  当我们按下 Ctrl + V 时,CPU 执行 “粘粘指令” 才会真正去拷贝文件,将文件起止地址取出,读取硬盘起止地址的数据到内存中,将内存中的数据,写入到硬盘新的起止地址里。

  这个过程看似简单,但是却有几个地方需要仔细去思考的,下面是我自己的几个自问自答。

如果文件有 100GB,而内存只有 8GB,内存会不会爆掉?

  不会,CPU “复制指令”执行时,总是会先将磁盘的文件读取到内存的缓存区,再从缓存区写入到硬盘中。因为内存的读写速度,是硬盘的好几十万倍(内存读写速率毫微秒级别,硬盘读写速率毫秒级别)所以不会出现硬盘等待内存读取数据再写入硬盘的情况,看到的进度条,也只是反映硬盘的写入速率。

既然内存读写速率这么快,那硬盘是不是可以被内存替代?

  不会,硬盘读写速率慢,但数据写入到硬盘后,是持久化存在的,不会因为关机而导致数据丢失,再次开机时硬盘数据还在。 但是,内存是带电存储的,虽然读写速率快,但是一旦关机失去电荷,内存中所有的数据将会丢失,内存也不会被硬盘所替代。 同时,内存容量的造价,也比硬盘要昂贵的多。单个硬盘容量超过 1TB 的很常见,但是单个内存容量超过 64GB 的,生活中是很少见的。

“复制指令” 和 “拷贝指令” 在 CPU 内部是真实存在的吗?

  显然不是,这里描述的这两个 “指令”,其实是 CPU 内部多种指令集协同工作完成的,并不存在这样的单独指令,指令一般对应着一条或几条汇编语言。

© 著作权归作者所有

zoakerc
粉丝 20
博文 9
码字总数 8273
作品 0
海淀
程序员
私信 提问
编程语言的作用及与操作系统和硬件的关系

一、编程语言的作用及与操作系统和硬件的关系 作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定...

slagga
06/25
0
0
浅谈CPU、内存、虚拟内存、硬盘之间的关系

大家都知道组装电脑需要CPU硬盘,内存等硬件,系统中还含有虚拟内存,对于其中的相互关系,大家可能不了解! 下面用最简明易懂的语言,为大家介绍其中的关系! CPU CPU即中央处理器,是英语“...

问题终结者
04/02
0
0
计算机基础学习总结

1.编程语言的作用: 编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的桥梁 2.操作系统和硬件的关系: 操作系统通过控制器调用驱动程序让硬件工作。 3.应用程序,操作系统,...

ganzhoulin123
2017/11/11
0
0
【操作系统】计算机中内存、cache和寄存器之间的关系及区别

1. 寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在...

HaoDaWang
2017/12/13
0
0
CPU、内存、硬盘的关系、物理内存以及虚拟内存的关系

1. CPU即中央处理器,是英语“Central Processing Unit”的缩写。CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从...

Li_思华年
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移动端Appium自动化测试框架的优势

众所周知,现在市面上的移动端操作系统已被Android和IOS占领,其中Android的份额更是在80%以上。那么面对市面上林林总总的自动化测试框架和工具,为什么说Appium在自动化测试框架的统治级优势...

程序猿拿Q
4分钟前
0
0
设计模式 之 观察者模式

设计模式 之 观察者模式 场景 场景比较简单,当一个对象的状态发生改变时,自动通知所有依赖(或观察)它的对象。 比如:发布/订阅 原理:发布者存储N个订阅者的对象信息,当发布者发布消息时...

GMarshal
9分钟前
0
0
linux 常用

netstat -tunlp |grep 8080 查看8080 占用 netstat -tunlp 用于查看所有的端口号的进程情况

west_coast
13分钟前
1
0
Bytom信息上链教程

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 很多了解比原链的都知道,比原链是专注信息和数字资产在链上交互和流转的...

比原链Bytom
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部