三、Windows的存储打点 ( A+ V5 k9 K/ }1 e1 B9 y
1.内存打点的根基体例
0 A1 f# t* I; I 多使命措置系统中,存储打点的首要使命搜罗:内存分配和收受接管、地址变换、内存扩充、内存共享和呵护等功能。 . a8 ?4 B6 e' M8 V! a4 d, U
(1)分区式存储打点
& R; r4 l Z* S) z; `% n- Z (2)段页式存储打点
; V* N, p1 W7 I: O$ _# e, u8 K 2.虚拟存储器
" r& L% z, ]+ y6 \ (1)虚拟存储手艺
, z4 v" X2 T$ ]. J' E l. z# h% ^ 虚拟存储手艺的根基思惟是:在轨范装入时,不必将其全数读入到内存,而只需将当前需要执行的一部门页读入内存,就可让轨范起头执行。在轨范执行过程中,如不美观需执行的指令或访谒的数据在内存,就可让轨范起头执行。在轨范执行过程中,如不美观需执行的指令或访谒的数据尚未在内存(称为缺页),则由措置器通知操作系统将响应的页调入到内存,然后继续执行轨范。另一方面,操作系统也将内存中且则不使用的页调出,保留在外存上,从而腾出空寄放放将要装入的轨范以及将要调入的页。页的调入和调出美全是由操作系统自动完成的,从编程的角度来看,该系统具有的内存容量,将比现实的内存容量大得多,所以称之为虚拟存储器。 : s& F8 ?* {0 n* w1 c
(2)虚拟存储器的实现
# y2 o2 L2 l v! o3 i; ^4 _ 在Windows98中,虚拟存储器是由计较机中的物理内存(插在主板上的RAM)和硬盘上的交流文件“制造”出来的,系统经由过程在物理内存和交流文件之间往返地交流轨范和数据页来打点总的可用内存。 , y& R+ X- p1 @" k
(3)Windows虚拟存储器的设置与维护3.Windows地址空间的结构 - f, w4 m# Y9 C5 h
在呵护模式下,Windows轨范的逻辑地址空间为4GB。为了进行有用地使用和打点,操作系统对它们的区域划分作了统一的划定。 : z2 `8 S9 S% v' c3 N" t8 V. F- ~
(1)Win32轨范的地址空间
# A( Y4 A" e: `* {( y' }/ A5 L NULL指针分配的地址空间私有地址空间共享地址空间系统地址空间 ( Y# A2 ]5 }) ?1 W6 o
(2)Win16轨范的地址空间
1 l" g9 i5 R& {1 {2 n (3)MS DOS应用轨范的地址空间 ! p$ r3 S9 ?+ W9 _, C, t( U
4.在应用轨范中使用虚拟存储器
2 f: e) N# t4 ~ H$ @ Windows98为应用轨范开发供给了3种使用和打点虚拟存储器的体例,Win32API也供给了响应的3组内存打点函数,以顺应分歧的使用情形。 ( f: k0 s0 I# E O& x! ~
(1)以页为单元的虚拟内存使用体例
8 K; A1 w, }1 H! b# p8 B (2)内存映射文件 4 t+ t* q) R( z j4 r) X2 r' t
(3)堆 |