Gíao viên h

ng d n:

ng Ng c Khánh

ướ

ẫ L

ươ

ỉ ậ

ỉ ộ ử ạ ạ

t c các đ a ch do b x lý t o ra t o nên không ấ ả ị

gian đ a ch lu n lý. ỉ ậ ị

ả ạ ớ ị

nên không gian đ a ch v t lý

 Đ a ch lu n lý (Vitrual Adress) ị - là t ị ỉ ậ  Đ a ch v t lý:(Real Adress) mà trình qu n lý b nh thao tác t o - là đ a ch th c t ộ ỉ ự ế ị

ỉ ậ

 Paging and Page file: - Paging là k thu t phân trang dùng trong b nh o. - Page file l u tr các d li u khi b nh v t lý không ữ ệ

ớ ả ậ ộ

ớ ậ ữ ộ

ỹ ư đ ch ch a. ủ ỗ ứ

i đa ượ ng b nh ớ ộ

2GB-2TB cho dung l tùy thu c vào các phiên b n c a Windows. 1. B nh v t lý ộ ớ ậ  1. B nh v t lý ộ ớ ậ Windows h tr t ỗ ợ ố ộ ả ủ

Không gian đ a ch 2. 2. Không gian đ a ch

o (vitrual adress o (vitrual adress

ỉ ả ỉ ả

ị ị

space) space)

c ượ

t c các đ a ch b nh o t c các đ a ch b nh o

t p h p t là t p h p t ậ ậ

ợ ấ ả ợ ấ ả

ớ ả đ ớ ả

ỉ ộ ỉ ộ

ị ị

thi

t l p

và các ti n trình ế

riêng t ế ậ riêng t

(private), (private),

ư ư

c s d ng đ n nó n u ch a

khác s không đ ẽ

ượ ử ụ

ư

ế

ế

đ

ượ

c chia s . ẻ

2. Không gian đ a ch o (vitrual adress space) – tt 2. Không gian đ a ch o (vitrual adress space) – tt

ỉ ả ỉ ả

ị ị

Windows 32-bit đ

ượ ấ

c c p phát m t không gian ộ

4 GB và đ i v i

đ a ch o là ỉ ả

ố ớ 64-bit là 8TB

Windows trên hê thông 32 bit x86 systems co

̣ ́ ́

thê truy xuât trên 4 GB bô nh vât ly

ớ

́ (t

̉ ́ ̣ ̣

0x00000000 đên

́ 0xFFFFFFFF ) và chia làm

2 ph nầ

2. Không gian đ a ch o (vitrual adress space) – tt 2. Không gian đ a ch o (vitrual adress space) – tt

ỉ ả ỉ ả

ị ị

 0->2 GB d

ữ ệ

i: ướ ch a d li u và l nh riêng c a ủ ệ ở ch đ user- ế ộ ạ ộ c trên vùng 2GB

i dùng ch thao tác đ ỉ

ườ

ượ

t ng ti n trình.Vùng này ho t đ ng ế ừ mode, ng này.

ữ ệ

ề ệ ề

ộ ế

ạ ộ

i dùng

ệ ề

c).

 2->4 GB trên: ch a các thành ph n d li u thu c ứ c chia s chung cho các ti n v h đi u hành, đ ượ , vùng này trình, ho t đ ng ế ộ không th ể tác do h đi u hành qu n lý, ng ả đ ng vào vùng này (không th đ c và ghi đ ượ

ở ch đ kernel-mode ườ ể ọ

Ví d : Không gian đ a ch o ỉ ả ụ ị

2. Không gian đ a ch o (vitrual adress space) – tt 2. Không gian đ a ch o (vitrual adress space) – tt

ỉ ả ỉ ả

ị ị

Windows dung môt đăc tinh cua x86 đ

c

ượ

̀ ̣ ̣ ́ ̉

biêt đên la “phân trang” (paging).

́ ́ ̀

Paging cho phep phân mêm s dung môt đia

ử

́ ̀ ̀ ̣ ̣ ̣

chi nh t m th i. ớ ạ

̉

Paging cua processor chuyên đôi logical

̉ ̉ ̉

address thanh physical address môt cach dê dang

̀ ̣ ́ ̃ ̀

2. Không gian đ a ch o (vitrual adress space) – tt 2. Không gian đ a ch o (vitrual adress space) – tt

ỉ ả ỉ ả

ị ị

́ ̣ ́ ̀

 cho phep moi process trong system co vung addr logical 4GB cua chinh nó

̉ ́

c chia thành các pages (trang) 3. Phân trang (paging) 3. Phân trang (paging)  Vùng đ a ch v t lý đ ượ ỉ ậ ị

(4kb/page) ướ ỗ

c m i trang 4kB = 2 ộ ớ ả

12 byte  Kích th  4GB=220 x 4kB => b nh o ch a ứ  M i trang o có th n m ả

m t trong 3 tr ng thái: ể ằ ở ộ ỗ 220 trang oả . ạ

3. Phân trang (paging) -tt 3. Phân trang (paging) -tt

1. Free: là trang ch a dùng đ ch a d li u

ể ứ ữ ệ . Trang Free không

ư

đ

c đ a vào RAM. Tham chi u đ n trang free gây

ra l

ượ ư

ế

ế

i ỗ

(Page Fault), l

i này không x lý đ

c.

ượ

RAM

P

Page Fault

 2. Committed: là trang đã đ

c ánh x d li u, đang n m

ượ

ạ ữ ệ

trên RAM ho c vùng

3. Phân trang (paging) -tt 3. Phân trang (paging) -tt

Paging File. Khi CPU g i đ n trang

ọ ế

vùng Paging File thì xu t

Committed n u trang đang ế

hi n Page Fault, trang đ

c đ y vào RAM đ ho t đ ng.

ượ

ạ ộ

Còn n u trang đang

RAM thì không xu t hi n Page

ế

Fault.

Chú thích: Paging file là 1 vùng trên b nh ngoài đ

ch c

c t

ượ ổ ứ

nh RAM, cho c m giác nh RAM đ

c m r ng và đ

c dùng

ư

ư

ượ

ở ộ

ượ

đ ch a n i dung các trang b đ y ra t

RAM).

