内存管理

比较乱 还待需整理
https://blog.csdn.net/freeelinux/article/details/53782986

虚拟内存管理

虚拟内存将每个程序使用的内存切割成 == 小型的、固定大小的**“页”**==单元。
交换区: 将程序中未使用的页保存,仅在需要时会被载入物理内存(发生页面错误,内核即刻挂起进程的执行,从磁盘中将该页面载入内存)

在这里插入图片描述

页表(内核进行维护):描述了每页在该进程虚拟地址空间中的位置

在这里插入图片描述

在这里插入图片描述虚拟内存的优点:
在这里插入图片描述

进程内存布局(5类,虚拟内存的概念)

在这里插入图片描述在这里插入图片描述

内存分配(new和malloc的区别)

https://mp.csdn.net/mdeditor/88857915#

new之后,程序可以访问任何内存地址,但此时物理内存页尚未分配,内核会在进程首次访问这些虚拟内存地址时自动分配新的物理内存页

在这里插入图片描述
在这里插入图片描述

malloc()和free()原理

在这里插入图片描述

内存泄漏

https://www.cnblogs.com/liushui-sky/p/7727865.html

定义:在编写应用程序的时候,程序分配了一块内存,但已经不再持有引用这块内存的对象(通常是指针),虽然这些内存被分配出去,但是无法收回,将无法被其他的进程所使用,我们说这块内存泄漏了,被泄漏的内存将在整个程序声明周期内都不可使用。
主要原因:

  1. 是在使用new或malloc动态分配堆上的内存空间,而并未使用delete或free及时释放掉内存。
  2. 野指针:指向被释放的或者访问受限内存的指针
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值