HDH 07 Chap6 5163

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 73

Bai giang 6 :

Quan ly bo nh

Tong quan

Nhu cau bo nh cua tien trnh


Cac van e ve bo nh

Chuyen oi a ch

Cac cong oan


Cac mo hnh chuyen oi a ch

Vai tro Quan ly bo nh cua HH


Cac yeu cau

Cac mo hnh to chc bo nh


Mo hnh Lien tuc
Mo hnh Khong lien tuc

4/6/2008

Trn Hnh Nhi

Tong quan : Nhu cau ve bo nh cua tien trnh


Chng trnh can c nap vao Bo nh chnh e thi hanh
CPU ch co the truy xuat trc tiep Main Memory
Chng trnh khi c nap vao BNC se c to chc theo cau truc cua
tien trnh tng ng
Ai cap phat BNC cho tien trnh ?

Chng trnh nguon s dung a ch symbolic


Tien trnh thc thi truy cap ia ch thc trong BNC
Ai chuyen oi a ch ?

HH
Bo phan Quan ly Bo nh
Mo hnh to chc ?
4/6/2008

C che ho tr
Trn Hnh Nhi

Chien lc thc hien


2

Tong quan : Cac van e ve Bo nh


Cap phat Bo nh :
Uniprogramming : Khong kho
Multiprogramming :
BNC gii han, N tien trnh ?
Bao ve ? Chia se ?

Tien trnh thay oi kch thc ?


Tien trnh ln hn BNC ?
Chuyen oi a ch tien trnh
Thi iem chuyen oi a ch ?
Cong thc chuyen oi ?

Phu thuoc vao Mo hnh to chc BNC ?


Can s ho tr cua phan cng ?

Tien trnh thay oi v tr trong BNC ?


4/6/2008

Trn Hnh Nhi

V du
OS

Moi trng a nhiem

gcc
nachos
emacs

0x9000
0x7000
0x4000
0x3000
0x0000

Neu nachos can them khong gian ?


Neu nachos co loi va thc hien thao tac ghi vao a ch 0x7100?
Khi nao gcc biet rang no thng tru tai 0x4000?
Neu emacs can nhieu bo nh hn dung lng vat ly hien co?
4/6/2008

Trn Hnh Nhi

Cac bc chuyen oi chng trnh


C program: test.c
Compiler
Object:test.o
Linker

lib.o

Executable: test.exe
Loader
Memory
4/6/2008

Trn Hnh Nhi

Cac bc chuyen oi
source program -> .exe

A.C
int x;
int y;
x = 12;
y = 5;
F();

A.O
0 // x
2 // y
4 // [0] = 12;
5 // [2] = 5;
6 // jmp F
//external
// object

B.C

F()
{
printf(Hi);
}

B.O
0 -2 // F()

0
3
5
7
8
9

// F()
// x
// y
// [3] = 12;
// [5] = 5;
// jmp 0

Test.exe

OS

? // F()
? // x
? // y
? // [?] = 12;
? // [?] = 5;
? // jmp ?

Thuat ng
a ch logic con goi la a ch ao , la tat ca cac a ch do
bo x ly tao ra
a ch physic - la a ch thc te ma trnh quan ly bo nh
nhn thay va thao tac
Khong gian a ch la tap hp tat ca cac a ch ao phat sinh
bi mot chng trnh
Khong gian vat ly la tap hp tat ca cac a ch vat ly tng
ng vi cac a ch ao

4/6/2008

Trn Hnh Nhi

Nhu cau bo nh cua tien trnh


low address

code segment

read from program file by exec


usually read-only
can be shared

data segment

system data segment (PCB)

8048314 <add>:
8048314:

push

%ebp

8048315:

mov

%esp,%ebp

8048317:

mov

0xc(%ebp),%eax

804831a:

add

0x8(%ebp),%eax

804831d:

pop

%ebp

804831e:

ret

initialized global variables (0 / NULL)


