02_06内核cpu信息及内存布局及堆管理及内存使用情况

news2024/9/21 3:28:40

linux_cpu_大致信息查看

因为需要知道当前linux cpu是多少位的,才能知道内核空间的分布
64位Linux-般使用48位来表示虚拟地址空间,45位表示物理地址。通过命令: cat/proc/cpuinfo。
查看Linux内核位数和proc文件系统输出系统软硬件信息如下:
通过cat /proc/cpuinfo输出地址大小,具体其它选项参数: .

vendor_ id : GenuineIntel // CPU制造商
cpu family : 6 // CPU产品代号
model: 142 // CPU属于其系列当中的哪一一个代号
model name : Intel(R) Core(TM) i7-10510U CPU @ 1 .80GHz // CPU属于的名称、编号、主频
stepping : 12 // CPU属于制作更新版本
cpu MHz: 2303.996 // CPUr实际使用主频
cache size: 8192 KB // CPU二级缓存
physicalid : 0 //单个CPU的标号
siblings : 1 II单个CPU逻辑物理核数
core id: 0//1 当前物理核在其所处的CPU中编号
cpu cores: 1 //逻辑核所在CPU的物理核数
apicid: 0 //用来区分不同逻辑核的编号
bogomips: 4607.99 //系统内核启动时测算的CPU速度
clflush size : 64 //每次刷新缓存的大小单位
cache_ alignment : 64 //缓存地址空间对齐单位
address sizes : 45 bits physical, 48 bits virtual //可以访问的地址空间位数!!!!!

ARM64内核内存分布(虚拟地址)

ARM64架构处理器采用48位物理寻址机制,最大可寻找256TB的物理地址空间。对于目前应用完全足够,不需要扩展到64位的物理寻址。虚拟地址也同样最大支持48位寻址,所以在处理器架构设计上,把虚拟地址空间划分为两个空间,每个空间最大支持256TB,
linux内核在大多数体系结构上都把两个地址划分为:用户空间和内核空间

详细虚拟地址内存分布

用户空间:0x0000_0000_0000_0000至0x0000_ffff_ffff_ffff。
内核空间:0xffff_0000_0000_0000至0xffff_ffff_ffff_ffff。在这里插入图片描述
对上面的图片做出细致的描述
在这里插入图片描述
如果内存没用完 可以使用8/1作为影子区域kasan

查看系统中内存使用情况

cat /proc/meminfo输出系统架构内存分布情况

MemTotal: 12165668 kB //所有可用内存空间的大小 
MemFree:  10151616 kB //系统还没有使用内存(没回收的内存也在这里面)
MemAvailable: 10570548 kB //真正系统可用内存(有些内存被使用了还没有被回收,比如cachebuffsr slbas
Buffers: 52596 kB I1专用用来给块设备做缓存的内存
Cached: 575008 kB //分配给文件缓冲区的内存(比如vi文件,把没有保存的内容写到缓冲区)
SwapCached:0 kB //被高速缓冲缓存使用的交换空间大小(一般指硬盘swap的大小)
Active:1158808 kB //使用高速缓冲存储器页面文件大小
Inactive:345196 kB // 没有经常使用的高速缓存存储器大小
Active(anon): 870720 kB //活跃的匿名内存
Inactive(anon): 12504 kB // 不活跃的匿名内存
Active(ile): 288088 kB //活跃的文件使用内存
Inactive(ile): 332692 kB //不活跃的文件使用内存
Unevictable:16 kB //不能被释放的内存页
Mlocked:16 kB 系//统调用mlock允许程序在物理内存上锁住部分或全部地址空间(可以阻止linux的内存页调度到交换空间)
SwapTotal:2097148 kB //交换空间总内存大小
SwapFree:2097148 kB //交换空间空闲的内存大小
Dirty: 24 kB //等待被写回到磁盘
Writeback:0 kB //正在被写加的大小.
AnonPages:876420 kB //未映射页的内存/映射到用户空间的非文件页表大小
Mapped: 255420 kB //映射文件内存
Shmem:13896 kB // 已经被分配的共享内存
KReclaimable:70884 kB //可回收的slab内存
Slab:151976 kB //内存数据结构缓存的大小

