zoukankan      html  css  js  c++  java
  • (四)内核、内存、缓存、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

    做一个优秀的程序媛
  • 相关阅读:
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    使用Jasmine和karma对传统js进行单元测试
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    nginx 基于IP的多虚拟主机配置
    Shiro 框架的MD5加密算法实现原理
    项目实战:Qt+OSG三维点云引擎(支持原点,缩放,单独轴或者组合多轴拽拖旋转,支持导入点云文件)
    实用技巧:阿里云服务器建立公网物联网服务器(解决阿里云服务器端口,公网连接不上的问题)
  • 原文地址:https://www.cnblogs.com/oytt/p/13994753.html
Copyright © 2011-2022 走看看