804831f <main>:
804831f:
push
uninitialized global variables
8048320:
mov
heap
dynamic memory
8048325:
e.g., allocated using malloc
grows against higher addresses 8048328:
8048322:

stack segment

initialized variables
uninitialized variables
data segment
process A

%ebp
%esp,%ebp

sub

$0x18,%esp

and

$0xfffffff0,%esp

mov

$0x0,%eax

804832d:

sub

%eax,%esp

804832f:

movl

$0x0,0xfffffffc(%ebp)

8048336:

movl

$0x2,0x4(%esp,1)

variables in a function
804833e:
8048345:
stored register states (e.g. calling function
EIP)
804834a:
804834d:
grows against lower addresses
804834e:

804834f:
system data segment (PCB)

segment pointers
pid
program and stack pointers

code segment

movl

$0x4,(%esp,1)

call

8048314 <add>

mov

%eax,0xfffffffc(%ebp)

heap

s
nu
u

leave
ret
nop

ed

em

y
or

...

Stack cho cc thread


4/6/2008

data segment

Tin trnh gm c:

stack
possible
stacks
for more threads

Trn Hnh Nhi

high address

Logical and Physical Address Spaces

4/6/2008

Trn Hnh Nhi

10

Truy xuat bo nh
a ch cua Instruction va data trong program source code la
symbolic:
goto errjmp;
X = A + B;

Nhng a ch symbolic nay can c lien ket (bound) vi cac a ch


thc trong bo nh vat ly trc khi thi hanh code
Address binding: anh xa a ch t khong gian a ch (KGC) nay
vao KGC khac
Thi iem thc hien address binding ?
compile time
load time
execution time.

4/6/2008

Trn Hnh Nhi

11

Thi iem ket buoc a ch ?


Co the thc hien viec ket buoc a ch tai 1 trong 3 thi
iem :
Compile-time:

Phat sinh a ch tuyet oi


Phai biet trc v tr nap chng trnh
Phai bien dch lai chng trnh khi v tr nap thay oi

Load-time:

Khi bien dch ch phat sinh a ch tng oi


Khi nap, biet v tr bat au se tnh lai a ch tuyet oi
Phai tai nap khi v tr bat au thay oi

Execution-time:

Khi bien dch,nap ch phat sinh a ch tuong oi


Tr hoan thi iem ket buoc a ch tuyet oi en khi thi hanh
Khi o ai tnh toan a ch tuyet oi ?
Phan cng : MMU

4/6/2008

Trn Hnh Nhi

12

Chuyen oi a ch

MMU

gcc
Load Store
CPU

Translation box
virtual
address

data

4/6/2008

legal addr?
Illegal?

Physical
address

Physical
memory

error

Trn Hnh Nhi

13

CPU, MMU and Memory

4/6/2008

Trn Hnh Nhi

14

Yeu cau quan ly bo nh


Tang hieu suat s dung CPU
Can ho tr Multiprogramming
Lu tr cung luc nhieu tien trnh trong BNC ?

Cac yeu cau khi to chc lu tr tien trnh:


1.
2.
3.
4.
5.

4/6/2008

Relocation
Protection
Sharing
Logical Organization
Physical Organization

Trn Hnh Nhi

15

Tai nh v (Relocation)
Khong biet trc chng trnh se c nap vao BN v tr
nao e x ly.
Mot tien trnh co the c di di trong bo nh sau khi a
nap C
Tien trnh tang trng ?
HH sap xep lai cac tien trnh e co the s dung BNC hieu qua
hn.

4/6/2008

Trn Hnh Nhi

16

Bao ve (Protection)
Khong cho phep tien trnh truy cap en cac v tr nh a
cap cho tien trnh khac (khi cha co phep).
Khong the thc hien viec kiem tra hp le tai thi iem
bien dch hay nap, v chng trnh co the c tai nh v.
Thc hien kiem tra tai thi iem thi hanh
Can s ho tr cua phan cng.

4/6/2008

Trn Hnh Nhi

17

