zoukankan      html  css  js  c++  java
  • 内存的基础知识

    什么是内存?有什么作用?

    内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理

    外存的存取速度慢,CPU读取速度快,设置能够高速存取的内存可以缓和CPU和外存之间的矛盾。

    多道程序系统

    是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插的运行。两个或两个以上程序在计算机系统中同处于开始和结束之间的状态。这就称为多道程序技术运行的特征:多道、宏观上并发、微观上串行。

    在多道程序系统中,几个程序的数据同时放进内存,但是我们怎么区分各个程序的数据放在了什么地方呢?答案就是给内存的存储单元进行编址。每个地址对应一个存储单元。

    如果计算机“按字节编址”,则每个存储单元大小为 1 字节,即 1B,即 8 个二进制位;

    如果字长为 16 位的计算机“按字编址”,则每个存储单元大小为 1 个字,每个字的大小为 16 个二进制位。

    如果告诉我们内存的大小,怎么求地址长度?即需要多少个二进制位才能表示相应数目的存储单元?

    例如:一个电脑有4GB内存,地址长度是多少?

    4GB = 4 * 2^30B = 2^32B

    这么多的“格子”需要2^32个地址才能一一标识,所以地址需要用32个二进制位来表示(0~2^32-1)

    进程运行的基本原理

    指令的工作原理

    指令的工作基于“地址”,每个地址对应一个数据的存储单元。

    我们写的代码要翻译成CPU能识别的指令,这些指令会告诉CPU应该去内存的哪个地址读/写数据,这个数据应该做什么样的处理。

    逻辑地址 vs 物理地址

    逻辑地址 = 相对地址

    物理地址 = 绝对地址

    从写程序到程序运行:编辑-编译-链接-装入

    image-20200729210459389

    三种链接方式

    1. 静态链接
    2. 装入时动态链接
    3. 运行时动态链接

    三种装入方式

    也就是用三种不同的方法完成逻辑地址到物理地址的转换

    1. 绝对装入
    2. 静态重定向
    3. 动态重定向

    image-20200729213459680

  • 相关阅读:
    归一化与标准化的概念与区别
    深度学习中的优化器学习
    yolo3与yolo-tiny
    给tensorflow1.x estimator 添加timeline分析性能
    python 爬取百度图片
    TensorFlow 高性能数据输入管道设计指南
    TensorRT加速tensorflow模型(使用Tensorflow内置tensorRT,避免写自定义Plugin)
    21.Pod的limit和request和资源监控收集服务Heapster
    20.调度器,预选策略和优选策略
    8.docker的安全性
  • 原文地址:https://www.cnblogs.com/realzhaijiayu/p/13399778.html
Copyright © 2011-2022 走看看