Tải bản đầy đủ (.pdf) (5 trang)

Giáo trình phân tích khả năng ứng dụng chiến lược theo điều phối cung cấp processor cho bo mạch p5 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (539.13 KB, 5 trang )

bước sau:
 Trích ra m-n bít trái nhất (thấp nhất) của địa chỉ logic để xác định số
hiệu trang cần truy xuất.
 Sử dụng số hiệu trang ở trên để chỉ đến phần tử tương ứng trong bảng
trang của tiến trình, để xác định khung trang tương ứng, ví dụ là k.
 Địa chỉ vật lý bắt đầu của khung trang là k x 2
n
, và địa chỉ vật lý của
byte cần truy xuất là số hiệu trang cộng với giá trị offset. Địa chỉ vật lý
không cần tính toán, nó dễ dàng có được bằng cách nối số hiệu khung trang
với giá trị offset.













Trong sơ đồ ví dụ ở trên, chúng ta có địa chỉ logic là: 0000010111011110,
với số hiệu trang là 1, offset là 478, giả định rằng trang này thường trú trong bộ nhớ
chính tại khung tang 6 = 000110. Thì địa chỉ vật lý là khung trang số 6 và offset là
478 = 0001100111011110.
 Nhận xét về kỹ thuật phân trang:
 Có thể thấy sự phân trang được mô tả ở đây tương tự như sự phân
vùng cố định. Sự khác nhau là với phân trang các phân vùng có kích thước


nhỏ hơn, một chương trình có thể chiếm giữa nhiều hơn một phân vùng, và
các phân vùng này có thể không liền kề với nhau.
 Kỹ thuật phân trang loại bỏ được hiện tượng phân mảnh ngoại vi,
nhưng vẫn có thể xảy ra hiện tượng phân mảnh nội vi khi kích thước của tiến
trình không đúng bằng bội số kích thược của một trang, khi đó khung trang
cuối cùng sẽ không được sử dụng hết.
 Khi cần truy xuất đến dữ liệu hay chỉ thị trên bộ nhớ thì hệ thống phải
000001 0111011110

10 bÝt
Offset

16 bÝt ®Þa chØ logic

6 bÝt Page

000101
000110
011001
000110 0111011110


+

16 bÝt ®Þa chØ vËt


Bảng trang
của tiến trình


Không gian bộ nhớ vật


Hình 3.7b: Sơ đồ chuyển đổi địa chỉ logic (page) – vật lý
0
2
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d

o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w

e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
cần một lần truy xuất đến bảng trang, điều này có thể làm giảm tốc độ truy
xuất bộ nhớ. Để khắc phục hệ điều hành sử dụng thêm một bảng trang cache,
để lưu trữ các trang bộ nhớ vừa được truy cập gần đây nhất. Bảng trang
cache này sẽ được sử dụng mỗi khi CPU phát ra một địa chỉ cần truy xuất.
 Mỗi hệ điều hành có một cơ chế tổ chức bảng trang riêng, đa số các hệ
điều hành đều tạo cho mỗi tiến trình một bảng trang riêng khi nó được nạp
vào bộ nhớ chính. Bảng trang lớn sẽ tốn bộ nhớ để chứa nó.
 Để bảo vệ các khung trang hệ điều hành đưa thêm một bít bảo vệ vào
bảng trang. Theo đó mỗi khi tham khảo vào bảng trang để truy xuất bộ nhớ
hệ hống sẽ 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ó hay không.
 Sự phân trang không phản ánh được cách mà người sử dụng nhìn nhận
về bộ nhớ. Với người sử dụng, bộ nhớ là một tập các đối tượng chương trình và dữ
liệu như các segment, các thư viện, và các biến, các vùng nhớ chia sẻ, stack, .
Vấn đề đặt ra là tìm một cách thức biểu diễn bộ nhớ sao cho nó gần với cách nhìn
nhận của người sử dụng hơn. Kỹ thuật phân đoạn bộ nhớ có thể thực hiện được
mục tiêu này.
III.2.8. Kỹ thuật phân đoạn đơn (Simple Segmentation)
Trong kỹ thuật này không gian địa chỉ bộ nhớ vật lý được chia thành các phần
cố định có kích thước không bằng nhau, được đánh số bắt đầu từ 0, được gọi là các
phân đoạn (segment). Mỗi phân đoạn bao gồm số hiệu phân đoạn và kích thước của
nó. Không gian địa chỉ của các tiến trình kể cả các dữ liệu liên quan cũng được chia
thành các đoạn khác nhau và không nhất thiết phải có kích thước bằng nhau, thông
thường mỗi thành phần của một chương trình/tiến trình như: code, data, stack,
subprogram, , là một đoạn.
Khi một tiến trình được nạp vào bộ nhớ thì tất cả các đoạn của nó sẽ được
nạp vào các phân đoạn còn trống khác nhau trên bộ nhớ. Các phân đoạn này có thể
không liên tiếp nhau. Xem hình 3.8.
Để theo dõi các đoạn của các tiến trình khác nhau trên bộ nhớ, hệ điều hành
sử dụng các bảng phân đoạn (SCT: Segment control Table) tiến trình, thông thường
một tiến trình có một bảng phân đoạn riêng. Mỗi phần tử trong bảng phân đoạn
gồm tối thiểu 2 trường: trương thứ nhất cho biết địa chỉ cơ sở (base) của phân đoạn
mà đoạn chương trình tương ứng được nạp, trường thứ hai cho biết độ dài/giới hạn
(length/limit) của phân đoạn, trường này còn có tác dụng dùng để kiểm soát sự truy
xuất bất hợp lệ của các tiến trình. Các bảng phân đoạn có thể được chứa trong các
thanh ghi nếu có kích thước nhỏ, nếu kích thước bảng phân đoạn lớn thì nó được
chứa trong bộ nhớ chính, khi đó hệ điều hành sẽ dùng một thanh ghi để lưu trữ địa
chỉ bắt đầu nơi lưu trữ bảng phân đoạn, thanh ghi này được gọi là thanh ghi STBR:
Click to buy NOW!
P