Chia se (Sharing)
Can cho phep nhieu tien trnh tham chieu en cung mot
vung nh ma khong ton hai en tnh an toan he thong :
Tiet kiem cho lu tr cho cac module dung chung.
Cho phep cac tien trnh cong tac co kha nang chia se d lieu.

4/6/2008

Trn Hnh Nhi

18

To chc logic (Logical Organization)


Ngi dung viet chng trnh gom nhieu module, vi cac
yeu cau bao ve cho tng module co the khac nhau:
instruction modules : execute-only.
data modules : read-only hay read/write.
mot so module la private, so khac co the la public.

OS can ho tr cac c che co the phan anh mo hnh logic


cua chung trnh

4/6/2008

Trn Hnh Nhi

19

To chc vat ly (Physical Organization)


Cap phat vung nh vat ly sao cho hieu qua
Va de dang chuyen oi chng trnh qua lai gia BNC va
BNP

4/6/2008

Trn Hnh Nhi

20

Cac mo hnh to chc bo nh


Cap phat Lien tuc (Contigous Allocation)
Linker Loader
Base & Bound

Cap phat Khong lien tuc (Non Contigous Allocation)


Segmentation
Paging

4/6/2008

Trn Hnh Nhi

21

Cap phat Lien tuc (Contigous Allocation)


Nguyen tac :
Chng trnh c nap toan the vao BNC e thi hanh
Can mot vung nh lien tuc, u ln e cha Chng trnh

Khong gian a ch : lien tuc


Khong gian vat ly : co the to chc
Fixed partition
Variable partition

2 mo hnh n gian
Linker Loader
Base & Bound
4/6/2008

Trn Hnh Nhi

22

Fixed Partitioning
Phan chia KGVL thanh cac
partitions
Co 2 cach phan chia partitions :
kch thc bang nhau
kch thc khac nhau

Moi tien trnh se c nap vao


mot partition e thi hanh
Chien lc cap phat partition ?

4/6/2008

Trn Hnh Nhi

23

Chien lc cap phat partitions cho tien trnh


Kch thc partition bang nhau
khong co g phai suy ngh !

Kch thc partition khong bang


nhau :
S dung nhieu hang i
Cap cho tien trnh partition vi
kch thc be nhat (u ln e
cha tien trnh)
Khuyet iem : phan bo cac tien
trnh vao cac partition khong
eu, mot so tien trnh phai i
trong khi co partition khac
trong
4/6/2008

Trn Hnh Nhi

24

Chien lc cap phat partitions cho tien trnh


Kch thc partition khong bang
nhau :

S dung 1 hang i
Cap cho tien trnh partition t
do vi kch thc be nhat (u
ln e cha tien trnh)
Can dung mot CTDL e theo
doi cac partition t do

4/6/2008

Trn Hnh Nhi

25

Nhan xet Fixed Partitioning


S dung BN khong hieu qua

internal fragmentation : kch thc chng trnh khong ung bang kch thc
partition

Mc o a chng cua he thong (So tien trnh c nap) b gii han


bi so partitions
P1 (2M)
internal frag

P2 (4M)

3M

8M

internal frag
4/6/2008

Trn Hnh Nhi

26

Dynamic Partitioning
BNC khong c phan chia
trc

Cac partition co kch thc tuy y,


se hnh thanh trong qua trnh nap
cac tien trnh vao he thong

P1 (2M)
P2 (4M)

Moi tien trnh se c cap phat


ung theo kch thc yeu cau
khong con internal fragmentation

4/6/2008

Trn Hnh Nhi

27

Dynamic Partitioning: tnh huong


P1 (2M)
P2 (4M)

external
fragmentation

P4 (1.5M)
P3 (8M)
2M
Chon la partition e cap phat cho tien trnh ?

ong thi co nhieu partition t do u ln e cha tien trnh


Dynamic Allocation problem

Tien trnh vao sau khong lap ay cho trong tien trnh trc e lai
external fragmentation

V du Dynamic Partitioning

4/6/2008

Trn Hnh Nhi

29

V du Dynamic Partitioning

