几年前记录在云笔记上的东西,整理过来。

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,内存,硬盘,指令之间的关系相关推荐

  1. cpu和内存的关系(CPU,内存和cache之间的关系)

    CPU.内存.主板三者间关系.插座形式.安装注意事项 这种问题很难回答,你可以找一本书看,呵呵 .我只能说出一点,CPU读取数据速度很慢,因为要从硬盘读取,所以用内存来读取.但是用 内存卡,段电后会丢 ...

  2. Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)

    作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Windows 性能监视器的一些基本指标(CPU,内存,硬盘参数),希望对大家将来 ...

  3. 【MacOS】Hammerspoon-sugood多合一效率工具,新增状态栏显示系统信息(CPU/内存/硬盘/网速)-v0.1.7

    运行环境要求 已测试可用的系统:MacOS 10.14 及以上 脚本功能说明 Github(国外地址) Gitee(国内地址) 已完成如下功能 状态栏显示输入法状态 时间同步功能 屏幕取色功能 JSO ...

  4. 树莓派-4-温度CPU内存硬盘状态信息

    获取树莓派当前状态和数据(温度.CPU.内存.硬盘) 1 CPU和操作系统信息 1.1 CPU信息 $ sudo cat /proc/cpuinfo $ sudo cat /proc/cpuinfo ...

  5. 处理器仿存带宽_linux服务器CPU内存硬盘读写带宽等性能测试方法

    如何对一个VPS主机进行CPU内存,硬盘IO读写,带宽速度等项目测试,像UnixBench和压力测试则可以综合反映一个VPS的性能水平,方便大家对照参考. VPS性能测试:CPU内存,硬盘IO读写,带 ...

  6. 一个用了统计CPU 内存 硬盘 使用率的shell脚本

    一个用了统计CPU 内存 硬盘 使用率的shell脚本 一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 代码如下: #!/bin/bash #This script is use ...

  7. CPU,内存, 硬盘,指令之间的关系

    CPU(Central Processing Unit) 中央处理器:是计算机的核心,负责控制和运算,主要由控制器.运算器.寄存器.时钟组成 寄存器:暂存指令和数据,用来临时存储 控制器:控制着整个C ...

  8. centOS7下实践查询版本/CPU/内存/硬盘容量等硬件信息

    https://www.cnblogs.com/zy-plan/p/8617202.html 1.系统 1.1版本 uname -a 能确认是64位还是32位,其它的信息不多 [root@localh ...

  9. golang 获取cpu 内存 硬盘 使用率 信息 进程信息

    目录 1.获取 cpu 内存 磁盘使用率 2.获取本机信息 3. 获取CPU信息 4. 获取内存信息 5.获取磁盘信息 6.获取网络信息 7. 获取进程信息 使用库: go get github.co ...

最新文章

  1. 我们需要什么样的数据架构?
  2. 扩增子分析解读5物种注释,OTU表操作
  3. Linux文件查看命令图解
  4. org.apache.poi 读取数字问题
  5. 你从未见过的 HTML5 动画效果
  6. vue项目中z-index不起作用(将vue实例挂在到window上面)
  7. 【clickhouse】Code: 135. DB::Exception: Received from xxx:9000. DB::Exception: Indices in strings are
  8. 资源向导之 quot;APUEquot;
  9. 安装beautifulsoup4
  10. php 实现背景图片轮换,纯js实现背景图片切换效果代码
  11. net view命令执行时,提示服务没有启动。
  12. JS URL传中文参数引发的乱码问题
  13. 华佳慧科技:OSN500设备ERPS相切环组网介绍
  14. 【雕虫小技第8篇】scratch编程技巧之源码中的图片素材资源导出!
  15. 疫情持续两年多职场妈妈更努力存钱,近六成中国内地受访者储蓄可维持生活一年以上...
  16. 服务器什么系统好用点,服务器用什么系统好
  17. zgb老师关于java集合的总结
  18. 键盘 Fn 键 的锁定与解锁
  19. 如何使用Socks5代理IP提高网络安全性
  20. Jekins构建触发器Build Triggers:定时构建配置

热门文章

  1. 国内知名IT互联网公司名单
  2. MTK 手机抓log
  3. Stata:空间双重差分模型(SpatialDID)-xsmle
  4. 移动互联网时代,微营销该怎么做?
  5. webpack常用的插件集合
  6. 大环境不确定,高端IT人才独有的大趋势在哪?|猿代码科技
  7. sqlserver2019安装注意事项-最后一步机器学习无法验证通过,机器学习python
  8. 数据手册中最小值、最大值、典型值三者之间的关系
  9. 喜大普奔:PC版有道词典有深色模式了
  10. 华为荣耀MagicBook笔记本 键盘灯怎么设置为常亮?