ể ứ ộ

ị ẩ

 V hình t

ng t nh Free ẽ ươ ự ư

 3. Reserved: là trang hi n t

i ch a có trong b nh v t lý,

ệ ạ

ớ ậ

ư

đ

c đ t tr

ượ ặ ướ ể ứ ữ ệ

c đ ch a d li u ho c code. Khi CPU g i ặ

c x lý

đ n trang này thì xu t hi n Page Fault. Trang đ ế

ượ ử

committed.

đ chuy n sang tr ng thái ể

ng t

nh Free

 V hình t ẽ

ươ

ự ư

3. Phân trang (paging) -tt 3. Phân trang (paging) -tt

3. Phân trang (paging) –tt 3. Phân trang (paging) –tt

Quan h gi a các tr ng thái ệ ữ ạ

4. Windows Page Table Management

ả ệ ả ệ

5. Windows Memory Protection (b o v vùng nh ) ớ  5. Windows Memory Protection (b o v vùng nh ) ớ  Muc đich:

̣ ́ ̉ ̣ ̉ ́ ̣ ̀

̉ ́ ̉ ̉ ́ ̣ ̣ ̉ ̀

̀ ́ ́

ộ c th c hi n:

́ ướ

đê môt process không thê truy xuât môt vung b ộ nh cua process khac và đam bao cac hoat đông cua nhiêu processes cung luc m t cach trôi ch y.  Cac b ệ  Chi put physical address cua memory đ

ượ

̉ ̉ ̣ ̣

́ ử

̣ ̉ ̉ ̀

c đinh vi.

c đinh vi trong PTE (Page table entry) cho môt process => đam bao răng ̣ access violation nêu no th truy xuât c môt process băt đ ́ ượ môt đ a ch ma không đ ỉ ị

ượ

́ ́

̉ ố ắ

ự

̣ ̀ ̣ ̣

́ ̀ ́

ẽ ẫ

̉ ̉ ́ ́ ̉ ́

ệ ỏ ự ̣

̣ ̀ ̣ ́

 Môt ̣ rouge process (tiên trinh đang th c thi) co thê c g n thay đôi page tables cua no đ no co thê truy xuât physical ́ ể memory thuôc vê môt process khac, đi u này s d n đ n l i ế ỗ trang.Windows b o v kh i s loai tân công nay b i c ch ở ơ ế cât gi

ả các page tables trong

́ ̀

kernel address space.

ữ

́

6. C u trúc đa b ng trang (Multi Page tables) 6. C u trúc đa b ng trang (Multi Page tables) ấ ấ ả ả

Windows s d ng hai c p b ng trang đ qu n lý b ộ ử ụ ể ấ ả ả

nh nh m tránh vi c qu n lý t ệ ằ ả ớ ấ ả t c các b ng trang ả

trong b nh cùng m t lúc ộ ớ ộ

M i b ng trang b ng kích th c m t trang o là ỗ ả ằ ướ ả ộ

4KB.M i ti n trình có m t b ng trang c p 1, và 1024 ộ ả ỗ ế ấ

b ng trang c p 2. ả ấ

6. C u trúc đa b ng trang- tt 6. C u trúc đa b ng trang- tt ấ ấ

ả ấ ị

ỉ ậ ỗ ả ị

ch v t lý c a 1024 b ng trang c p 2. ụ ủ ỉ ậ

 20 bits đ u dùng ch a đ a ch v t lý c a b ng trang ị

