IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 662-Linux的内存申请与释放 -> 正文阅读

[系统运维]662-Linux的内存申请与释放

在这里插入图片描述
我们打开linux的资源管理器
在这里插入图片描述
目前内存有2GB,目前用了200多M,swap分区:2GB(虚拟内存)
虚拟内存—磁盘上的划分的空间,当做内存来用
程序大,内存装不下,有了虚拟内存,把一部分放到虚拟内存上执行,虽然速度慢,但是起码能运行啊!

我们写一个程序,申请1GB空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
好像并没有什么变化?
因为我们的malloc申请空间,实际上是在进程的虚拟地址空间说:我们需要1GB的空间,虚拟地址空间会划分一部分给应用程序去使用,真正到去使用这块空间的时候,用到了哪块,才会去分配真正的物理内存。
我们对代码修改一下
memset:把内存空间的值都置为0
在这里插入图片描述
这样的话相当于1GB的内存空间我们都用到了
在这里插入图片描述
我们运行main程序
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
增长到1.2GB,然后退回去了,程序结束
当我们程序申请了1GB的内存空间以后,虽然没有执行free这个操作,但是进程结束了,这个时候内存是会被操作系统回收,因为进程结束了,所有分配给该进程的资源都要回收(属于被动回收)。
程序在运行的过程中,申请一块空间,如果不用了,就要free掉,如果不free,就一直占用着,你不用了,别人也没法用,但是,这个进程如果结束了,所有的资源都会被归还给操作系统。

malloc申请1GB成功的依据

在这里插入图片描述
现在内存是有2GB,所以刚才申请1GB的空间是够用的,如果现在申请2GB呢?操作系统现在本身就占了200多M了,再申请2GB肯定不够啊。
但是,我们来测试看看:

在这里插入图片描述
在这里插入图片描述
编译时,警告可能会越界。
我们来执行一下main程序
在这里插入图片描述
在这里插入图片描述
我们看到,左边的物理内存使用在不断增长:
在这里插入图片描述
现在右边的虚拟内存也在增长了:
在这里插入图片描述
在这里插入图片描述
因为我们的物理内存空间肯定是不够用了,要把一部分搬到虚拟内存空间上运行,在这里插入图片描述
我们把不用的那块先放到虚拟内存上
现在 程序结束了,物理内存空间是使用了113.6M,还有108.3M在外存(虚拟内存)上,程序结束了,为什么不把108.3M从外存上搬回来呢?它是:你用到了,但是它在虚拟内存上,才从虚拟内存上调回来。如果都不用了,然后调回来,等会空间又不够,又要放到外存上,系统不会这么做的。
虽然刚才申请的大小超过了物理内存,但是我们有虚拟内存的支撑,加起来没有超过总大小。

如果把虚拟内存停掉

在这里插入图片描述
把磁盘(虚拟内存)的数据赶回物理内存上。
在这里插入图片描述
现在是不能使用虚拟内存了。我们再运行刚才申请2GB空间的程序
在这里插入图片描述
直接报错,因为空间不够,就剩下1.8GB

所以,我们判断申请空间能不能成功:如果申请的空间的大小比当前物理内存剩余的大小要小,肯定申请成功。
如果物理内存不够,我们看看有没有虚拟内存,如果有虚拟内存,看虚拟内存剩余的空间和物理内存剩余的空间加起来够不够,如果够,也能申请成功!如果不够,或者压根没有虚拟内存,就肯定申请失败了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:15:45  更:2021-10-01 17:17:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/4 18:13:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码