美文网首页
Linux 计算机基础01-工作模式

Linux 计算机基础01-工作模式

作者: 贪睡的企鹅 | 来源:发表于2019-07-18 15:22 被阅读0次

计算机的工作模式

对于一个计算机来讲,最核心的就是CPU(Central Processing Unit,中央处理器)。这是这台计算机的大脑,所有的设备都围绕它展开。CPU和其他设备连接,要靠一种叫作总线(Bus)的东西,其实就是主板上密密麻麻的集成电路,总线东西组成了CPU和其他设备的高速通道。这些设备中,最重要的是内存(Memory)。因为单靠 CPU是没办法完成计算任务的,很多复杂的计算任务都需要将中间结果保存下来,然后基于中间结果进行进一步的计算。CPU本身没办法保存这么多中间结果,这就要依赖内存了。

平时我们说计算机的"计算"两个字,其实说的是两个方面,第一,进程和线程对于CPU的使用,第二,对于内存的管理。

image

CPU结构

CPU 其实也不是单纯的一块,它包括三个部分,运算单元、数据单元和控制单元。

  • 运算单元:只管算,例如做加法、做位移等等,它不知道应该算哪些数据,运算结果应该放在哪里。

  • 数据单元:暂时存放运算数据和运算结果

  • 控制单元:控制单元是一个统一的指挥中心,它可以获得下一条指令,然后执行这条指令。指令会指导运算单元取出数据单元中的某几个数据,计算出个结果,然后放在数据单元的某个地方。

进程内存结构

执行的一个程序,需要依赖操作系统为其分配内存,用来加载binary file和存储程序运行的过程中要操作的数据和产生的计算结果,加载到内存中运行起来的程序在操作系统中被称为进程。不同的进程,会有独立的内存空间,互相隔离。

在进程的内存大致可以分为2块,"代码段","数据段"

  • 代码段:用来存储程序的二进制文件,里面包含CPU能识别的指令。
  • 数据段:用来存放程序运行的过程中要操作的数据和产生的计算结果。

CPU内存运行程序原理

1 获取进程代码段中指令

CPU 的控制单元里面,有一个指令指针寄存器,它里面存放的是下一条指令在内存中的地址。控制单元会不停地将代码段的指令拿进来,先放入指令寄存器

2 执行指令的执行

指令分两部分,一部分是做什么操作(例如是加法还是位移),一部分是操作哪些数据。要执行这条指令,就要把第一部分交给运算单元,第二部分交给数据单元。

  • 1 数据单元 根据数据在进程数据段的地址,从进程内存数据段里读取计算需要的数据放入到数据寄存器里。

  • 2 运算单元 执行运算。

  • 3 控制单元,将做完运算产生的结果会暂存在数据单元中

  • 4 最终,会有指令将数据写回进程内存中的数据段。

image

总线(Data Bus)

CPU 和内存来来回回传数据,靠的都是总线。其实总线上主要有两类数据,

数据总线:表示总线一次从物理内存中访问数据大小,位数越大一次拿的数据就越多,访问速度也就越快。

地址总线:也被称为“段”,表示操作系统一次访问数据大小,位数越多,能够访问的位置就越多,能管理的内存的范围也就越广。

image

相关文章

网友评论

      本文标题:Linux 计算机基础01-工作模式

      本文链接:https://www.haomeiwen.com/subject/qlullctx.html