内存的管理

来源:互联网 发布:网络看江苏教育频道 编辑:程序博客网 时间:2024/05/16 17:15

内存的管理大致分为有操作系统(OS)的和没有操作系统的。
一、没有OS
没有操作系统的时候,计算机运行的就是裸机程序,内存的开辟和释放全部由裸机程序自己承担。
二、有OS
有操作系统的时候,操作系统会帮助我们管理内存空间,并且留下一些简洁的内存管理接口,便于我们能够直接控制内存的管理。但是相比没有OS的情况,在OS上运行的程序内存管理的负担小了很多。
操作系统的内存管理方式大概分为如下情况。
1、动态空间
1.1 自动管理:栈
栈内存空间的开辟与释放完全是自动化的,栈空间主要用于为函数的局部变量开辟空间。函数运行时,变量空间自动开辟,函数结束时,空间自动释放,空间是可读可写。
1.2 手动管理:堆
堆内存空间管理靠手动实现,需要时调用函数接口手动开辟,不需要的时候也必须调用相应的函数接口将其释放,空间可读可写。
2、静态空间
静态区的特点是,程序在编译的时,就已经决定好了这些内存空间的布局,一旦程序运行,就会根据编译器的布局在静态区中开辟空间。在程序运行的工程中,既不能在静态区重新开辟空间,也不能释放静态区已有的空间,只有在整个程序结束的时候,它们才会被自动释放。
2.1 代码区
存放指令代码,空间只读
2.2 常量区
存放程序中所用到的常量,空间只读。
2.3 静态数据区
存放静态数据,比如全局变量和静态局部变量,空间可读可写。

0 0
原创粉丝点击