CH NG 3: QU N LÝ B NH
Ch ng này s giúp các b n hình dung nh ng v n c n quan tâm khi thi t k module qu n lý b nh
c a H u hành M t s mô hình t ch c b nh c ng c gi i thi u và phân tích u, khuy t m các b n có th hi u c cách th c c p phát và thu h i b nh di n ra nh th nào
B nh chính là thi t b l u tr duy nh t thông qua ó CPU có th trao i thông tin v i môi tr ngngoài, do v y nhu c u t ch c, qu n lý b nh là m t trong nh ng nhi m v tr ng tâm hàng u c a h
i u hành B nh chính c t ch c nh m t m ng m t chi u các t nh (word), m i t nh có m t
a ch Vi c trao i thông tin v i môi tr ng ngoài c th c hi n thông qua các thao tác c ho cghi d li u vào m t a ch c th nào ó trong b nh
CPU Tuy nhiên k thu t này l i làm n y sinh nhu c u chia s b nh gi a các ti n trình khác nhau
V n n m ch : « b nh thì h u h n và các yêu c u b nh thì vô h n ».
H u hành ch u trách nhi m c p phát vùng nh cho các ti n trình có yêu c u th c hi n t t nhi m
v này, h u hành c n ph i xem xét nhi u khía c nh :
S t ng ng gi a a ch logic và a ch v t lý (physic) : làm cách nào chuy n i m t a ch
ng tr ng (symbolic) trong ch ng trình thành m t a ch th c trong b nh chính?
Qu n lý b nh v t lý: làm cách nào m r ng b nh có s n nh m l u tr c nhi u ti n trình
ng th i?
Chia s thông tin: làm th nào cho phép hai ti n trình có th chia s thông tin trong b nh ?
B o v : làm th nào ng n ch n các ti n trình xâm ph m n vùng nh c c p phát cho ti ntrình khác?
Các gi i pháp qu n lý b nh ph thu c r t nhi u vào c tính ph n c ng và tr i qua nhi u giai n
Th i m biên d ch: n u t i th i m biên d ch, có th bi t v trí mà ti n trình s th ng trú trong b
nh , trình biên d ch có th phát sinh ngay mã v i các a ch tuy t i Tuy nhiên, n u v sau có sthay i v trí th ng trú lúc u c a ch ng trình, c n ph i biên d ch l i ch ng trình
Trang 2Th i m n p : n u t i th i m biên d ch, ch a th bi t v trí mà ti n trình s th ng trú trong b
nh , trình biên d ch c n phát sinh mã t ng i (translatable) S liên k t a ch c trì hoãn n th i
tuy t i do ã bi t v trí b t u l u tr ti n trình Khi có s thay i v trí l u tr , ch c n n p l i
ch ng trình tính toán l i các a ch tuy t i, mà không c n biên d ch l i
Th i m x lý : n u có nhu c u di chuy n ti n trình t vùng nh này sang vùng nh khác trong quátrình ti n trình x lý, thì th i m k t bu c a ch ph i trì hoãn n t n th i m x lý th c hi n
k t bu c a ch vào th i m x lý, c n s d ng c ch ph n c ng c bi t
3.2 Không gian a ch và không gian v t lý
M t trong nh ng h ng ti p c n trung tâm nh m t ch c qu n lý b nh m t cách hi u q a là a rakhái ni m không gian a ch c xây d ng trên không gian nh v t lý, vi c tách r i hai không giannày giúp h u hành d dàng xây d ng các c ch và chi n l c qu n lý b nh h u hi u :
Ch ng trình c a ng i s d ng ch thao tác trên các a ch o, không bao gi nhìn th y các a ch
v t lý a ch th t s ng v i v trí c a d li u trong bô nh ch c xác nh khi th c hi n truy xu t
n d li u
3.3 C p phát liên t c
3.3.1 Mô hình Linker_Loader
Ý t ng : Ti n trình c n p vào m t vùng nh liên t c l n ch a toàn b ti n trình T i th i
i m biên d ch các a ch bên trong ti n trình v n là a ch t ng i T i th i m n p, H uhành s tr v a ch b t u n p ti n trình, và tính toán chuy n các a ch t ng i v a chtuy t i trong b nh v t lý theo công th c a ch v t lý = a ch b t u + a ch t ng i.
Trang 33.3.2 Mô hình Base &Bound
Ý t ng : Ti n trình c n p vào m t vùng nh liên t c l n ch a toàn b ti n trình T i th i
i m biên d ch các a ch bên trong ti n trình v n là a ch t ng i Tuy nhiên b túc vào c u trúc
ph n c ng c a máy tính m t thanh ghi n n (base register) và m t thanh ghi gi i h n (bound register).
Khi m t ti n trình c c p phát vùng nh , n p vào thanh ghi n n a ch b t u c a phân vùng c
c p phát cho ti n trình, và n p vào thanh ghi gi i h n kích th c c a ti n trình Sau ó, m i a ch b
nh c phát sinh s t ng c c ng v i a ch ch a trong thanh ghi n n cho ra a ch tuy t
i trong b nh , các a ch c ng c i chi u v i thanh ghi gi i h n b o m ti n trình khôngtruy xu t ngoài ph m vi phân vùng c c p cho nó
Hai thanh ghi h tr chuy n i a ch
M t u i m c a vi c s d ng thanh ghi n n là có th di chuy n các ch ng trình trong b nh saukhi chúng b t u x lý, m i khi ti n trình c di chuy n n m t v trí m i, ch c n n p l i giá trcho thanh ghi n n, các a ch tuy t i s c phát sinh l i mà không c n c p nh t các a ch t ng
i trong ch ng trình
Ch u ng hi n t ng phân m nh ngo i vi( external fragmentation ) : khi các ti n trình l n l t vào
và ra kh i h th ng, d n d n xu t hi n các khe h gi a các ti n trình ây là các khe h c t o ra dokích th c c a ti n trình m i c n p nh h n kích th c vùng nh m i c gi i phóng b i m t ti ntrình ã k t thúc và ra kh i h th ng Hi n t ng này có th d n n tình hu ng t ng vùng nh tr ng tho mãn yêu c u, nh ng các vùng nh này l i không liên t c ! Ng i ta có th áp d ng k thu t
« d n b nh » (memory compaction ) k t h p các m nh b nh nh r i r c thành m t vùng nh l nliên t c Tuy nhiên, k thu t này òi h i nhi u th i gian x lý, ngoài ra, s k t bu c a ch ph i th c
hi n vào th i m x lý, vì các ti n trình có th b di chuy n trong quá trình d n b nh
Trang 4Phân m nh ngo i vi
V n n y sinh khi kích th c c a ti n trình t ng tr ng trong qúa trình x lý mà không còn vùng
nh tr ng g n k m r ng vùng nh cho ti n trình Có hai cách gi i quy t:
b khóa, ho c ti n trình s d ng h t th i gian CPU dành cho nó, nó có th c chuy n t m th i ra b
nh ph và sau này c n p tr l i vào b nh chính ti p t c x lý
Các cách t ch c b nh trên ây u ph i ch u ng tình tr ng b nh b phân m nh vì chúng u
ti p c n theo ki u c p phát m t vùng nh liên t c cho ti n trình Nh ã th o lu n, có th s d ng kthu t d n b nh lo i b s phân m nh ngo i vi, nh ng chi phí th c hi n r t cao M t gi i phápkhác h u hi u h n là cho phép không gian a ch v t lý c a ti n trình không liên t c, ngh a là có th
c p phát cho ti n trình nh ng vùng nh t do b t k , không c n liên t c
3.4 C p phát không liên t c
3.4.1 Phân o n (Segmentation)
Ý t ng: quan ni m không gian a ch là m t t p các phân o n (segments) – các phân o n là
nh ng ph n b nh kích th c khác nhau và có liên h logic v i nhau M i phân n có m t tên g i(s hi u phân n) và m t dài Ng i dùng s thi t l p m i a ch v i hai giá tr : <s hi u phân
o n, offset>.
Trang 5Hình 4.17 Mô hình phân o n b nh
ch MMU trong k thu t phân n:
C n ph i xây d ng m t ánh x chuy n i các a ch 2 chi u c ng i dùng nh ngh a thành a
ch v t lý m t chi u S chuy n i này c th c hi n qua m t b ng phân n M i thành ph n
trong b ng phân n bao g m m t thanh ghi n n và m t thanh ghi gi i h n Thanh ghi n n l u tr a
ch v t lý n i b t u phân n trong b nh , trong khi thanh ghi gi i h n c t chi u dài c a phân
o n
Chuy n i a ch :
M i a ch o là m t b <s,d> :
s hi u phân o n s : c s d ng nh ch m c n b ng phân n
a ch t ng i d : có giá tr trong kho ng t 0 n gi i h n chi u dài c a phân n N u a ch
ng i h p l , nó s c c ng v i giá tr ch a trong thanh ghi n n phát sinh a ch v t lý t ngng
Hình 4.18 C ch ph n c ng h tr k thu t phân o n
Trang 6Hình 4.19 H th ng phân n
Cài t b ng phân o n:
Có th s d ng các thanh ghi l u tr b ng phân n n u s l ng phân n nh Trong tr ng
h p ch ng trình bao g m quá nhi u phân n, b ng phân n ph i c l u trong b nh chính
phân o n s d ng trong m t ch ng trình bi n ng, c n s d ng thêm m t thanh ghi c t kích
th c b ng phân n (STLR).
V i m t a ch logic <s,d>, tr c tiên s hi u phân n s c ki m tra tính h p l (s <STLR) K
(STBR+s) i ch v t lý cu i cùng là (STBR+s + d)
Hình 4.20 S d ng STBR, STLR và b ng phân n
B o v : M t u i m c bi t c a c ch phân n là kh n ng c t thu c tính b o v cho m iphân o n Vì m i phân n bi u di n cho m t ph n c a ch ng trình v i ng ngh a c ng idùng xác nh, ng i s d ng có th bi t c m t phân n ch a ng nh ng gì bên trong, do v y
h có th c t các thu c tính b o v thích h p cho t ng phân n
ch ph n c ng ph trách chuy n i a ch b nh s ki m tra các bit b o v c gán v i m i
ph n t trong b ng phân n ng n ch n các thao tác truy xu t b t h p l n phân n t ng ng
Trang 7Chia s phân n: M t u i m khác c a k thu t phân n là kh n ng chia s m c phân
o n Nh kh n ng này, các ti n trình có th chia s v i nhau t ng ph n ch ng trình ( ví d các th
t c, hàm), không nh t thi t ph i chia s toàn b ch ng trình nh tr ng h p phân trang M i ti n trình
có m t b ng phân n riêng, m t phân n c chia s khi các ph n t trong b ng phân n c ahai ti n trình khác nhau cùng ch n m t v trí v t lý duy nh t
Hình 4.21 Chia s code trong h phân n
Ph i gi i quy t v n c p phát ng: làm th nào th a mãn m t yêu c u vùng nh kích th c N ?
C n ph i ch n vùng nh nào trong danh sách vùng nh t do c p phát ? Nh v y c n ph i ghi nh
hi n tr ng b nh có th c p phát úng Có hai ph ng pháp qu n lý ch y u :
Qu n lý b ng m t b ng các bit : b nh c chia thành các n v c p phát, m i n v c ph nánh b ng m t bit trong b ng các bit, m t bit nh n giá tr 0 n u n v b nh t ng ng ang t do, và
nh n giá tr 1 n u n v t ng ng ã c c p phát cho m t ti n trình Khi c n n p m t ti n trình cókích th c k n v , c n ph i tìm trong b ng các bit m t dãy con k bit nh n giá tr 0 ây là m t gi i
pháp n gi n, nh ng th c hi n ch m nên ít c s d ng
Hình 4.5 Qu n lý b nh b ng b ng các bit
Qu n lý b ng danh sách: T ch c m t danh sách các phân n ã c p phát và phân o n t do, m tphân o n có th là m t ti n trình (P) hay vùng nh tr ng gi a hai ti n trình (H)
Trang 8Hình 4.6 Qu n lý b nh b ng danh sách
Các thu t toán thông d ng ch n m t phân o n t do trong danh sách c p phát cho ti n trình là :
First-fit: c p phát phân n t do u tiên l n
Best-fit: c p phát phân n t do nh nh t nh ng l n thõa mãn nhu c u
Worst-fit : c p phát phân n t do l n nh t
Trong h th ng s d ng k thu t phân n , hi n t ng phân m nh ngo i vi l i xu t hi n khi các
kh i nh t do u quá nh , không ch a m t phân n
3.4.2 Phân trang ( Paging)
Hình 4.8 Mô hình b nh phân trang
ch MMU trong k thu t phân trang:
ch ph n c ng h tr th c hi n chuy n i a ch trong c ch phân trang là b ng trang (pages table) M i ph n t trong b ng trang cho bi t các a ch b t u c a v trí l u tr trang t ng ngtrong b nh v t lý ( s hi u khung trang trong b nh v t lý ang ch a trang )
Chuy n i a ch :
M i a ch phát sinh b i CPU c chia thành hai ph n:
s hi u trang (p): s d ng nh ch m c n ph n t t ng ng trong b ng trang
a ch t ng i trong trang (d): k t h p v i a ch b t u c a trang t o ra a ch v t lý mà trình
qu n lý b nh s d ng
Trang 9Kích th c c a trang do ph n c ng qui nh d phân tích a ch o thành s hi u trang và a ch
ng i, kích th c c a m t trang thông th ng là m t l y th a c a 2 (bi n i trong ph m vi 512bytes và 8192 bytes) N u kích th c c a không gian a ch là 2 m và kích th c trang là 2 n , thì m-n
bits cao c a a ch o s bi u di n s hi u trang, và n bits th p cho bi t a ch t ng i trong trang
u l u tr b ng trang (PTBR)
Theo cách t ch c này, m i truy xu t n d li u hay ch th u òi h i hai l n truy xu t b nh :
m t cho truy xu t n b ng trang và m t cho b n thân d li u!
Hình 4.10 Mô hình b nh phân trang
Trang 10Hình 4.11 S d ng thanh ghi n n tr n b ng trang
Có th né tránh b t vi c truy xu t b nh hai l n b ng cách s d ng thêm m t vùng nh c bi t ,
v i t c truy xu t nhanh và cho phép tìm ki m song song, vùng nh cache nh này th ng c g i
là b nh k t h p (TLBs) M i thanh ghi trong b nh k t h p g m m t t khóa và m t giá tr , khi a
n b nh k t h p m t i t ng c n tìm, i t ng này s c so sánh cùng lúc v i các t khóatrong b nh k t h p tìm ra ph n t t ng ng Nh c tính này mà vi c tìm ki m trên b nh k t
h p c th c hi n r t nhanh, nh ng chi phí ph n c ng l i cao
Trong k thu t phân trang, TLBs c s d ng l u tr các trang b nh c truy c p g n hi n
t i nh t Khi CPU phát sinh m t a ch , s hi u trang c a a ch s c so sánh v i các ph n t trongTLBs, n u có trang t ng ng trong TLBs, thì s xác nh c ngay s hi u khung trang t ng ng,
n u không m i c n th c hi n thao tác tìm ki m trong b ng trang
T ch c b ng trang:
M i h u hành có m t ph ng pháp riêng t ch c l u tr b ng trang a s các h u hành c pcho m i ti n trình m t b ng trang Tuy nhiên ph ng pháp này không th ch p nh n c n u h uhành cho phép qu n lý m t không gian a ch có dung l ng quá (232, 264): trong các h th ng nh
th , b n thân b ng trang òi h i m t vùng nh qúa l n! Có hai gi i pháp cho v n này:
Phân trang a c p: phân chia b ng trang thành các ph n nh , b n thân b ng trang c ng s c phântrang
Trang 11B ng trang ngh ch o: s d ng duy nh t m t b ng trang ngh ch o cho t t c các ti n trình M i
ph n t trong b ng trang ngh ch o ph n ánh m t khung trang trong b nh bao g m a ch logic
c a m t trang ang c l u tr trong b nh v t lý t i khung trang này, cùng v i thông tin v ti ntrình ang c s h u trang M i a ch o khi ó là m t b ba <idp, p, d >
Trong ó : idp là nh danh c a ti n trình
p là s hi u trang
d là a ch t ng i trong trang
M i ph n t trong b ng trang ngh ch o là m t c p <idp, p > Khi m t tham kh o n b nh cphát sinh, m t ph n a ch o là <idp, p > c a n cho trình qu n lý b nh tìm ph n t t ng
ng trong b ng trang ngh ch o, n u tìm th y, a ch v t lý <i,d> s c phát sinh Trong các tr ng
h p khác, xem nh tham kh o b nh ã truy xu t m t a ch b t h p l
B o v :
ch b o v trong h th ng phân trang c th c hi n v i các bit b o v c g n v i m i khungtrang Thông th ng , các bit này c l u trong b ng trang , vì m i truy xu t n b nh u ph itham kh o n b ng trang phát sinh a ch v t lý, khi ó, h th ng có th ki m tra các thao tác truy
xu t trên khung trang t ng ng có h p l v i thu c tính b o v c a nó không
Ngoài ra, m t bit ph tr i c thêm vào trong c u trúc m t ph n t c a b ng trang : bit h p l -b t h p
l (valid-invalid)
Trang 12H p l : trang t ng ng thu c v không gian a ch c a ti n trình.
B t h p l : trang t ng ng không n m trong không gian a ch c a ti n trình, i u này có ngh a ti ntrình ã truy xu t n m t a ch không c phép
Hình 4.15 C u trúc m t ph n t trong b ng trang Chia s b nh trong c ch phân trang:
M t u i m c a c ch phân trang là cho phép chia s các trang gi a các ti n trình.Trong tr ng h pnày, s chia s c th c hi n b ng cách ánh x nhi u a ch logic vào m t a ch v t lý duy nh t Có
th áp d ng k thu t này cho phép có ti n trình chia s m t vùng code chung: n u có nhi u ti n
trình c a cùng m t ch ng trình, ch c n l u tr m t n code c a ch ng trình này trong b nh , các
ti n trình s có th cùng truy xu t n các trang ch a code chung này L u ý có th chia s m t
o n code, n code này ph i có thu c tính reenterable (cho phép m t b n sao c a ch ng trình c
s d ng ng th i b i nhi u tác v )
K thu t phân trang lo i b c hi n t ng phân m nh ngo i vi : m i khung trang u có th c
c p phát cho m t ti n trình nào ó có yêu c u Tuy nhiên hi n t ng phân m nh n i vi v n có th x y
ra khi kích th c c a ti n trình không úng b ng b i s c a kích th c m t trang, khi ó, trang cu icùng s không c s d ng h t
M t khiá c nh tích c c r t quan tr ng khác c a k thu t phân trang là s phân bi t r ch ròi góc nhìn
c a ng i dùng và c a b ph n qu n lý b nh v t lý:
Góc nhìn c a ng i s d ng: m t ti n trình c a ng i dùng nhìn th y b nh nh là m t không gianliên t c, ng nh t và ch ch a duy nh t b n thân ti n trình này
Góc nhìn c a b nh v t lý: m t ti n trình c a ng i s d ng c l u tr phân tán kh p b nh v t
lý, trong b nh v t lý ng th i c ng ch a nh ng ti n trình khác
Ph n c ng m nhi m vi c chuy n i a ch logic thành a ch v t lý S chuy n i này là trong
su t i v i ng i s d ng
Trang 13u tr các thông tin chi ti t v quá trình c p phát b nh , h u hành s d ng m t b ng khungtrang, mà m i ph n t mô t tình tr ng c a m t khung trang v t lý : t do hay c c p phát cho m t
K thu t phân n thõa mãn c nhu c u th hi n c u trúc logic c a ch ng trình nh ng nó d n
n tình hu ng ph i c p phát các kh i nh có kích th c khác nhau cho các phân n trong b nh
v t lý u này làm r c r i v n h n r t nhi u so v i vi c c p phát các trang có kích th c t nh.M t
gi i pháp dung hoà là k t h p c hai k thu t phân trang và phân o n : chúng ta ti n hành phân trang các phân o n.
3.4.3 Phân o n k t h p phân trang (Paged segmentation)
Ý t ng: Không gian a ch là m t t p các phân n, m i phân n c chia thành nhi u trang.Khi m t ti n trình c a vào h th ng, h u hành s c p phát cho ti n trình các trang c n thi t
ch a các phân o n c a ti n trình.
ch MMU trong k thu t phân n k t h p phân trang:
h tr k thu t phân n, c n có m t b ng phân n, nh ng gi ây m i phân n c n có m t
b ng trang phân bi t.
Chuy n i a ch :
M i a ch logic là m t b ba: <s,p,d>
s hi u phân n (s): s d ng nh ch m c n ph n t t ng ng trong b ng phân n
s hi u trang (p): s d ng nh ch m c n ph n t t ng ng trong b ng trang c a phân n
a ch t ng i trong trang (d): k t h p v i a ch b t u c a trang t o ra a ch v t lý mà
trình qu n lý b nh s d ng
Trang 14Hình 4.22 Mô hình phân o n k h p phân trang
T t c các mô hình t ch c b nh trên ây u có khuynh h ng c p phát cho ti n trình toàn b cáctrang yêu c u tr c khi th t s x lý Vì b nh v t lý có kích th c r t gi i h n, u này d n n hai