You are on page 1of 5

Qun l b nh trong Windows 1.

Gii thiu H thng 32bit x86 ca Windows (Windows on 32bit x86 systems) c th truy nhp ti 4GB ca b nh vt l.Nh vy bus a ch 32bit ca mt b x l ch c th truy nhp n di a ch t 0x00000000 ti 0xFFFFFFFF nm trong 4G.Windows cng cp pht cho ring mi process b nh logic dung lng 4GB , 2GB thp dng cho user mode v 2GB cao dng cho Windows Kernel mode code. Vic phn trang cho php phn mm s dng mt a ch khc (c gi l a ch logic) ngoi vic s dng a ch trong b nh vt l .n v x l phn trang (the processors paging unit) c chc nng chuyn i a ch logic sang a ch vt l mt cch trong sut (transparently). Phn 2 s ni mt cch chi tit hn v vic phn trang ca b x l x86 2.Vic phn trang trong b x l x86 B x l x86 chia b nh vt l thnh cc trang c dung lng 4KB. Nh vy th hin c 4GB b nh,chng ta s cn ti 1 Mega (1024x1024) cc trang dung lng 4KB ( 4KB pages) ,hay l 1 Mega page. B x l s dng cu trc 2 tng trong vic x l 1 Mega page, v chng ta c th tng tng n nh mt ma trn 2 chiu vi chiu th nht c tn gi l Th mc trang (Page Directory) v chiu th 2 c tn gi l Bng trang (Page Table) .Trong Th mc trang chng ta c th to ra 1024 mc t (entry) ,mi mc t ch ti 1 Bng trang (do s c 1024 Bng trang),mi Bng trang nh vy li c cha 1024 mc t,mi mc t ch ti mt 4KB page.

Page Directory
Index = 0, Address = X

Page Tables
Index = 0, Address = Index = 1, Address = Index = 2, Address = Index = 1023 , Addres s X1 X2 X3 = Xn

Physica l Address
Address X1 4 KB Page Addres s Yn 4 KB Page Addres s X3 4 KB Page Unused Addres s Xn 4 KB Page Unused Address Y1 4KB Page Address X2 4KB Page Addres s Z2 4KB Page Address Y2 4KB Page Addres s Z3 4KB Page Unused Unu sed Addres s Zn 4KB Page Address Y3 4KB Page Addres s Z1 4KB Page Unused Unused so o on

Index = 1, Address = Y

Index = 1023 , Addres s = Z

Index = 0, Address = Y1 Index = 1, Address = Y2 Index = 2, Address = Y3 Index = 1023 , Addres s = Yn Index = 0, Address = Z1 Index = 1, Address = Z2 Index = 2, Address = Z3 Index = 1023 , Addres s = Zn

Mi mc t trong Th mc trang (Page Directory entry-PDE) c kch thc 4 bytes tr ti 1 Bng trang,tng t nh vy,mi mc t trong Bng trang (PTE) c kch thc 4 bytes v tr ti mt a ch vt l c kch thc l 4KB. lu tr 1024 PDE x 1024 PTE,chng ta s cn 1 b nh khong 4x1024x1024 bytes=4 MB. Khi mt PDE hay PTE c s dng, 20 bit cao ca n a ra a ch ca mt 4KB page (biu din a ch vt l thc ti - Page Frame Number (PFN)) ,v 12 bit thp dng lu tr cc thng tin bo v trang ( page protection information) v mt s thng tin ni dch c yu cu t h iu hnh cho cc hm c tnh. 3.Vic qun l Page Tabe ca Windows Mi process x l trong Windows u c ring mt Th mc trang v Bng trang,nh vy n s c Windows cp pht cho 4MB b nh.Mi mc t trong th mc trang c xem xt l hp l hay khng hp l. Mc t hp l s cha a ch vt l ca 4KB page cp pht cho process,cn cc mc t khng hp l s cha cc bit c bit c nh du v cc mc t ny c gi l Invalid PTE. Khi mt process x l c kch hot, mi PTE s biu din a ch vt l ca Bng trang,iu cn ch l process x l ch lm vic vi cc a ch logic ch khng phi l a ch vt l,do s c ring mt b x l chuyn i t a ch vt l sang a ch logic. a ch ca cc th mc trang trong b nh vt l c gi l a ch c s ca th mc trang (Page Directory Base address) ,chng c lu tr trong mt thanh ghi CPU c bit gi l CR3(trong x86).Khi chuyn sang process mi (context switch) Windows s ti v gi tr mi ca CR3 tr ti c s th mc trang ca process.Do mi process s c mt khng gian a ch vt l ring vi dung lng 4GB. Mt iu hin nhin l tng b nh c cp pht trong cng mt thi im s khng c vt qu dung lng ca Ram + kch thc pagefile,nhng theo s trn,mi process u c cho 4GB b nh logic(c l b nh o-Virtual memory),tuy rng mi process u c 4GB dung lng b nh,nhng n ch c th s dng a ch c cp pht cho n, cc a ch ngoi vng cp pht s b PTE coi nh l a ch khng hp l .iu ny s gip cho ngi s dng chy nhiu chng trnh ng dng m khng lo n vic xung t a ch b nh.Mt a ch logic ca mt process s khng tr ti b nh logic c cp pht cho mt process khc(tr phi ngi s dng dng b nh chia s (shared memory)). Vic chuyn i t a ch logic sang a ch vt l c thc hin bi mt b x l.Mt a ch logic 32 bit c chia lm 3 phn nh di y 10 bit 10 bit 12 bit