CommitLimit: 8179980 kB //系统实际可以分配内存
Committed_ AS: 4649264 kB //系统当前已经分配的内存
VmallocTotal: 34359738367 kB // 预留虚拟内存的总量
VmallocUsed:27836 kB //已经被使用的虚拟内存
VmallocChunk:0 kB //可分配的最大逻辑地址连续的虚拟内存

内存的堆管理

堆是进程中主要用于动态分配变量和数据的内存区域,堆的管理对应程序员不是直接可见的。malloc和内核之间的经典接口是brk系统调用, 负责扩展/收缩堆。
每个进程都有独立的虚拟地址空间 虚拟地址可以通过每个进程的页表和物理进程映射用来获得真正的物理地址
如果虚拟地址对应的物理页不在物理内存这时候产生一个缺页中断,此时分配一个真正的物理地址,此时更新一些进程页表 如果此时物理内存已经耗尽,会根据内存替换规则的算法设计,删除一些页面保存
linux在堆的使用通过 brk或sbrk进行动态调整

结构体引入

堆是一个连续的内存区域,在扩展时自下至上增长。其中mm struct结构, 包含堆在虚拟
地址空间中的起始和当前结束地址(start brk和brk)。

在这里插入图片描述
Mm_struct 内存描述结构体中有堆栈的起始地址和结束地址
在这里插入图片描述
Linux系统当中有两个方法可以创建堆:
用户空间使用malloc 系统空间使用brk()是系统调用,实际是设置进程数据段的结束地址,将数据段的结束地址向高地址移动。
mmap()向操作系统申请- -段虚拟地址空间(使用映射到某个文件)

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

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

相关文章

RabbitMQ笔记--消息中间件,rabbitmq安装及简单使用

1.消息中间件 消息:指在应用间传送的数据。 消息队列中间件:指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通…

unittest自动化测试之unittest封装方法

目录 封装方法 完整代码 总结: 封装方法 在编写自动化脚本的时候,都要求代码简介,上一篇unittest---unittest断言中代码重复性比较多,我们进行一次简单的优化(优化方法不同,请勿喷) 我们可以…

Video4linux: cannot set V4L control... 解决方案

问题描述 最近在用USB_CAM读取摄像头的时候,总是出现如下问题: 思来想去真是难受。 问题分析 在usb_cam/ config /usb_cam.yaml文件中,把他报错的东西加在ignore里面即可。 首先打开camera_driver.cpp文件,把908行的printf语句…

ARM64学习笔记---建立异常向量表(二)

源码: #include "mm.h" #include "sysregs.h".section .rodata .align 3 .globl el_string1 el_string1:.string "Booting at EL".section ".text.boot" .globl _start _start://读取mpidr_el1寄存器的值,该寄存器决定了…

学无止境·MySQL(4-3)(多表查询加强版-------更新版)

比4-2表中多几个数据,更具备普遍性 试题2(更新加强版)1、创建表2、找出销售部门中年纪最大的员工的姓名3、求财务部门最低工资的员工姓名4、列出每个部门收入总和高于9000的部门名称5、求工资在7500到8500元之间,年龄最大的人的姓…

MySql 高级-0706

1. MySQL 架构 1.1 MySQL 简介 mysql内核 sql优化攻城狮 mysql服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容灾备份 sql编程 1.2 MySQL逻辑架构介绍 1.2.1第1层:连接层 ** 系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立 TCP 连接…

HTML <map> 标签

实例 带有可点击区域的图像映射: <img src="planets.jpg" border="0" usemap="#planetmap" alt="Planets" /><map name="planetmap" id="planetmap"><area shape="circle" coords=&q…

多元分类预测 | Matlab 粒子群算法(PSO)优化xgboost的分类预测,多输入单输出模型。PSO-xgboost分类预测模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab 粒子群算法(PSO)优化xgboost的分类预测,多输入单输出模型。PSO-xgboost分类预测模型 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程…

利用Python构建科学的交易系统:以趋势为例

在股票市场中&#xff0c;趋势被认为是一个非常重要的概念。趋势可以通过股票的价格、交易量等指标来确定。如果一只股票的价格在持续上涨&#xff0c;那么我们可以认为该股票处于上升趋势&#xff1b;反之&#xff0c;如果一只股票的价格在持续下跌&#xff0c;那么我们认为该…

物理机到容器的发展历程

