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

    做一个优秀的程序媛
  • 相关阅读:
    [好文翻译]保卫你的日历
    如何使用PowerShell修改Host文件
    如何使用PowerShell修改注册表
    MSDN文章纠错Automating Microsoft SharePoint 2010 with Windows PowerShell 2.0 (book excerpt)
    如何在PowerShell中得到一个对象的所有属性名和方法名呢?
    Service Object Model
    记录一个问题的解决方法
    STSADM Sync 命令里的 – Ignoreisactive 标志位
    Javascript实现图片位置控制(鼠标拖拽 + 键盘方向键移动)源码分享
    从零开始学习jQuery (六) AJAX快餐【转】
  • 原文地址:https://www.cnblogs.com/oytt/p/13994753.html
Copyright © 2011-2022 走看看