(四)内核、内存、缓存、CPU、寄存器等基本概念

Linux系统

linux系统主要组成:应用程序、shell、文件系统、内核;

                                 

内核

 内核作用:负责管理系统的进程、内存、设备驱动、文件系统和网络系统等,是操作系统的核心。

 内核组成:

  内存管理

  进程管理

  文件系统

  设备驱动管理

  网络管理

 内核实现:通过系统调用接口来完成用户和内核之间的交互

  

内存

    内存:

      优点:存取速度远高于硬盘的速度

      缺点:断电丢失数据,不能持久化数据

      作用:交换数据

         暂时存放cpu中的运算数据,与硬盘外部存储器交换的数据(相当于一个仓库)

         保存从硬盘读取的数据,提供给cpu进行运算

          保存cpu运算的临时执行结果,以便cpu下次使用或保存到硬盘中

    硬盘:

      优点:持久化存储数据(磁盘、光盘等)、存储容量大

      缺点:速度慢

   

    电脑工作时,会把要用的东西先从硬盘调用到内存中(内存比硬盘速度快,如果每次访问硬盘太慢了)

    当我们在计算机上执行一个程序时,首先由输入设备向CPU发出操作指令,CPU接收到操作指令后,硬盘中对应的程序指令被直接加载到内存中,此后,CPU再对内存进行寻址操作,将加载到内存中的指令翻译出来,而后发送操作信号给操作控制器,实现程序的运行或数据的处理

cpu

    cpu:

      作用:处理指令、执行操作、控制时间、处理数据(即数据运算)等

      组成:寄存器、控制单元、逻辑运算单元等

cpu执行指令过程:

程序实际上就是一条条指令,程序的运行过程就是指令一步步的执行起来,cpu本质上就是执行指令

    1. cpu先读取【程序计数器】的值即指令的内存地址,cpu的【控制单元】操作【地址总线】指定需要访问的内存地址,通知内存准备数据,数据准备好后通过【数据总线】指令数据传给cpu,cpu收到传来的数据,将指令数据存入到【指令寄存器】;

    2. cpu分析【指令寄存器】中的指令,确定指令的类型和参数,如果是计算类型的指令,就把指令交给【逻辑运算单元】运算,如果是存储类型的指令,则交由【控制单元】执行;

    3.  cpu执行完指令后,【程序计数器】的值自增,表示指向下一条指令;

             

缓存

    缓存:

      位置:缓存是cpu的一部分,位于cpu中

      来源:在没有缓存之前,cpu一直是在内存中读取数据,但由于两者速度差异,cpu每次都要等内存的"回信", 缓存的设计是用来解决cpu与内存速度差异问题

   理解:

      假设一个8核的cpu,每个核都有自己独立L1 Cache(1级缓存)、L2 Cache(2级缓存),而L3 Cache(3级缓存)是8核共享的;

      缓存大小:离核心越近、等级越高越小、速度越快、L1 Cache缓存最小,速度最快;

      内存的数据会先加载到共享的L3 Cache中,再加载到每个核心独有的L2 Cache,最后进入到最快的L1 Cache,之后才被cpu读取;

                             

虚拟内存

    虚拟内存是windows操作系统用来管理内存的一种方法,虚拟内存说穿了就是把内存中的信息分出去一部分存在硬盘上,

    这样从表面上看就扩大了内存容量(难怪内存中存了这么多东西,原来有一部分被转到了硬盘上)

      缓存是一种硬件,而虚拟内存是存在硬盘上的文件,缓存的目的是加快系统的速度,而虚拟内存技术是为了使更多的程序能够在有限的内存中运行。

寄存器

  寄存器:

     作用:暂时存放参与运算的数据和运算结果

     位置:是cpu内部元件,其读写速度非常快

     种类:

        通用寄存器:存储需要进行运算的数据(需要加减等运算的两个数据)

        程序计数器:存储cpu要执行下一条指令所在的内存地址

        指令寄存器:存储程序计数器指向的指令,指令被执行完之前都放在这里

  

  cpu中的寄存器主要是存储计算时的数据,为什么有了内存还需要寄存器?因为内存离cpu太远了,而寄存器就在cpu里,

  就比如,将100元放在口袋(寄存器), 和放在书包(内存)里,你(cpu)当然从口袋里取是最快的,并且寄存器离控制和逻辑运算单元都很近,速度可想而知;  

    

进程

  各个进程间共享cpu资源

  进程间的内存是共享的

总结

速度:

  寄存器 > 缓存 > 内存 > 硬盘

关系:

  寄存器存储在cpu中,缓存是cpu划分的一片区域,cpu从内存中获取数据,内存是从硬盘中获取数据,

  cpu从内存中拿到数据后,在cpu内部开辟一片存储空间,即缓存,将数据存储在缓存中,

  以后cpu就从缓存中读取频繁使用的数据,减少cpu与内存的频繁交互,cpu从缓存中拿到数据后,

  再将数据放入寄存器中,cpu对寄存器的数据进行计算,计算完后再将数据放到内存中

  注:

    1.当缓存中没有cpu所需要的数据,cpu会从内存中读取数据,再放到缓存中,再从缓存中读取数据;

    2.当cpu需要将数据写入到内存中,会先存入到缓存,再找合适的机会写到内存中;

参考:

 https://blog.csdn.net/qq_34827674/article/details/109147330

做一个优秀的程序媛
原文地址:https://www.cnblogs.com/oytt/p/13994753.html