物理机到容器的发展历程 物理主机虚拟化技术什么是虚拟化&#xff1f;虚拟化分类主流的虚拟化技术KVMLXC 容器Docker与Containerd容器编排为什么要编排工具容器编排工具有哪些&#xff1f; 物理主机 从传统的物理服务到现如今的云服务的发展离不开应用服务的拆分&#xff0c;由…

PDF怎么转长图?这四个方法免费好用!

记灵在线工具怎么转PDF为长图&#xff1f;PDF文件是一种常见的文档格式&#xff0c;它可以在不同的设备和操作系统上保持格式的一致性。然而&#xff0c;有时候我们需要将PDF文件转换成长图&#xff0c;以便于在社交媒体上分享或者在网站上展示。本文将介绍如何使用记灵在线工具…

110、基于51单片机智能浇花浇水系统土壤湿度检测温度自动灌溉报警设计(程序+原理图+PCB源文件+原理图讲解+参考论文+开题报告+程序流程图+元器件清单等)

选题背景及意义 在中国广大面积的农村&#xff0c;没有发达的工商业&#xff0c;有的只是大量闲置的田地。如果利用这些闲置的田地&#xff0c;种植美丽的花卉、树苗&#xff0c;能给当地带来一笔可观的收入。而这些花卉及树苗的种植对土壤湿度&#xff0c;温度有着极高的要求…

RTOS任务切换过程中堆栈的使用情况

我们知道 Cortex-M3 系列单片机内部有双堆栈机制。即 Cortex‐M3 拥有两个堆栈指针&#xff1a;主堆栈&#xff08;MSP&#xff09;和进程堆栈&#xff08;PSP&#xff09;。任一时刻只能使用其中的一个。通过控制寄存器 CONTROL 中的选择位进行控制。 两个堆栈指针如下&#…

CentOS环境下的Maven安装

CentOS 安装 Maven 镜像地址 镜像地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/apache/maven/ 下载地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/ 下载maven 将下载好的压缩包拷贝到根目录下 解压 tar -zxvf ap…

硬件性能 - 掌握内存知识

简介 本文章主要介绍了内存的基本知识&#xff0c;简单的判断内存是否耗尽、是否出现内存泄漏等问题。其他硬件性能分析如下&#xff1a; 1. 硬件性能 - CPU瓶颈分析 2. 硬件性能 - 磁盘瓶颈分析 3. 硬件性能 - 网络瓶颈分析 目录 1. 内存的定义 1.1. 内存的基本概念 1.2. 内…

Coggle 30 Days of ML (23年7月)任务二:数据可视化

Coggle 30 Days of ML (23年7月&#xff09;任务二&#xff1a;数据可视化 任务二&#xff1a;对数据集字符进行可视化&#xff0c;统计标签和字符分布 说明&#xff1a;在这个任务中&#xff0c;需要使用Pandas库对数据集的字符进行可视化&#xff0c;并统计数据集中的标签和…

【JavaEE】Servlet 中常用API有哪些?前后端交互方式有哪些?

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 目录 一、Servlet 运行原理 二、Servlet常用API 2.1 HttpServlet&#xff08;抽象类&#xff09; 2.1.1. init 方法 2.1.2 service方法 2.1.3 destroy方法 三、HttpServletRequest 3.1 Ht…

如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件

参考下列两个教程结合使用即可&#xff1a; 快捷自由定时重启、注销、关机、文件夹同步打开程序等 如何从多个文件夹内转移全部文件&#xff08;忽略文件夹的结构&#xff09;&#xff08;进行复制&#xff09;&#xff08;再打包&#xff09; 就是先设定好 勾选对 来源路径’…

JavaScript基础知识巩固

JavaScript基础 输入输出语法 输出&#xff1a; document.write(要输出的内容) alert(页面弹出警告窗) console.log(控制台打印)输入&#xff1a; let value prompt(用户输入的内容)变量的本质 是程序在内存中申请的一块用来存放数据的空间变量命名规范 不能用关键字 关键…

deeplabv3+源码之慢慢解析根目录(1)main.py--get_argparser函数

系列文章目录&#xff08;更新中&#xff09; 第一章deeplabv3源码之慢慢解析根目录(1)main.py–get_argparser函数 第一章deeplabv3源码之慢慢解析根目录(2)main.py–get_dataset函数 第一章deeplabv3源码之慢慢解析根目录(3)main.py–validate函数 第一章deeplabv3源码之慢慢…