简述CPU,内存,硬盘,指令之间的关系
几年前记录在云笔记上的东西,整理过来。
1、基础介绍
- CPU:中央处理器(Central Processing Unit),是用来表示计算机内部元件功能的术语,CPU内部由数百万至数亿个晶体管构成。
在程序运行时,CPU负责解析和运行程序内容。
从功能方面来看,CPU内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。寄存器可以用来暂存指令、数据等处理对象;控制器负责把内存中的指令和数据读入寄存器,并且根据指令的执行结果来控制整个计算机;运算器负责运算从内存读入寄存器的数据;时钟负责发出CPU开始计时的时钟信号。
- 内存:内存实际上是一种名为内存IC(Integrated Circuit)的电子元件。内存IC中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚(IC的引脚),通过为其指定地址,来进行数据的读写。
- 硬盘:硬盘是计算机主要的存储媒介之一,由一个或多个铝制或者玻璃制的碟片组成,瓷片外覆盖有铁磁性材料。
- 指令:即计算机指令,是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。计算机程序由指令和数据组成。
2、相互关系
- 内存和CPU的关系:通常所说的内存指的是计算机的主存储器(main memory ),简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。CPU通过内部程序计数器来指定内存地址,然后才能读出程序。
- 内存和硬盘的关系:内存和硬盘都具有存储命令和数据的功能,在硬盘中保存的原始程序是无法直接运行的,必须要加载到内存后才能运行。
- 指令和硬盘的关系:指令作为程序的组成部分,存储在硬盘上对应的可执行文件中。
- 指令和内存的关系:程序运行时,会在内存中生成程序副本,指令被加载进内存。
- 指令和CPU的关系:CPU的控制器将内存中的指令读入CPU的寄存器中。
3、通过Windows环境中HelloWord程序来理解CPU、内存、硬盘、指令之间的关系
首先,程序员利用计算机高级语言编写了helloword程序,称为源代码,存放源代码的文件称为源文件;
其次,通过编译器转换源代码,生成本地文件(helloword.obj文件,即目标文件,此时的本地文件尚不能被运行,还需通过第三步转换成可执行文件);
然后,通过链接器的链接操作,将第二步生成的本地文件通过链接生成可执行的helloword.exe文件,EXE文件作为单独文件存储在硬盘上,称为本地代码(如图8-4,本地代码是数值的罗列,每个数值表示一个命令或数据,CPU种类不同,本地代码的类型也不同)。
然后,当用户双击EXE文件时,计算机就会把EXE文件的内容加载到内存中运行。
程序被加载到内存后,还会额外生成两个组,即栈和堆。栈是用来存储函数内部临时使用的变量(局部变量),以及函数调用时所用的参数的内存区域。堆是用来存储程序运行时的任意数据及对象的内存区域。栈和堆需要的内存空间是在EXE文件加载到内存后并且程序开始运行时得到分配的。
内存中的程序是由用于变量的内存空间、用于函数的内存空间、用于栈的内存空间、用于堆的内存空间这4部分够成的。
最后,程序运行过程中,CPU中的控制器会将内存中的程序指令和数据读入CPU的寄存器,运算器对寄存器中的数据进行运算,控制器根据运算器的运算结果控制计算机的下一步操作。
简述CPU,内存,硬盘,指令之间的关系相关推荐
- cpu和内存的关系(CPU,内存和cache之间的关系)
CPU.内存.主板三者间关系.插座形式.安装注意事项 这种问题很难回答,你可以找一本书看,呵呵 .我只能说出一点,CPU读取数据速度很慢,因为要从硬盘读取,所以用内存来读取.但是用 内存卡,段电后会丢 ...
- Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)
作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Windows 性能监视器的一些基本指标(CPU,内存,硬盘参数),希望对大家将来 ...
- 【MacOS】Hammerspoon-sugood多合一效率工具,新增状态栏显示系统信息(CPU/内存/硬盘/网速)-v0.1.7
运行环境要求 已测试可用的系统:MacOS 10.14 及以上 脚本功能说明 Github(国外地址) Gitee(国内地址) 已完成如下功能 状态栏显示输入法状态 时间同步功能 屏幕取色功能 JSO ...
- 树莓派-4-温度CPU内存硬盘状态信息
获取树莓派当前状态和数据(温度.CPU.内存.硬盘) 1 CPU和操作系统信息 1.1 CPU信息 $ sudo cat /proc/cpuinfo $ sudo cat /proc/cpuinfo ...
- 处理器仿存带宽_linux服务器CPU内存硬盘读写带宽等性能测试方法
如何对一个VPS主机进行CPU内存,硬盘IO读写,带宽速度等项目测试,像UnixBench和压力测试则可以综合反映一个VPS的性能水平,方便大家对照参考. VPS性能测试:CPU内存,硬盘IO读写,带 ...
- 一个用了统计CPU 内存 硬盘 使用率的shell脚本
一个用了统计CPU 内存 硬盘 使用率的shell脚本 一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 代码如下: #!/bin/bash #This script is use ...
- CPU,内存, 硬盘,指令之间的关系
CPU(Central Processing Unit) 中央处理器:是计算机的核心,负责控制和运算,主要由控制器.运算器.寄存器.时钟组成 寄存器:暂存指令和数据,用来临时存储 控制器:控制着整个C ...
- centOS7下实践查询版本/CPU/内存/硬盘容量等硬件信息
https://www.cnblogs.com/zy-plan/p/8617202.html 1.系统 1.1版本 uname -a 能确认是64位还是32位,其它的信息不多 [root@localh ...
- golang 获取cpu 内存 硬盘 使用率 信息 进程信息
目录 1.获取 cpu 内存 磁盘使用率 2.获取本机信息 3. 获取CPU信息 4. 获取内存信息 5.获取磁盘信息 6.获取网络信息 7. 获取进程信息 使用库: go get github.co ...
最新文章
- 我们需要什么样的数据架构?
- 扩增子分析解读5物种注释,OTU表操作
- Linux文件查看命令图解
- org.apache.poi 读取数字问题
- 你从未见过的 HTML5 动画效果
- vue项目中z-index不起作用(将vue实例挂在到window上面)
- 【clickhouse】Code: 135. DB::Exception: Received from xxx:9000. DB::Exception: Indices in strings are
- 资源向导之 quot;APUEquot;
- 安装beautifulsoup4
- php 实现背景图片轮换,纯js实现背景图片切换效果代码
- net view命令执行时,提示服务没有启动。
- JS URL传中文参数引发的乱码问题
- 华佳慧科技:OSN500设备ERPS相切环组网介绍
- 【雕虫小技第8篇】scratch编程技巧之源码中的图片素材资源导出!
- 疫情持续两年多职场妈妈更努力存钱,近六成中国内地受访者储蓄可维持生活一年以上...
- 服务器什么系统好用点,服务器用什么系统好
- zgb老师关于java集合的总结
- 键盘 Fn 键 的锁定与解锁
- 如何使用Socks5代理IP提高网络安全性
- Jekins构建触发器Build Triggers:定时构建配置