消息关闭
    暂无新消息!

关于动态分配内存的疑问?

问题作者 : 葬月2017-07-26发布
很多资料里提到这个:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序...

问题:这个记录空闲内存地址的链表,当操作系统重启后,链表是不是就清空了呢?有没有办法能够掉电保存这个链表,操作系统重启后,对于之前已经分配过的空间不进行重新分配。(ps:对象是可掉电保存的外部sram)

8个回答

︿ 1
这样的功能要求,已经超出了系统的范围。
因为系统不知道自己启动后,你的应用是否运行,如果不运行保留以前的内存分配有什么作用?且可能导致内存不足的情况出现。

如果一定想记录,还是自己的程序去实现吧。
︿ 1
单纯保留内存管理数据是无用的,如果这样,整个内存都需要保存,否则没有意义
︿ 1
可以实现,但是不是系统干的事情了,自己 写内存管理,并记录到sram。
︿ 1
想复杂了;
自己写程序维护一个队列/链表,把描述该队列/链表数据结构的变量都保存在该外部RAM中即可。
︿ 0
同时,更重要的是,你的程序运行状态使用的各个内存值,必须和保存时刻一致,否则程序运行可能就会出现混乱