Nh ni trn,thanh ghi CR3 lu tr a ch vt l ca page directory base. 10 bit cao t a ch logic c dng lm ch mc ca th mc trang 10 bit tip theo c dng lm ch mc ca bng trang 12 bit cui s dng nh a ch cc byte ring ca trang. Z 4.Memory protection Windows trnh cho cc process truy cp vo b nh ca nhau theo cch di y a ch vt l ca b nh c cp pht trong PTE ch dng cho mt process. Cc bng trang c lu tr bn trong vng nh kernel (2GB ca b nh vt l s dng cho qu trnh x l,2 GB cn li dng cho windows kernel).Do cc ng dng di ch user khng th trc tip truy nhp vo cc bng trang. 5.Windows logical memory layout Windows dnh 2GB thp (hoc 3GB ty thuc vo boot.ini switch) ca b nh logic cho ch user v 2GB cao(hoc 1GB ty thuc vao boot.ini switch) cho Windows kernel.

Bn ngoi vng nh kernel, cc a ch t 0xC0000000 ti 0xC03FFFFF dng d tr cho cc bng trang v th mc trang.Mi process c nh a ch cc bng trang ti a ch logic 0xC0000000 v cc th mc trang ti a ch logic 0xC0300000

Logical address
0x00000000 0x80000000 0xC0000000 0xC0300000 0xFFFFFFF

Vic b tr cc bng trang v th mc trang s c xem xt di y Index 0x0 Logical Address 0xC0000000 0x6A078### 0xC0001000 0x45045### 0xC0002000 0xC0100000 0xC0300000 0x13453### 0xC0301000 0xC03FF000 0x1 . 0x80 . 0x300 (768) 0x34005### 0x34A (842) . . 0x400 (1023)

. HUQHO0 RGH

8 VHU0 RGH

0x10480### -

P_PT 0x6A078###

P_PT 0x45045###

PDB 0x13453###

Page Directory Base (PDB) ang xem xt y biu din a ch vt l ca PTE u tin ca process,gi tr ny cng c lu tr trong CR3 v c th hin thng qua a ch logic,mi mt process u c mt PDB ca ring n v c lu ti ch mc 0x300 ca th mc trang. Vic chuyn i t a ch logic sang a ch vt l s c xem xt thng qua v d vi a ch 0x2034AC54( a ch logic ca ch user ca mt process) 0x2034AC54=0010000000 1101001010 110001010100 10 bit u 0010000000=0x080 biu din ch s ca th mc trang Da vo bng CR3 ta c th thy th mc trang c nh du a ch vt l ti 0x13453000 (a ch logic l 0xC0300000) 0xC0300000[0x800] cho bit a ch logic ca bng trang l 0xC0001000(a ch vt l l 0x45045000) 10 bit tip theo cho bit ch mc ca bng trang 1101001010=0x34A 0xC0001000[0x34A] cho bit a ch vt l ca 4KB page l 0x34005000. 12 bit cui cho bit s byte thc ti ca 4KB page c a ch 0x34005000 l 0xC54 a ch vt l cui cng c a ra t a ch logic 0x2034AC54 l 0x34005C54.

You might also like