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