ả ả - B ng trang c p 1: ả  qu n lý đ a ch v t lý c a b ng trang c p 2. ủ ả  có 1024 m c m i m c 4 byte (hay 32 bit), qu n lý đ a ụ ả ứ ấ ỉ ậ ủ ả

c n p vào RAM ượ ạ ủ c p 2 n u b ng trang c p 2 đã đ ấ ứ ả ầ ế ả ố

ế ằ

 Trong tr

i

c l ượ ạ ng h p b ng trang c p 2 ch a đ ợ ượ ấ ả

thì 20 bit đ u ch a ư toàn 0, c n p ạ bit ứ ầ

 12 bit cu i ch a các thu c tính c a b ng trang đó, ộ trong đó 1 bit Present/Absent b ng 1 n u trang đã trên RAM và ng ườ vào RAM Present/Absent cũng b ng 0.

6. C u trúc đa b ng trang - tt 6. C u trúc đa b ng trang - tt ấ ấ

ấ ả

ả ả ụ ấ ỗ

ỗ ả ủ ư ậ ỉ ậ

ng t ả ả  B ng trang c p 2  qu n lý đ a ch v t lý c a trang o. ả ủ ỉ ậ  B ng trang c p 2 cũng có1024 m c, m i m c 4 ụ byte (hay 32 bit) qu n lý đ a ch c a 1024 trang o. ả ỉ ủ ị ả  Nh v y m i b ng trang c p 2 qu n lý đ c đ a ượ ị ả ấ ch v t lý c a 4MB trang o.C u t o c a m i m c ụ ỗ ấ ạ ủ ả nh m i m c trong PT1. trong PT2 cũng t ụ ự ư ỗ ươ

ộ ớ ả

):

