4、内存保护2 Y3 W% z0 l9 O- h, m
操作系统通常利用MMU 来实现操作系统内核与应用程序之间的隔离,以及应用程序与应用程序之间的隔离。5 B3 c" l/ g0 a" m4 B p
内存保护包含两个方面的内容:0 F+ L) N7 u+ t
A. 防止地址越界,每个应用程序都有自己独立的地址空间。
0 u) q& O) F5 h B. 防止越权操作,每个应用程序都有自己的访问权限。
. P. {1 s' |$ G% ^ 5、实模式与保护模式
0 ^2 F$ ]# C o3 W8 \+ z9 [' u8 u' w; l 在嵌入式系统中,常见的存储管理方案可以分为两大类:实模式和保护模式。7 t$ h% ~% p7 P
实模式:内存的平面使用模式。特点有:9 |, Q2 _% ~0 I; f1 C& e. j; S4 @
A. 不划分“系统空间”与“用户空间”,无须进行地址映射。" H2 H3 f) V/ z( @# z
B. 操作系统与应用程序之间不再有物理的边界。9 }# r& v/ {, f( b5 }) N
C. 系统中的“任务”或“进程”,实际上全是内核线程。4 S8 k; K5 q% \! J- H! j' s
在实模式下,内存布局可以分为5个段: J$ u4 Q' ^2 ^/ y& i
A. 代码段:包含操作系统和应用程序的所有代码。
3 Y( ^6 V6 U3 x) X B. 数据段:所有带有初始值的全局变量。
0 G! ^/ U4 Q, q. g/ s9 }2 g8 ?, p C. BSS 段:所有未带初始值的全局变量。% a- Q& y/ B4 o, @- k' J
D. 堆空间:动态分配的内存空间。
: [/ z9 p, [# }9 I- H E. 栈空间:保存上下文以及函数调用时的局部变量和形参。" p9 Z6 `( |8 C4 `/ q0 I5 n
在实模式存储管理方案下,主要的工作在于堆空间的管理,即如何来管理空闲的堆空间、如何来分配内存、如何来回收内存等等。
) |) ~% H/ h* l# Q4 Y& i* \; S5 _ 保护模式:处理器中必须有MMU 硬件并启用。特点有:
. r* h8 G: E8 Y5 x0 w) F4 F0 X A. 系统内核和用户程序都有各自独立的地址空间。0 b$ s5 M7 |0 B- f$ |6 d2 D
B. 每个应用程序只能访问自己的地址空间,不能去破坏操作系统和其他应用程序的代码和数据。 |