D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c

k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o

c
u
-
t
r
a
c
k
.
c
o
m
Segment table base register. Ngoi ra vỡ s lng cỏc on ca mt chng
trỡnh/tin trỡnh cú th thay i nờn h iu hnh dựng thờm thanh ghi
STLR:Segment table length register, ghi kớch thc hin ti ca bng phõn
on. H iu hnh cng t chc mt danh sỏch riờng theo dừi cỏc segment cũn
trng trờn b nh.


Data1: seg2

1820
base limit




0
870


320


Code1
320k

Code2:
seg0
1470
1
117
0
150


Stack1:
150k


1320
2
182
0
150


Data1:
150k

Stack1:

seg1
1170
Segment
table

Các
segment



1020
của
process 1

của
process1





Code1:
seg0
870
Bas
e
lim
it

Code2

320k

Stack2:s
eg2
720
0
147
0
320




570
1
250

320


Data2
320k


2
720

150



Stack2:
150k

Data2:
seg1
250
Segment
table

Các
segment



100
của
process 2

của
process2
Không gian địa chỉ
của bộ nhớ vật lý


(a) (b) (c)
Hỡnh 3.8: Cỏc on ca 2 tin trỡnh process 1 v process 2 (a), c np
vo b nh (b), v 2 bng on tng ng ca nú (c).
Trong k thut ny a ch logic m CPU s dng phi gm 2 thnh phn: S
hiu on (segment): cho bit s hiu on tng ng cn truy xut. a ch tng
Click to buy NOW!

P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a

c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d

o
c
u
-
t
r
a
c
k
.
c
o
m
i trong on (Offset): giỏ tr ny s c kt hp vi a ch bt u ca on
xỏc nh a ch vt lý ca ụ nh cn truy xut. Vic chuyn i t a ch logic
sang a ch vt lý do processor thc hin.
Hỡnh minh ho:
Segment0
750 b
Segment1 1950 b







Nu cú mt a ch logic gm n + m bớt, thỡ n bớt trỏi nht l s hiu segment,
m bớt phi nht cũn li l offset. Trong vớ d minh ho sau õy thỡ n = 4 v m = 12,
nh vy kớch thc ti a ca mt segment l 2

12
= 4096 byte. Sau õy l cỏc bc
cn thit ca vic chuyn i a ch:
Trớch ra n bớt trỏi nht ca a ch logic xỏc nh s hiu ca phõn
on cn truy xut.
S dng s hiu phõn on trờn ch n phn t trong bng phõn
on ca tin trỡnh, tỡm a ch vt lý bt u ca phõn on.
So sỏnh thnh phn offset ca a ch logic, c trớch ra t m bớt phi
nht ca a ch logic, vi thnh phn length ca phõn on. Nu offset >
length thỡ a ch truy xut l khụng hp l.
a ch vt lý mong mun l a ch vt lý bt u ca phõn on cng
vi giỏ tr offset.
Trong s vớ d sau õy, ta cú a ch logic l: 0001001011110000, vi s
hiu segment l 1, offset l 752, gi nh segment ny thng trỳ trong b nh
chớnh ti a ch vt lý l 0010000000100000, thỡ a ch vt lý tng ng vi a
ch logic trờn l: 0010000000100000 + 001011110000 = 0010001100010000.






0001 001011110000

Địa chỉ logic:
Segment # = 1; Offset = 752

752

Hỡnh 3.9a: Cỏc phõn on trờn b nh v a ch logic

6 bít Seg

0001 001011110000

10 bít
Offset

16 bít địa chỉ logic

001011101110 0000010000000000
011110011110 0010000000100000

1000011000110 00010000100010000
0010001100010000







+

16 bít địa chỉ vật


Bảng phân đoạn

độ dài


địa chỉ cơ sở

0
1
2
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o

c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e

r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m








 Nhận xét về kỹ thuật phân đoạn:
 Vì các segment có kích thước không bằng nhau nên sự phân đoạn
tương tự như sự phân vùng động. Sự khác nhau là với sự phân đoạn một

chương trình có thể chiếm giữ hơn một phân vùng, và các phân vùnh này có
thể không liền kề với nhau. Sự phân vùng loại trừ được sự phân mảnh nội vi,
nhưng như sự phân vùng động nó vẫn xuất hiện hiện tượng phân mảnh ngoại
vi.
 Sự phân trang là không tường minh đối với người lập trình, trong khi
đó sự phân đoạn là tương minh đối với người lập trình, và nó cung cấp một
sự thuận lợi để người lập trình tổ chức chương trình và dữ liệu. Người lập
trình hoặc trình biên dịch có thể gán các chương trình và dữ liệu đến các
đoạn nhớ khác nhau.













 Tương tự như trong kỹ thuật phân vùng động, kỹ thuật này cũng phải
giải quyết vấn đề cấp phát động, ở đây hệ điều hành thường dùng thuật toán
STLR
STBL
>

+



>


s

d

+


l

b

y

y

s

B¶ng ph©n
®o¹n

Bộ nhớ vật lý

®Þa chØ
logic

địa chỉ vật lý


Hình 3.9c: Sơ đồ chuyển địa chỉ có sử dụng STLR, STBR và so sánh offset


d

Segmentation

Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w

.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i

e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m

×