4/6/2008

Trn Hnh Nhi

30

Giai quyet van e Dynamic Allocation


Cac chien lc thong dung e chon partition:

First-fit: chon partition t do au tien


Best-fit: chon partition t do nho nhat u cha tien trnh
Worst-fit: chon partition t do ln nhat u cha tien trnh

2M

First Fit

P1
P3 (1M)
8M

Worst Fit

P2
1.5M
4/6/2008

Trn Hnh Nhi

Best Fit
31

Memory Compaction (Garbage Collection)


Giai quyet van e External Fragmentation :

Don cac vung b phan manh lai vi nhau e tao thanh partition lien tuc u ln
e s dung
Chi ph thc hien cao

2M
P1

External
fragmentations

1M
P2
1.5M
4/6/2008

Trn Hnh Nhi

32

Cac mo hnh chuyen oi a ch


Fixed/Dynamic partition la mo hnh to chc nap tien trnh
vao KGVL
Can co mo hnh e chuyen oi a ch t KGC vao KGVL
Linker Loader
Base & Bound

4/6/2008

Trn Hnh Nhi

33

Mo hnh Linker-Loader
test.exe

OS
0x4000

test.exe
jump 0x5000

jump 0x2000

0x0000

0x7000
0x3000
(base)

Tai thi iem Link, gi lai cac a ch logic


V tr base cua tien trnh trong bo nh xac nh c vao thi
iem nap :
a ch physic = a ch logic + base
4/6/2008

Trn Hnh Nhi

34

Nhan xet mo hnh Linker-Loader


Khong can s ho tr phan cng e chuyen oi a ch
Loader thc hien

Bao ve ?
Khong ho tr

Di chuyen sau khi nap ?


Khong ho tr tai nh v
Phai nap lai !

4/6/2008

Trn Hnh Nhi

35

Mo hnh Base & Bound


OS

Test.exe
0x4000

Test.exe
jump 0x2000

jump 0x2000

0x0000

Bound
0x7000
Base
0x3000

Tai thi iem Link, gi lai cac a ch logic


V tr base , bound c ghi nhan vao 2 thanh ghi:
Ket buoc a ch vao thi iem thi hanh => tai nh v c :
a ch physic = a ch logic + base register
Bao ve : a ch hp le [base, bound]
4/6/2008

Trn Hnh Nhi

36

Nhan xet mo hnh Base & Bound


Ket buoc a ch tai thi iem thi hanh => can ho tr cua phan cng
physical
addrs

logical addrs
CPU

MMU
+ base reg

memory

Ho tr
Bao ve
Tai nh v

4/6/2008

Trn Hnh Nhi

37

Khuyet iem cua cap phat lien tuc


Khong co vung nh lien tuc u ln e nap tien trnh ?
Bo tay ...
S dung BNC khong hieu qua!
1M
P1
P3 (9M)
8M
P2
1M
4/6/2008

Trn Hnh Nhi

38

Cac mo hnh to chc bo nh


Cap phat Lien tuc (Contigous Allocation)
Linker Loader
Base & Bound

Cap phat Khong lien tuc (Non Contigous Allocation)


Segmentation
Paging

4/6/2008

Trn Hnh Nhi

39

Cac mo hnh cap phat khong lien tuc


Cho phep nap tien trnh vao BNC nhieu vung nh khong
lien tuc
Khong gian a ch : phan chia thanh nhieu partition
Segmentation
Paging

Khong gian vat ly : co the to chc


Fixed partition : Paging
Variable partition : Segmentation

4/6/2008

Trn Hnh Nhi

40

Segmentation
Lap trnh vien : chng trnh la mot tap cac segments
Mot segment la mot n v chng trnh gom cac oi tng co cung nhom ng
ngha
V du : main program, procedure, function, local variables, global
variables,common block,stack, symbol table, arrays...
Cac segment co the co kch thc khac nhau

