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

内存管理子系统学习记录

内存管理子系统学习记录

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

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

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

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

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

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

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

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

相关文章:

  • 语义分割的image
  • Excel合并单元格后,如何自动批量生成序号列
  • 【人工智障生成日记1】从零开始训练本地小语言模型
  • Google Agent Development Kit与MCP初试
  • 西门子 S1500 博途软件舞台威亚 3D 控制方案
  • 边缘计算正在重新定义物联网的未来——你的设备还在“等云“吗?⚡
  • 游戏引擎学习第305天:在平台层中使用内存 Arena 的方法与思路
  • Php 箭头函数详解
  • Vue3实现轮播表(表格滚动)
  • Docker 疑难杂症解决指南大纲
  • 纯JS前端转图片成tiff格式
  • Java中创建线程的几种方式
  • Nginx 部署前端项目dist文件到局域网然后ngrok部署到公网
  • python打卡day33
  • w~自动驾驶~合集13
  • 深度学习零基础入门(2)-实战1:激活函数、前向传播和反向传播
  • 巧用 FFmpeg 命令行合并多个视频为一个视频文件教程
  • Vue3+Vite+TypeScript项目中跨页多选表格的实现与应用
  • 进阶知识:用例依赖装饰器的实现方法的 代码细节问题解析
  • 栈与队列part01(二)
  • 房产网站排行/郑州百度推广外包
  • 手机网站设计公司立找亿企邦/网页设计案例
  • 网站建设搭建环境/做网站推广的公司
  • 红色ppt模板免费下载网站/关键词竞价排名
  • 网站开发转包协议/漯河seo推广
  • 仓库管理软件/南通seo