美文网首页
内存管理-程序是如何运行的

内存管理-程序是如何运行的

作者: 没我找不到电子书 | 来源:发表于2019-01-04 19:19 被阅读0次

对于CPU来说,内存是一个存放指令和数据的地方,并不能在内存中完成计算功能,例如要计算 a = b + c,必须将 a、b、c 都读取到CPU内部才能进行加法运算。为了解具体的过程,我们不妨先来看一下程序从硬盘到CPU的过程示意图。


cpu.jpeg

运算单元:是CPU的大脑,负责加减乘除、比较、位移等运算工作,每种运算都有对应的电路支持,速度很快。

寄存器(Register):是CPU内部非常小、非常快速的存储部件,它的容量很有限,对于32位的CPU,每个寄存器一般能存储32位(4个字节)的数据,对于64位的CPU,每个寄存器一般能存储64位(8个字节)的数据。嵌入式系统功能单一,寄存器数量较少。

寄存器在程序的执行过程中至关重要,不可或缺,它们可以用来完成数学运算、控制循环次数、控制程序的执行流程、标记CPU运行状态等。

那么,在CPU内部为什么又要设置缓存呢?虽然内存的读取速度已经很快了,但是和CPU比起来,还是有很大差距的,不是一个数量级的,如果每次都从内存中读取数据,会严重拖慢CPU的运行速度,CPU经常处于等待状态,无事可做。在CPU内部设置一个缓存,可以将使用频繁的数据暂时读取到缓存,需要同一地址上的数据时,就不用大老远地再去访问内存,直接从缓存中读取即可。

内存是为了解决硬盘速度慢,CPU中的缓存是为了解决内存速度慢

缓存的容量是有限的,CPU只能从缓存中读取到部分数据,对于使用不是很频繁的数据,会绕过缓存,直接到内存中读取。所以不是每次都能从缓存中得到数据,这就是缓存的命中率,能够从缓存中读取就命中,否则就没命中。

这里说明了CPU的简单构造,重点是让大家认识程序在运行中整个加载与执行过程。

相关文章

  • 内存管理-程序是如何运行的

    对于CPU来说,内存是一个存放指令和数据的地方,并不能在内存中完成计算功能,例如要计算 a = b + c,必须将...

  • 可能是史上最全面的内存管理文章

    iOS内存管理 概述 什么是内存管理 应用程序内存管理是在程序运行时分配内存(比如创建一个对象,会增加内存占用)与...

  • 内存管理

    一. 内存管理的认识 1.概念的认识 内存管理:一个程序在运行时给其分配内存,程序运行结束释放内存的过程。移动设备...

  • iOS 知识点(1)内存管理

    前言 内存管理是程序设计中很重要的一部分,程序在运行的过程中分配内存,运行结束后释放占用的内存。 如果程序运行时一...

  • iOS内存管理的前世今生

    概述 什么是内存管理 应用程序内存管理是在程序运行时分配内存(比如创建一个对象,会增加内存占用)与清除内存(比如销...

  • 【《深入理解Java虚拟机》读书笔记】--1.Java内存区域与

    1. Java程序运行时,内存是如何分配的。 Java虚拟机在执行Java程序时,会把它所管理的内存划分为若干个区...

  • 存储管理(2)

    虚拟内存管理 目标实现思路使得大的程序能在较小的内存中运行、使得多个程序能再较小的内存中运行、使得多个程序并发运行...

  • 内存管理初探

    一、概览 1.什么是内存管理 内存管理是在程序运行时,分配内存空间的过程。在Object-C当中,内存管理可以被看...

  • Java的优缺点是什么,程序是怎样运行的?

    Java程序到底是如何运行的? 1、内存回收机制 Java自身的内存管理方式决定了, 每当进行彻底的垃圾回收的时候...

  • Java程序是怎样运行的,JAVA的优缺点有哪些?

    Java程序到底是如何运行的? 1、内存回收机制 Java自身的内存管理方式决定了, 每当进行彻底的垃圾回收的时候...

网友评论

      本文标题:内存管理-程序是如何运行的

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