modify the content of kernel/mm.md
This commit is contained in:
parent
a0ee0d5d87
commit
a84a346821
|
@ -1,16 +1,6 @@
|
|||
# 内存管理
|
||||
|
||||
## 前言
|
||||
计算机系统中,变量、中间数据一般存放在 RAM 中,只有在实际使用时才将它们从 RAM 调入到 CPU 中进行运算。一些数据需要的内存大小需要在程序运行过程中根据实际情况确定,这就要求系统具有对内存空间进行动态管理的能力,在用户需要一段内存空间时,向系统申请,系统选择一段合适的内存空间分配给用户,用户使用完毕后,再释放回系统,以便系统将该段内存空间回收再利用。</br>
|
||||
|
||||
由于实时系统中对时间的要求非常严格,内存管理往往要比通用操作系统要求苛刻得多:
|
||||
</br></br>
|
||||
1)分配内存的时间必须是确定的。一般内存管理算法是根据需要存储的数据的长度在内存中去寻找一个与这段数据相适应的空闲内存块,然后将数据存储在里面。而寻找这样一个空闲内存块所耗费的时间是不确定的,因此对于实时系统来说,这就是不可接受的,实时系统必须要保证内存块的分配过程在可预测的确定时间内完成,否则实时任务对外部事件的响应也将变得不可确定。
|
||||
</br></br>
|
||||
2)随着内存不断被分配和释放,整个内存区域会产生越来越多的碎片,系统中还有足够的空闲内存,但因为它们地址并非连续,不能组成一块连续的完整内存块,会使得程序不能申请到大的内存。对于通用系统而言,这种不恰当的内存分配算法可以通过重新启动系统来解决,但是对于那些需要常年不间断地工作于野外的嵌入式系统来说,频繁的重启是无法接受的。
|
||||
</br></br>
|
||||
3)嵌入式系统的资源环境也是不尽相同,不同的系统内存大小不同,如何为这些不同的系统,选择适合它们的高效率的内存分配算法,也是一个复杂的问题。
|
||||
</br></br>
|
||||
XiUOS操作系统提供了独特的内存管理分配算法进行内存管理,通过静态内存管理和动态内存管理相结合,保证分配和释放内存的实时性,提高内存的使用率,有效地规避了内存碎片问题,同时增加了内存检索的速度。
|
||||
</br></br>
|
||||
|
||||
|
@ -376,4 +366,3 @@ void xs_GmSetFreeHook(void (*gm_release_hook)(struct xs_MemGather *gm, void *dat
|
|||
+ Wifi 模块运行动态储存接收数据。
|
||||
|
||||
**优点:** 增加了内存动态分配的效率,提高内存的使用率,减少内存碎片的产生。
|
||||
## 应用示例
|
||||
|
|
Loading…
Reference in New Issue