III – Qu n lý b nh o (b nh ộ ớ Logic): 1. B nh o (Virtual Memory 1. B nh o (Virtual Memory

Virtual address space

c n p toàn b vào b nh v t

ậ ử

ượ ạ

- Kĩ th t x lý ti n trình không đ ế lý.

ớ ậ Không gian đ a ch o

ỉ ả Physical space

- Tách bi

t hoàn toàn v i hai khái ni m :

Không gian v t lýậ

ng trình đ

ượ

c ch y có th l n h n b ộ

ể ớ

ơ

- Ch ươ nh v t lý. ớ ậ

- Phóng đ i b nh chính. ạ ộ

i ích V y l ậ ợ c a vi c s ệ ử ủ d ng b nh ớ ộ ụ o là gì ? ả

- D dàng chia s t p tin và không gian đ a ch

ẽ ậ

i l p trình ít quan tâm đ n gi

ườ ậ

ế

ớ ạ

i h n b nh ớ ộ

- Giúp ng h n.ơ

ộ ớ ả ộ ớ ả

Minh họa bộ nhớ ảo lớn hơn bộ nhớ vật lý

ạ ị ạ ị ừ ộ ớ ừ ộ ớ b nh Logic sang b nh ộ ớ b nh Logic sang b nh ộ ớ

CPU làm việc với MMU

2. Ánh x (d ch) t 2. Ánh x (d ch) t th c:ựth c:ự

3. Page Faults là gì ? 3. Page Faults là gì ?

Ta xét hai lo i “Page Faults “ mà h th ng có th x lý đ

c :

ệ ố

ể ử

ượ

M t “Blue Screen” xu t hi n khi x y ra PAGE FAULT ệ

s CPU phát sinh m t đ a ch o là 1 s 32 bit đ tìm đ n 1 byte

ộ ị

ế

Gi ỉ ả nh . B ph n d ch (MMU) nh n đ a ch và th c hi n thao tác d ch: ị

ả ử ớ ộ

4. Quá trình d ch đ a ch o: ị 4. Quá trình d ch đ a ch o: ị ỉ ả ỉ ả ị ị

Minh h a quá trình d ch

ỹ ỹ

ư

ạ ế

ấ ả

ế ộ ế

ệ ố

ủ ố

ư

ộ ổ ộ ử ộ ả ủ

ổ ẽ

ế

ế

“ T t c các ti n trình cùng ánh x đ n m t trang dùng chung cho đ n khi m t ti n trình nào đó làm thay đ i n i dung c a trang. Khi ế đó, Page Fault x y ra báo cho h th ng x lý tình hu ng nh sau: ti n trình làm trang thay đ i s copy m t b n c a trang dùng chung ra m t vùng b nh riêng và thao tác trên vùng nh đó; các ti n ộ trình còn l

i v n s d ng trang nh cũ

ộ ạ ẫ ử ụ

ớ .”

Minh h a k thu t Copy-On-Write ậ

ọ ỹ

5. K thu t Copy-On-Write 5. K thu t Copy-On-Write : Windows s d ng k thu t copy-on-write v i nguyên lý nh sau: ậ ậ ử ụ

c ghi.

Dùng đ l u tr : ữ ể ư •Mã ch ng trình. ươ •Các trang (pages) đã có d li u đ •M t ph n dung l ầ

ng c b n dành cho các “file c x lý

ừ ượ ử

ữ ệ ượ ơ ả ậ

dành cho nh ng code lõi c a h ủ ệ th ng (core code of the system).

ượ cache”, l u tr thông tin các t p tin v a đ ư ữ c ng. đ c/ghi t ừ ổ ứ

ng RAM còn l

ẽ ượ

c s ử ng b nh Cache l n ớ

i nào s đ ớ ộ

ượ

B t kỳ l ượ ấ d ng đ làm dung l ể ụ h n.ơ

c n p trong RAM: c n p trong RAM: 6. Nh ng gì đ ữ 6. Nh ng gì đ ữ ượ ạ ượ ạ

c l u

đâu? đâu? ở ở

ệ ố pagefile.sys.File này đ

ượ ạ

c boot.Đ xem file này, chúng ta vào

ẩ ượ ư c t o ra m i l n h đi u hành ư

ụ Hide Protected mode System files”.

Một “Page File” trong hệ thống Windows XP

7. Page file 7. Page file Trong h th ng Windows, “page file” là m t t p tin n đ ộ ệ v i tên ệ ề ớ ỗ ầ đĩa l u “page file” vào đ ượ Folder Options View ch n “ọ Show hidden files and folders” và b ch n m c “ ỏ ọ

Được, làm theo  hướng dẫn sau nè :

Không dùng bộ nhớ ảo  được không ?

Vào Control Panel  System, chọn tab  Advance và sau đó  click vào nút Settings  trong Performance

Tiếp tục click vào tab  Advanced rồi click vào  nút Change.Chọn “No  paging file” và click  nút Set để xóa file  pagefile.sys.

Tắt “page file” trên hệ thống Windows XP Tuy nhiên vi c vi c này làm tiêu t n ố ệ nhi u tài nguyên RAM, làm hi u su t ấ ho t đ ng c a h th ng b gi m. ủ ệ ố

ề ạ ộ

ệ ị ả

IV – Qu n lý b nh v t lý: 1. Các trang nh c a RAM có th chia làm 1 trong 5 vùng: 1. Các trang nh c a RAM có th chia làm 1 trong 5 vùng:

ộ ớ ậ ớ ủ ớ ủ

ể ể

ứ ứ

c xóa kh i RAM khi không c n dùng n a đ ữ ể

ả ượ ạ ầ

Gi ậ RAM khi c n và đ ượ ầ thay băng trang khác.

Các vùng trên RAM

2. Cách th c chuy n đ i gi a các vùng trên RAM: 2. Cách th c chuy n đ i gi a các vùng trên RAM: c n p vào i thu t thay trang đ m b o cho các trang o đ ể ổ ữ ể ổ ữ ả ả

: 3. C s d li u v khung trang 3. C s d li u v khung trang

i cho vi c

ể ả

ạ ộ

ử ụ

ớ ả

c t

Đ qu n lý RAM, các vùng trang trên RAM và ti n l ệ ợ ệ ánh x b nh o vào RAM, Windows s d ng 1 b ng d li u v ữ ệ ề ả các khung trang. Các thông tin có th đ c đ b ng này g m ồ ể ọ ượ ừ ả có:

 S th t

ơ ở ữ ệ ề ơ ở ữ ệ ề

trang trên b nh v t lý.

ố ứ ự

ộ ớ ậ

 Vùng mà trang đang t n t i. ồ ạ

 S b ng trang đang tr đ n trang 1 trang.

ỏ ế

ố ả

 Con tr tr đ n b ng trang đang s d ng trang.

ỏ ỏ ế ả

ử ụ

 Con tr đ n trang ti p theo trong cùng vùng List trên RAM.

ỏ ế

ế

Bảng dữ liệu khung trang

Tham kh oả

ng ĐH CNTT - ĐHQG

Ts. Vũ Đ c Lung - Tr ứ

ườ

•Giáo trình H Đi u Hành - ệ HCM

Khoa CNTT tr

ng ĐH Bách Khoa Hà

ườ

•Bài gi ng nguyên lý H Đi u Hành - N iộ

Khoa CNTT tr

ng ĐH Công Nghi p - TP.HCM

•Bài gi ng H Đi u Hành - ệ

ườ

•Microsoft - http://msdn.microsoft.com/en-us/library/aa366525(VS.85).aspx

•Windows Memory Management by Pankaj Garg

•Inside Windows 2000 by David A.Solomon & Mark E.Russinovich

•Operating Systems by Jerry Breecher