Mo hnh Segmentation :
KGC : phan chia thanh cac segment
KGVL : to chc thanh dynamic partitions
Nap tien trnh :
Moi segment can c nap vao mot partition lien tuc, t do, u ln cho
segment
partition nao ? ...Dynamic Allocation !

4/6/2008

Cac segment cua cung 1 chng trnh co the c nap vao nhng partition
khong lien tuc
Trn Hnh Nhi

41

Mo hnh Segmentation
int m;

heap

main ()
{
F1(m);
}
F1(int x)
{ x = 9;
}

stack
data
(m)
code
(main,F1)

Quan ly KGDC
a ch ?
4/6/2008

KGVL
Trn Hnh Nhi

42

To chc Segmentation
ia ch logic :
<segment-number, offset>
a ch physic : <real address>
Chuyen oi a ch : <s,d>
<r>
Chuyen oi a ch vao thi iem thi hanh

MMU thi hanh


S dung Segment Table (bang phan oan) e lu thong tin cap phat BNC, lam c
s thc hien anh xa a ch
Moi tien trnh co mot Segment Table

Segment Table:

So phan t cua Segment Table = So Segment cua chng trnh


Moi phan t cua Segment Table mo ta cho 1 segment, va co cau truc :
base: a ch vat ly trong BNC cua partition cha segment
limit : kch thc segment

Lu tr Segment Table ?

Cache : neu u nho


BNC : Segment-table base register (STBR), Segment-table length register (STLR)

4/6/2008

Trn Hnh Nhi

43

Chuyen oi a ch trong mo hnh Segmentation

Logical Addr
3

no
?

128

Seg# offset

fault
yes

Seg table
base

limit

mem
0x1000

seg

128

0
1
2

4/6/2008

0x1000 512

Trn Hnh Nhi

44

Logical-to-Physical Address Translation in segmentation

4/6/2008

Trn Hnh Nhi

45

Nhan xet Mo hnh Segmentation


Cap phat khong lien tuc => tan dung bo nh hieu qua
Ho tr tai nh v
Tng Segment

Ho tr Bao ve va Chia se c mc module


Y ngha cua mc module ?

Chuyen oi a ch phc tap


a co MMU...

S dung dynamic partition : chu ng


Dynamic Allocation : chon vung nh e cap cho mot segment
First fit, Best fit, Worst fit

External Fragmentation :
Memory Compaction : chi ph cao
4/6/2008

Trn Hnh Nhi

46

Sharing of
Segments:
Text Editor

4/6/2008

Trn Hnh Nhi

47

Paging
Ho tr HH khac phuc bai toan cap phat bo nh ong, va loai bo
external fragmentation
Mo hnh Paging :
KGC : phan chia chng trnh thanh cac page co kch thc bang nhau
Khong quan tam en ng ngha cua cac oi tng nam trong page

KGVL : to chc thanh cac fixed partitions co kch thc bang nhau goi la frame
page size = frame size
Nap tien trnh :
Moi page can c nap vao mot frame t do
Cac pages cua cung 1 chng trnh co the c nap vao nhng frames
khong ke can nhau.
Tien trnh kch thc N pages -> can N frame t do e nap

4/6/2008

Trn Hnh Nhi

48

Mo hnh Paging
int m;

int m;

main ()

main ()

F1(int x)
F1(m);

stack

