1 5 Wi n d o w s 3 17 18 15.1 Vi r t u a l A l l o c p v A d d r e s s M U L L Vi r t u a l A l l o c M E M _ TO P _ D O W N 50 MB 52 428 800 5 0 1 024 1 024 p v A d d r e s s Vi r t u a l A l l o c N U L L p v A d d r e s s Vi r t u a l A l l o c N U L L 1 3 ( Wi n d o w s 64 K B ) 19 668 992(300 65 536 + 8192) 64 K B 19 660 800 3 00 65 536 Vi r t u a l A l l o c
1 5 355 Vi r t u a l A l l o c p v A d d r e s s Vi r t u a l A l l o c 64 K B Vi r t u a l A l l o c d w S i z e C P U 62 K B 4 KB 8 KB 16 KB 64 K Vi r t u a l A l l o c f d w A l l o c a t i o n Ty p e Vi r t u a l A l l o c M E M _ R E S E RV E F d w A l l o c a t i o n Ty p e p v A d d r e s s f d w A l l o c a t i o n Ty p e N U L L O R M E M _ TO P _ D O W N M E M _ R E S E RV E Windows 98 M E M _ TO P _ D O W N f d w P r o t e c t PA G E _ R E A D W R I T E PA G E _ R E A D W R I T E PA G E _ N O A C C E S S PA G E _ R E A D W R I T E PA G E _ R E A D O N LY PA G E _ E X E C U T E PA G E _ E X E C U T E _ R E A D PA G E _ E X E C U T E _ R E A D W R I T E PA G E _ W R I T E C O P Y PA G E _ E X E C U T E _ W R I T E C O P Y Vi r t u a l A l l o c N U L L PA G E _ G U A R D PA G E _ N O C A C H E PA G E _ W R I T E C O M B I N E Windows 98 PA G E _ N O A C C E S S PA G E _ R E A D O N LY PA G E _ R E A D W R I T E PA G E _ E X E C U T E PA G E _ E X E C U T E _ R E A D PA G E _ R E A D O N LY PA G E _ E X E C U T E _ R E A D W R I T E PA G E _ R E A D W R I T E 15.2
356 Vi r t u a l A l l o c f d w A l l o c a t i o n Ty p e M E M _ C O M M I T M E M _ R E S E RV E Vi r t u a l A l l o c PA G E _ R E A D W R I T E Vi r t u a l A l l o c p v A d d r e s s d w S i z e x86 CPU 5 242 880 512 KB 6 KB 2 KB M E M _ C O M M I T Vi r t u a l A l l o c 8 KB 5 242 880 5 251 071 (5 242 880 + 8 KB 1 PA G E _ R E A D W R I T E PA G E _ R E A D W R I T E PA G E _ R E A D O N LY 15.3 Vi r t u a l A l l o c 99 KB 99 KB 100 KB 4 KB 104 8 p v A d d r e s s N U L L p v A d d r e s s Vi r t u a l A l l o c N U L L PA G E _ R E A D W R I T E Vi r t u a l A l l o c p v M e m Vi r t u a l A l l o c N U L L p v A d d r e s s Vi r t u a l A l l o c O R M E M _ TO P _ D O W N f d w A l l o c a t i o n Ty p e p v A d d r e s s N U L L
1 5 357 15.4 200 x 256 C E L L D ATA C E L L D ATA 128 6 553 600 200 x 256 x 1 2 8 C E L L D ATA 5 10 1) C E L L D ATA 2) C E L L D ATA 3) C E L L D ATA 4) C E L L D ATA C E L L D ATA C E L L D ATA C E L L D ATA C E L L D ATA 4
358 Vi r t u a l A l l o c C E L L D ATA Vi r t u a l Q u e r y C E L L D ATA Vi r t u a l A l l o c Vi r t u a l A l l o c Vi r t u a l A l l o c S E H S E H S E H 23 2 4 2 5 2 15.5 Vi r t u a l F r e e Vi r t u a l F r e e Vi r t u a l F r e e p v A d d r e s s Vi r t u a l A l l o c d w S i z e 0 d w S i z e 0 Vi r t u a l F r e e f d w F r e e Ty p e M E M _ R E L E A S E 128 KB 64 128 KB Vi r t u a l F r e e Vi r t u a l F r e e p v A d d r e s s d w S i z e f d w F r e e Ty p e
1 5 359 M E M _ D E C O M M I T pvaddress + dwsize pvaddress pvaddress + d w S i z e d w S i z e 0 p v S d d r e s s Vi r t u a l F r e e 15.5.1 x 86 4 KB 32 4096 / 128 C E L L D ATA C e l l D a t a [ 0 ][ 1 ] C e l l D a t a [ 0 ][ 0 ] C e l l D a t a [ 0 ] [ 3 1 ] 3 C E L L D ATA x86 CPU 8 KB 12 KB C P U 100 0 1 0 0 B O O L f I n U s e fin U s e T R U E f I n U s e 0 0 T R U E Vi r t u a l F r e e In Use I / O
360 15.5.2 15-1 V M A l l o c 15 VMAlloc.exe 15 - V M A l l o c 15-1 R e s e r v e R e g i o n 50,2 KB V M A l l o c 15-1 VMAlloc Vi r t u a l A l l o c Vi r t u a l A l l o c U s e U s e 7 4 6 15-2 4 KB C l e a r C l e a r f I n U s e FA L S E Garbage Collect V M A l l o c 46 Garbage Collect 46 15-3 G a r b a g e C o l l e c t B O O L 15-2 15-3
1 5 361 3 U s e C l e a r U s e C l e a r f I n U s e V M A l l o c Vi r t u a l Q u e r y 15-1 VMAlloc
362
1 5 363
364
1 5 365
366
1 5 367
368 15.6 PA G E _ R E A D W R I T E PA G E _ N O A C C E S S Vi r t u a l P r o t e c t p v A d d r e s s d w S i z e f l N e w P r o t e c t PA G E _* PA G E _ W R I T E C O P Y PA G E _ E X E C U T E _ W R I T E C O P Y p f l O l d P r o t e c t D W O R D Vi r t u a l P r o t e c t p v A d d r e s s D W O R D 4 KB Vi r t u a l P r o t e c t PA G E _ N O A C C E S S
1 5 369 Windows 98 Windows 98 PA G E _ R E A D O N LY PA G E _ R E A D W R I T E PA G E _ E X E C U T E PA G E _ E X E C U T E _ R E A D PA G E _ R E A D O N LY PA G E _ E X E C U T E _ R E A D W R I T E PA G E _ R E A D W R I T E Vi r t u a l P r o t e c t Vi r t u a l P r o t e c t 15.7 Windows 98 Windows 98 R A M. e x e D L L / R A M R A M R A Windows 2000 R A M R A R A M Vi r t u a l A l l o c M E M _ R E S E T Vi r t u a l A l l o c 0 R A M R A M R A M 0 R A M R A M Vi r t u a l A l l o c M E M _ R E S E T Vi r t u a l A l l o c
370 4 s i z e o f ( i n t ) Vi r t u a l A l l o c N U L L M E M _ R E S E T Vi r t u a l A l l o c 0 0 M E M _ R E S E T O R N U L L M E M _ R E S E T M E M _ R E S E T Vi r t u a l A l l o c M e m R e s e t 15-2 M e m R e s e t 15 MemReset.exe M E M _ R E S E T 15 - M e m R e s e t M e m R e s e t. c p p Vi r t u a l A l l o c 1024 l s t r c p y R A M R A M N o Vi r t u a l A l l o c M E M _ R E S E T R A M 3 1) G l o b a l M e m o r y S t a t u s R A M 2) Vi r t u a l A l l o c R A M 3) Z e r o M e m o r y R A M R A M R A M Z e r o M e m o r y M e m R e s e t R A M R A M R A M
1 5 371 15-2 MemReset
372 15.8 Windows 2000 R A M 32 Windows 2000 AW EM i c r o s o f t AW E R A M R A M AW E R A M R A R A M Vi r t u a l A l l o c R A M R A M R A M R A M AW E
1 5 373 AW E Vi r t u a l A l l o c 1 MB R A M M E M _ R E S E RV E M E M _ P H Y S I C A L R A M AW E PA G E _ R E A D W R I T E Vi r t u a l A l l o c Vi r t u a l P r o t e c t R A M A l l o c a t e U s e r P h y s i c a l P a g e s p u l R A M P a g e s R A M h P r o c e s s
374 R A M R A R A M a R A M P a g e s R A M R A R A M p u l R A M P a g e s R A M AW E R A M R A M R A M R A M AW E R A M G l o b a l M e m o r y S t a t u s E x R A M A l l o c a t e U s e r P h y s i c a l P a g e s Lock Pages in Memory Local System A l l o c a t e U s e r P h y s i c a l P a g e s Windows 2000 Windows 2000 Lock Pages in Memory 1) S t a r t R u n Computer Management MMC R u n C o m p m g m t. m s c / a O K 2) Local Computer Policy Add/Remove Snap-ins / s n a p - i n S t a n d a l o n e Snap-ins Added To C o m p u t e r M a n a g e m e n t ( l o c a l ) A d d Add Standalone Snap-in Available Standalone Snap-ins Group Policy A d d Select Group Policy Object F i n i s h Add Standalone Snap-in C l o s e Add/Remove Snap-in O K Computer Management Local Computer Policy 3) Local Computer Policy( ) Computer Configuration( ) Windows Settings Security Settings Local Policy User Rights A s s i g n m e n t 4) Lock Pages in Memory 5) A c t i o n S e c u r i t y Lock Pages in Memory
1 5 375 A d d Select Users or Group Lock Pages in M e m o r y / O K Lock Pages in M e m o r y R A M M a p U s e r P h y s i c a l P a g e s R A M p v A d d r e s s Wi n d o w u l R A M P a g e s a R A M P a g e s R A M M i c r o s o f t M a p U s e r P h y s i c a l P a g e s R A M M a p U s e r P h y s i c a l P a g e s R A M a R A M P a g e s N U L L R A M p v Wi n d o w R A M R A M F r e e U s e r P h y s i c a l P a g e s h P r o c e s s R A M R A M Vi r t u a l F r e e 0 M E M _ R E L E A S E R A M R A M R A M R A M R A M 64 Windows 2000 AW E AW E 3 2 64 AW E AW E R A M AW E 15-3 AW E 1 5 - AW E. e x e
376 15 - AW E R A M R A M Text in Storage 0 R A M Te x t in Storage 1 R A M R A 15-4 15-4 AW E R A M No Storage R A M R A M 15-5 AW E 15-5 AW E 3 C + + A d d r Wi n d o w s. h C S y s t e m I n f o G e t S y s t e m I n f o C S y s t e m I n f o C + + C A d d r Wi n d o w C r e a t e D e s t r o y U n m a p S t o r a g e R A M P V O I D C + + C A d d r Wi n d o w S t o r a g e C A d d r Wi n d o w R A M A l l o c a t e Lock Pages in Memory R A M F r e e R A M H o w M a n y P a g e s A l l o c a t e d M a p S t o r a g e U n m a p S t o r a g e C A d d r Wi n d o w R A M C + + C A d d r Wi n d o w C A d d r Wi n d o w S t o r a g e 15-3 AW E
1 5 377
378
1 5 379
380
1 5 381
382
1 5 383
384