计算机基础——内存

news2024/11/18 22:36:53

文章目录

  • 内存
  • 一、内存条、总线、DMA
  • 二、内存管理
      • 1、为什么要有逻辑地址
      • 2、逻辑地址和物理地址如何映射
      • 3、分页时间和空间优化
      • 4、程序内部的内存管理-分段
  • 三、内存相关的系统调用
      • 1、用户态和内核态
  • 四、Java内存


内存

提示:这里可以添加本文要记录的大概内容:


提示:以下是本篇文章正文内容,下面案例可供参考

一、内存条、总线、DMA

  • CPU和内存是数据总线和地址总线直接相连
  • CPU和显卡是PCIE总线相连
    在这里插入图片描述
  • 南桥中有一个芯片 DMAC(直接内存访问控制器)
  • DMAC读取文件时对CUP将总线的控制权交给DMAC ,是绝对的控制权,但是外设依然有效是因为CPU和DMAC 轮换掌握总线控制权(DMA状态下CPU和总线数据隔离状态)
    在这里插入图片描述

二、内存管理

1、为什么要有逻辑地址

  • 程序无法知道可用的物理地址,所有需要做映射

2、逻辑地址和物理地址如何映射

  • 固定偏移量映射 : 高效,但是无法估量每个程序具体多大内存 会有内存碎片
  • 分页
    • 逻辑内存页(page)
    • 页表(page table) 存储 页号和帧号 是逻辑内存和物理内存的关系表(其实还有其他字段,而且每个进程都有属于自己的页表
    • 物理内存祯 (page frame)
      内存的一个地址里就是一个字节(Byte)的数据
      32位OS物理地址有2^32个,因此只能使用4GB的内存
      任何一个32位的程序可操作的逻辑地址是2^32个即4GB(每个32位程序都天真的以为自己拥有4GB内存)
      多个程序使用内存总和大于物理内存,此时就会借助磁盘,将并不着急使用的内存放到磁盘,PT对应的帧号只显示是磁盘
  • 一次寻址(当寻址对应的帧号是磁盘,会发生缺页中断或缺页异常,然后程序就会进入内核态,最后内核会去磁盘找这一帧的数据,并把它加入到内存中,并再发生一遍寻址,所以速度是可以优化的
    在这里插入图片描述

在这里插入图片描述

3、分页时间和空间优化

  • 时间优化
    将最常访问的几个(一般8-128个左右)页表项存到访问速度更快的硬件中,一般实在MMU(内存管理单元),这个小表的名称为TLB,可以称其为快表
    先寻址先查TLB然后miss后在查PT,快表命中率很高,因为一个事实:程序最长访问的也没几个。
  • 空间优化
    多级页表

4、程序内部的内存管理-分段

分段和分页结合的方式:每个段有很多页,页表中存储段号和页号唯一映射物理帧号,物理层面几乎都不支持段页结合只有少数CPU支持,但保留了段的概念。


三、内存相关的系统调用

1、用户态和内核态

  • 用户态转为内核态一般是申请外部资源时,外部资源有哪些?
    • 系统调用
      • 进程 exit fork
      • 文件 chmod chown
      • 设备 read write
      • 信息 getxxx
      • 通信 pipe mmap(申请内存 大于128k,零拷贝技术) brk(申请内存 小于128k)
    • 中断 缺页中断
    • 异常
      因为用户无法直接操作硬件,所以需要转为内核态

四、Java内存

在这里插入图片描述
在java中 对象的存储结构 是分为对象头,对象体
对象头

  • Mark Word(64bit 8字节) :记录对象源信息 例如:锁、对象年龄

  • Klass Word (32bit 4字节/8字节):这指向Metaspace(C++中) 中一个 Klass对象(记录对象元数据信息)

    • 当开启压缩时,是4字节,默认是开启
    • 不开启压缩时,是8字节
    • Klass 通过c++中的java_mirror 指向堆中Class对象
  • Array Length (32bit 4字节):数组长度,如果是数据对象会有值

对象体

  • 存放局部变量

指针压缩技术

  • java的对象是8字节对齐的,所以32bit地址表示2^32*8Byte=32DB的内存地址,所以在堆内存32G以内都是默认开启指针压缩的,每个对象的地址用4字节表示,但是堆超过32G则无法开启压缩,每个对象地址必用8字节表示

学习自B站up主free-coder
https://www.bilibili.com/video/BV1u7411z7Sv/?spm_id_from=333.999.0.0&vd_source=5cd000f583af07505da743bd1280ab0d
https://www.bilibili.com/video/BV1454y1X7rk?p=5&spm_id_from=pageDriver&vd_source=5cd000f583af07505da743bd1280ab0d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS+Jquery用法

1. 当存在多个select时,想要获取每一个select的选中的值(使用变量赋值的方法). var Metric "";$(#Metric).change(function () {Metric $(this).children("option:selected").val();console.log("Metric:" Metric);}); 2. 在页面…

海外代理IP与VPN有何区别?哪个更好?

当谈到网络安全和IP变更时,人们会想到VPN和IP代理服务器。很多人很困惑,它们之间有什么区别,应该选择哪一个呢?这取决于您的需求来决定哪一个更好。 一、什么是VPN与IP代理? VPN 是虚拟专用网络 (Virtual Private Net…

ACP.项目管理.5种复盘会议

复盘要怎么做的有水准,让领导满意,方式方法很重要。今天给你们安利5种复盘方法,保准你省事,领导还满意。 一、KPT复盘法 7月份年中一直在做和复盘相关的事,像公司的OKR复盘、年中战略规划,不过日常很多生…

Hadoop 安装教程 (Mac m1/m2版)

安装JDK1.8 这里最好是安装1.8版本的jdk 1. 进入官网Java Downloads | Oracle Hong Kong SAR, PRC,下滑到中间区域找到JDK8 2.选择mac os,下载ARM64 DMG Installer对应版本 注:这里下载需要注册oracle账号,不过很简单,只需要提供邮箱即可&…

【C++】模板进阶 -- 详解

一、非类型模板参数 模板参数 分类类型形参与非类型形参。 类型形参,即出现在模板参数列表中,跟在 class 或者 typename 之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类…

基于SSM的毕业生就业管理平台设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

2023年,考PMP用处大吗?

就本身PMP的价值而言,不管到多少年,跟新迭代下,用处都是很大的,就看你会不会用。 PMP会让你学到一套系统的项目管理的流程,还有作为项目管理人士该具备的素质和技能,这就是使得,即便从未接触过…

谷粒商城笔记+踩坑(25)——整合Sentinel实现流控和熔断降级

导航: 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式常见面试题源码 SpringCloud基础5——微服务保护、Sentinel 目录 一、Sentinel概述 1.1、服务流控、熔断和降级 1.2、Sentinel 简介…

能否翻译翻译,到底什么才叫“精通Java” ?

01 模糊的岗位能力标准 技术类人员的招聘始终是令HR 与技术面试官头疼的事。 在一般招聘流程中,当确定了某个岗位招聘需求后,技术面试官会与HR 一同商讨并明确该岗位的画像。 明确画像后,一般HR 会负责在招聘平台书写岗位JD,技…

不同商家的订单详情API接口可能会有不同的实现方式,下面是一个通用的订单详情API接口的示

不同商家的订单详情API接口可能会有不同的实现方式,下面是一个通用的订单详情API接口的示例: 请求方式:使用HTTP或HTTPS协议,向指定URL发送GET请求,获取订单详情。 URL格式:商家订单详情API的URL通常由两部…

nginx之基于LNMP搭建论坛

LNMP:企业网站的应用模式之一,早期的论坛架构就是lnmp搭建的 L:Linux平台,操作系统,是另外三个组件的运行平台 N:nginx,提供静态页面 M:mysql,数据库,开元…

【一些理解】搜广推:推荐、广告、搜索算法的区别、入坑?

【一些理解】搜广推:推荐、广告、搜索算法的区别、入坑? 文章目录 【一些理解】搜广推:推荐、广告、搜索算法的区别、入坑?1. 根本区别2. 目标上的区别3. 模型上的区别4. 辅助策略和算法上的区别参考 作为互联网的核心应用“搜广推…

计算机的字符与编码集

文章目录 前言一、字符编码集的历史1.ASCII码2.Extended ASCII码3.字符编码集的国际化 二、中文编码集 前言 今天给大家介绍计算机的字符与编码集,分为两部分:字符编码集的历史、中文编码集。 一、字符编码集的历史 这部分包含三个板块内容&#xff1a…

【特纳斯电子】基于物联网的空气质量检测-实物设计

视频及资料链接:基于物联网的空气质量检测-实物设计 - 电子校园网 (mcude.com) 编号: T0082203M-SW 设计简介: 本设计是基于物联网的空气质量检测系统,主要实现以下功能: 1.通过OLED显示模式、温度、湿度、PM2.5、…

【Java】查找jdk步骤

需求描述 解决方法 第一步 第二步 第三步 第四步 参考文章

自定义jenkins镜像提示FontConfiguration.head错误

系统使用:Debian12,jdk17 提示问题:缺少字体 找一台jdk8的环境,在lib文件夹中找到fontconfig.bfc find / -name *fontconfig* 复制到jenkins目标服务器中,jdk目录的lib中 再次启动jenkins服务正常

云梦富盈:智慧投资引领未来市场

随着2023年的到来,全球股市呈现出令人关注的趋势和挑战。投资者纷纷寻求智慧投资,以更好地把握市场动向。云梦富盈,作为一支备受瞩目的投资团队,正在洞悉并解析2023年全球股市的趋势,为投资者提供智慧投资的护航。 20…

力扣-415.字符串相加

Idea 模拟:竖式加法 从后面往前逐位相加,然后将相加的结果模10,添加到答案字符串中去 最后需要判断一下是否还有进位问题 需要将答案string翻转 AC Code class Solution { public:string addStrings(string num1, string num2) {string ans;…

LruCache实现原理

序、慢慢来才是最快的方法。 回顾 LRU (Least Recently Used)最近最少策略是最常用的缓存淘汰策略。LRU 策略会记录各个数据块的访问 “时间戳” ,最近最久未使用的数据最先被淘汰。与其他几种策略相比,LRU 策略利用了 “局部性…

Sui账户抽象消除用户使用障碍,让大规模用户使用区块链成为可能

Sui通过其本机语言和两个特定功能实现了账户抽象,使账户管理中更加细节化的过程自动化。无论是zkLogin还是赞助交易,都简化了用户的使用过程,而Sui Move的基本结构则使开发人员能够提供丝滑的体验。 最近,随着区块链寻求扩大其用…