当前位置: 首页 > news >正文

内存管理子系统学习记录

内存管理子系统学习记录

1、从进程的角度看内存管理

代码段:进程内存中用于存储程序可执行代码的部分。它包含了程序的指令和函数。其特点包括只读:通常不允许修改代码段的内容。共享:多个进程可以共享同一个代码段,减少内存占用

数据段:进程内存中用于存储全局变量和静态变量的部分。这些变量在程序的整个生命周期内都存在。

堆:进程内存中用于动态内存分配的部分。大小和数量在程序运行时确定,由 malloc、calloc、realloc 等函数管理。通常从低地址向高地址增长。

栈:进程内存中用于存储函数调用和局部变量的部分。栈的空间是自动分配的,局部变量在函数调用时自动分配栈内存,实现变量的压栈,在函数返回时自动释放。由编译器自动管理。通常从高地址向低地址增长。

BSS段:进程内存中用于存储未初始化的全局变量和静态变量的部分,与数据段不同,BSS 段在程序启动时并不占用实际的物理内存,直到变量被访问时才会分配内存。

内核使用伙伴系统(buddy system)机制管理物理内存的分配,注意是物理内存!!!!!!!

Linux会将2的order次幂个内存页合成一个内存块,order的最大值为11。也就是Linux会将内存划分为11种不同大小的内存块:分别是含有20,21,22…210个内存页

http://www.xdnf.cn/news/584785.html

相关文章:

  • uniapp实现H5、APP、微信小程序播放.m3u8监控视频
  • AVL树的实现
  • 【线段树】P2846 [USACO08NOV] Light Switching G|LG4|普及+
  • 无人机集装箱箱号识别系统准确率如何?能达到多少?
  • 微服务架构中的 RabbitMQ:异步通信与服务解耦(一)
  • Linux探秘:驾驭开源,解锁高性能——基础指令(续集)
  • LeetCode 1340. 跳跃游戏 V(困难)
  • 【Harmony】【鸿蒙】List列表View如果刷新内部的自定义View
  • 力扣HOT100之二叉树: 236. 二叉树的最近公共祖先
  • vue3定于组件名字的几种方法
  • 杨校老师竞赛课之青科赛GOC5-6年级组模拟题
  • ISO 26262- 5 评估硬件度量值
  • 2025年中青杯赛题浅析-快速选题
  • 12kV 环保气体绝缘交流金属封闭开关设备现场交流耐压试验规范
  • Web前端开发(HTML、CSS快速入门)
  • 2024 年地理信息技术与应用技能大赛(选拔赛/初级)——实操试题
  • 部署Prometheus并通过Grafana展示界面
  • wx.getPrivacySetting接口needAuthorization一直返回false
  • vue element-plus 集成多语言
  • SQLynx:一款跨平台的企业级数据库管理工具
  • pdf图片导出(Visio和Origin)
  • 2025口语App实测Top5!练习口语app真实口碑
  • 可视化图解算法43:数组中的逆序对
  • 鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter
  • 鸿蒙Flutter实战:25-混合开发详解-5-跳转Flutter页面
  • [Flutter]Completer和compute
  • 计量单片机 RN8302:特性、使用与应用
  • 【人工智障生成日记1】从零开始训练本地小语言模型
  • 【无标题】西门子S7-1500PLC与西门子V90 PN伺服通讯控制项目程序项目程序,共有8轴,编码器信号直接输入到变频器内。
  • 系统架构设计(十八):ATAM