[WinAPI] Cum este impartit spatiul de adrese a unui proces?

Folosire Windows API in programe C/C++ (forum moderat)
Post Reply
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

[WinAPI] Cum este impartit spatiul de adrese a unui proces?

Post by Ovidiu Cucu » 05 Dec 2009, 21:27

Intreabare
Cum este partitionat spatiul de adrese a unui proces?

Raspuns
Se stie ca spatiul total de memorie virtuala a unui process este de 4GB petru sisteme pe 32 biti si 16EB pentru sisteme pe 64 biti.
Pentru sistemele Windows din platforma NT (Windows NT4.0... Windows 7), acest spatiu se imparte in urmatoarele zone (partitii):
  1. NULL-Pointer Assignment - zona rezervata; orice incercare de a accesa aceasta zona din aplicatie se soldeaza cu "access violation".
  2. User-Mode - zona accesibila procesului; aici se afla zona de adrese private (unshared) a procesului; de asemenea aici se incarca executabilul si DLL-urile (incluzand kernel32.dll, user32.dll, gdi32.dll si advapi32.dll) si tot aici se mapeaza memory-mapped files.
  3. 64−KB Off−Limits - zona rezervata; este similara cu prima partitie; orice incercare de a accesa aceasta zona din aplicatie se soldeaza cu "access violation".
  4. Kernel-Mode - zona rezervata; este partitia sistemului de operare si contine Windows NT Executive, Kernel-ul si device drivers; orice incercare de a accesa aceasta zona din aplicatie se soldeaza cu "access violation".

Locatia si marimea acestor partitii depinde de sistemul de operare si de arhitectura microprocesorului asa cum este ilustrat in tabelele de mai jos.
Virtual Adress Space Partitions (32-bit Windows).gif
Virtual Adress Space Partitions (32-bit Windows).gif (5.82 KiB) Viewed 2764 times
Virtual Adress Space Partitions (64-bit Windows).gif
Virtual Adress Space Partitions (64-bit Windows).gif (5.93 KiB) Viewed 2764 times
Note
  • Pentru sistemele Windows din platforma 9x, partitionarea este diferita de cea pentru platforma NT si nu a fost prezentata aici.
Sursa Vezi si
<< Back to Windows API Index



Post Reply