3.4.1 存储管理概述
在设计存储管理的时候,通常考虑如下一些因素。
(1 )硬件条件:如是否有存储管理单元MMU。
(2 )实时性要求:是硬实时、软实时,还是分时系统。
(3 )系统规模大小、复杂程度、性能要求等等。
(4 )可靠性要求:是否需要内存保护。
1.内存保护
操作系统通常利用MMU来实现系统内核与应用程序的隔离,以及应用程序与应用程序之间的隔离。
内存保护内容:
第一:一是防止地址越界;
第二:防止操作越权。
2.实时性要求
第一:速度快
第二:确定性
3.4.2 实模式与保护模式
1.实模式方案
该方案的特点:
(1 )不划分“系统空间”和“用户空间”
(2 )操作系统内核与外围应用程序之间不再有物理边界,在编译连接后,两者通常被集中在同一个系统文件中。
(3 )系统中所说的“任务”或者“进程”,实际上全是内核线程。对于这些线程来说,只有运行上下文和栈是独享的,其他资源都是共享。
优点:简单、性能好,且存储管理的开销比较确定,这对于实时系统来说是比较重要的。
缺点:没有存储保护,安全性差,在应用程序中出现的任何一个小错误或者蓄意攻击都有可能导致整个系统崩溃。因此,比较适合规模小,
简单和实时性要求较高的系统。事实上,大多数传统的嵌入式操作系统均采用此模式。
S3C2440B0X,使用ARM7TDMI核,工作在66MHz频率下。
在实模式存储管理方案下,嵌入式系统的内存地址空间的布局一般可分为五个部分:
.text:代码段。包含了操作系统和应用程序的所有代码。
.data:数据段。存放了操作系统和应用程序当中所有带有初始值的全局变量。
.bss:bss段。存放了操作系统和应用程序中所有未带初始值的全局变量。
堆空间:动态分配内存的空间。在系统运行时,可以通过类似于malloc/free之类的函数来申请或者释放一段连续的内存空间。
栈空间:保存运行上下文以及函数调用时的局部变量和形参。
对于,text、.data、,bss段,它们的大小在编译的时候即可确定,所以叫静态段。
对于堆和栈,它们的大小在编译的时候不能确定,而且会随着系统的运行而不断的变化,所以称为动态段。。
不过在有些嵌入式系统当中,任务的栈空间是以静态数组的方式来存放,存放在.bss段当中,其大小是固定的。
2.保护模式方案
保护模式方案指的是在处理器中必须有MMU硬件,并启用。它的主要特点如下
第一、系统内核和用户程序都有各自的独立的地址空间;操作系统和MMU共同合作,完成逻辑地址到物理地址的映射。
第二、具有存储保护功能;每个应用程序只能访问自己的地址空间,不能去破坏操作系统和其他程序的代码和数据。
对于共享的内存区域,也必须按照规定的权限规则来访问。
保护模式的方案的优点是安全性和可靠性较好,它比较适合于规模较大、较复杂和实时性要求不太高的系统。
3.4.3 分区存储管理
1.固定分区存储管理
又分为多个输入队列和单个输入队列。
2.可变分区存储管理
3.分区存储管理实例
3.4.4地址映射
1.地址映射概述
2.静态地址映射
3.动态地址映射
3.4.5 页式存储管理
1.基板原理
2.数据结构
3.内存的分配与回收
4.地址映射
5.优缺点
3.4.6虚拟存储管理
1.程序局部性原理
2.虚拟页式存储管理
3.页面置换算法
4.工作集模型