F1(int x)
{ x = 9;

heap

KGDC
Quan ly a ch ?
4/6/2008

KGVL
Trn Hnh Nhi

49

To chc Paging
ia ch logic :
<page-number, offset>
a ch physic : <frame-number, offset>
Chuyen oi a ch : <p,d>
<f,d>
Chuyen oi a ch vao thi iem thi hanh

MMU thi hanh


S dung Page Table e lu thong tin cap phat BNC, lam c s thc hien anh xa a
ch
Moi tien trnh co mot Page Table

Page Table

So phan t cua Page Table = So Page trong KGC cua chng trnh
Moi phan t cua bang Page Table mo ta cho 1 page, va co cau truc :
frame: so hieu frame trong BNC cha page

Lu tr Page Table ?

Cache : khong u
BNC : Page-table base register (PTBR), Page-table length register (PTLR)

4/6/2008

Trn Hnh Nhi

50

Chuyen oi a ch trong mo hnh Paging


Logical
addr
CPU

Physical
addr

KGVL
f

Page table
4/6/2008

Trn Hnh Nhi

51

Logical-to-Physical Address Translation in Paging

4/6/2008

Trn Hnh Nhi

52

Nhan xet Mo hnh Paging


Loai bo
Dynamic Allocation
External Fragmentation

Trong suot vi LTV


Ho tr Bao ve va Chia se mc page
Internal Fragmentation
Lu tr Page Table trong bo nh
Ton cho
Tang thi gian chuyen oi a ch

4/6/2008

Trn Hnh Nhi

53

Lu tr Page Table
Gia s he thong s dung m bit a ch
Size of KGC = 2m

Kch thc page


Tren nguyen tac tuy y, thc te chon pagesize = 2n
Tai sao ?

So trang trong KGC: #pages = 2m / 2n = 2m-n


V du : 32-bits a ch, pagesize = 4K
KGC = 232 -> #pages= 232-212 = 220 = 1.000.000 pages !
#pages = #entry trong PT

ia ch logic :
Page Table

4/6/2008

(m-n)

Moi tien trnh lu 1 Page Table


So lng phan t qua ln -> Lu BNC
Moi truy xuat a ch se ton 2 lan truy xuat BNC
Trn Hnh Nhi

54

Lu tr Page Table : Tiet kiem khong gian


S dung bang trang a cap
Chia bang trang thanh cac phan nho, ban than bang trang
cung se c phan trang
Ch lu thng trc bang trang cap 1, sau o khi can se nap
bang trang cap nho hn thch hp...
Co the loai bo nhng bang trang cha thong tin ve mien a
ch khong s dung
S dung Bang trang nghch ao
Mo ta KGVL thay v mo ta KGC -> 1 IPT cho toan bo he thong

4/6/2008

Trn Hnh Nhi

55

Bang trang a cap

0
1

Bang trang tuyen tnh


S dung page-number lam ch
muc en Page Table
Phai lu tat ca cac phan t
mo ta tat ca cac trang trong
KGC
Nhng page khong s dung :
lang ph
Nap toan bo PT vao BNC : ton
cho

5
16

2
3
...
p

...
7
8

9
10
11
12
13
14
15

4/6/2008

Trn Hnh Nhi

9
56

Bang trang a cap

0
1
2
3

Page Table cap 2

4
5
0
1

6
7

Page Table cap 1

Page Table cap 2

10
11

Page Table cap 2

12
13
14
15

Page Table cap 2

1
0
2
1
3
2
4
3
5
4
6
5
7
6
8
7
9
8
10
9
11
10
12
11
13
12
12
13
13
14
14
15
15

Mo hnh bang trang 2 cap

4/6/2008

Trn Hnh Nhi

58

V du mo hnh bang trang 2 cap


Mot may tnh s dung a ch 32bt vi kch thc trang 4Kb.
a ch logic c chia thanh 2 phan:
So hieu trang : 20 bits.
Offset tnh t au moi trang :12 bits.

V bang trang lai c phan trang nen so hieu trang lai c


chia lam 2 phan:
So hieu trang cap 1.
So hieu trang cap 2.

4/6/2008

Trn Hnh Nhi

59

V du mo hnh bang trang 2 cap


V the, a ch logic se co dang nh sau:
page number page offset

4/6/2008

pi

p2

10

10

12

Trn Hnh Nhi

60

Bang trang a cap


1

100

0
1

Page Table cap 2

1
0
1

2
3

Page Table cap 1

Page Table cap 2

7
8
9
10

2
3

3
4

Page Table cap 2

11
12
13

14

15

2
3

Page Table cap 2

16
17

Bang trang nghch ao (Inverted Page Table)


S dung duy nhat mot bang trang nghch ao cho tat ca cac tien
trnh
Moi phan t trong bang trang nghch ao mo ta mot frame, co cau
truc
<page> : so hieu page ma frame ang cha ng
<idp> : id cua tien trnh ang c s hu trang

Moi a ch ao khi o la mot bo ba <idp, p, d >


Khi mot tham khao en bo nh c phat sinh, mot phan a ch ao
la <idp, p > c a en cho trnh quan ly bo nh e tm phan t
tng ng trong bang trang nghch ao, neu tm thay, a ch vat ly
<i,d> se c phat sinh

4/6/2008

Trn Hnh Nhi

62

Kien truc bang trang nghch ao

4/6/2008

Trn Hnh Nhi

63

Lu tr Page table : Tiet kiem thi gian


Moi truy cap BNC can truy xuat BNC 2 lan :
Tra cu Page Table e chuyen oi a ch
Tra cu ban than data

Lam g e cai thien :


Tm cach lu PT trong cache
Cho phep tm kiem nhanh

PT ln, cache nho : lam sao lu u ?


Lu 1 phan PT...
Phan nao ?
Cac so hieu trang mi truy cap gan ay nhat...

4/6/2008

Trn Hnh Nhi

64

Translation Lookaside Buffer (TLB)


Vung nh Cache trong CPU c s dung e lu tam thi
mot phan cua PT c goi la Translation Lookaside Buffer
(TLB)
Cho phep tm kiem toc o cao
Kch thc gii han (thng khong qua 64 phan t)

Moi entry trong TLB cha mot so hieu page va frame tng
ng ang cha page
Khi chuyen oi a ch, truy xuat TLB trc, neu khong tm
thay so hieu page can thiet, mi truy xuat vao PT e lay
thong tin frame.
4/6/2008

Trn Hnh Nhi

65

Translation Lookaside Buffer

4/6/2008

Trn Hnh Nhi

66

Chuyen oi a ch vi Paging
virtual address
CPU

f
physical address
f

d
d

TLB
p

f
Memory

f
f
4/6/2008

PT

Trn Hnh Nhi

67

S dung TBL

4/6/2008

Trn Hnh Nhi

68

Bao ve va chia se trong Segmentation va Paging


Bao ve
Segmentation : moi phan t trong ST c gan them cac bit bao
ve
Moi segment co the c bao ve tuy theo ng ngha cua cac oi tng
ben trong segment

Paging : moi phan t trong PT c gan them cac bit bao ve


Moi page khong nhan thc c ng ngha cua cac oi tng ben trong
page, nen bao ve ch ap dung cho toan bo trang, khong phan biet.

Chia se: Cho nhieu phan t trong KGC cung tro en 1 v


tr trong KGVL
Segmentation : chia se mc module chng trnh
Paging : chia se cac trang
4/6/2008

Trn Hnh Nhi

69

Sharing Pages: A Text Editor

Sharing Pages: A Text Editor

ed 3 +
data 1

ed 3 +
data 2

ed 3 +
data 3

Chia se Page 2 = Chia se ca code va data !

anh gia cac mo hnh chuyen oi a ch


Gia s co:
tm : thi gian truy xuat BNC
tc : thi gian truy xuat cache
hit-ration : t le tm thay mot so hieu trang p trong TLB

Cong thc tnh thi gian truy cap thc te (Time Effective
Acess) en mot oi tng trong BNC
bao gom thi gian chuyen oi a ch va thi gian truy xuat d lieu
TEA = (time biding add + time acces memory)

4/6/2008

Trn Hnh Nhi

72

Linker-Loader
TEA = tm

(data)

Base + Bound

TEA = (tc + tc)

(Base & Bound)

Segmentation
TEA =

tc

(ST trong cache)

Paging

Khong s dung TLB :


TEA =
tm

tm

(data)

tm

(data)

(PT trong mem)

tm

(data)

Co s dung TLB :
TEA = hit-ratio ( tc + tm ) + (1- hit-ratio)( tc + tm + tm )
(TLB) (data)

(TLB) (PT) (data)

You might also like