软件的运行与内存的管理之间的关系

前言:所谓初步知识,就是一些在计算机内存管理过程中的一些基本的情况和规则,了解这些知识有助于C语言编程人员提升对语言使用的理解。因为C语言是一种非常强大的语言,能够实现很多功能的同时,也能够对计算机肆意妄为,所以我们在正式学习C语言之前,有必要去了解关于内存管理的初步知识,以防在使用C编程时对计算机造成破坏。

6.2.1内存管理初步知识

1、软件必须先调入内存方可执行;

2、OS(操作系统)是计算机资源管理者,内存的使用也是在OS的管理下进行的;

3、软件在执行前,需先向OS申请存储空间;在有足够内存空间时,OS将分配一段空间供软件使用;

4、软件在运行过程中,其所分配得到的存储空间不再分配给其它软件使用;

5、软件只能在其所分配得到的存储空间中进行操作,不能对其它空间操作,如果出现操作不属于该软件的空间,OS会认为出现了“非法内存空间访问”错误,这是一种非常严重的错误,发生这种错误的软件将被OS强行停止运行;

6、软件在运行完毕后,将提请OS回收其所占用的存储空间(但不会清空该空间内容);OS会回收该空间以便再次分配给其它软件使用;这说明内存是重复使用方式;

7,上述说明了:我们的软件所申请得到的空间,往往不是“一无所有”,常常是已经有软件曾经运行过,使用过该空间的;这些空间里存在着曾经运行过的软件的残留数据,这些数据被称为:“垃圾数据”!

补充:这里说是“垃圾数据”,其实是不够准确的,这里面还涉及到比较深入的知识,将会在数据结构与算法中讲解到。

 

6.2.2 操作系统对内存的管理过程(简单过程)

1,在操作系统刚刚启动后,内存中最低端(内存字节编号最小的一端)和最高端(内存字节编号最大的一端)存储着OS的重要指令和数据;这些内存空间时绝对不可能分配给用户程序使用的。

2,操作系统是通过两张表格管理整个内存及其分配与回收的;两张表格分别是已分配内存空间表和未分配内存空间表。

未分配空间表(自由空间表)

首地址 长度

 

已分配空间表

拥有者编号 首地址 长度

 

3,操作系统仅仅只针对两张表格进行操作:《已分配空间表》和《未分配空间表-自由空间表》;

4,所谓的分配空间过程,是在《自由空间表》中逐项查找是否有足够大的空闲空间可供分配,若存在,则分配;若不存在,则分配失败;

5,回收空间的过程,其实是将《已分配空间表》中要回收的那一项内容中的“首地址”和“长度”,复制到《空闲空间表》中;并进行适当的合并空闲空间操作。

 

后话:后面会继续更新,欢迎博友提问。

(内容参考自:微易码计算机科技)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值