Process cú thể được thực hiện tiếp nếu trang hiện thời cần đến của nú nằm trong bộ
là page frame và cú kớch thước đỳng bằng kớch thước trang. Cỏc page frame bắt đầu từ cỏc địa chỉ (trong bộ nhớ thực) là bội số của kớch thước trang (h.8.9). Cỏc
trang cú thể được nạp vào bất kỳ page frame trống nào.
Hỡnh 8.9 Số trang 0 page frame 0 page frame 1 p 2p 3p page frame 2 Kích th-ớc Vùng địa chỉ 0 p 0 p-1 1 p p 2p-1 2 p 2p 3p-1
Biến đổi địa chỉ động trong hệ thống tổ chức theo trang, thực hiện theo cỏch sau:
Process truy nhập đến địa chỉ ảo v=(p,d). Cơchế ỏnh xạ trang thể hiện trờn h.8.10, đầu tiờn tỡm số trang p trong bảng ỏnh xạ trang và xỏc định được page frame p'
tươngứng với trang p. Địa chỉ thực được tớnh bằng tổng của p' và d.
Hỡnh 8.10
p d
page frame 0
page frame 1 p'
offset d page frame p' Bộ nhớ vật lý
....
Địa chỉ ảo
DAT
Page frame p' t-ơng ứng với trang ảo p
Chỳng ta sẽ xem xột quỏ trỡnh này kỹ hơn. Trong thực tế, thường thỡ khụng phải tất
cả cỏc page của process đều nằm trong bộ nhớ, do đú bảng ỏnh xạ phải chỉ ra là
trang cần truy nhập cú nằm trong bộ nhớ khụng và nằm ở đõu, cũn nếu khụng thỡ
nú nằm đõu trong bộ nhớ ngoài. Trờn h.8.11 biểu diễn một dũng dữ liệu trong bảng
ỏnh xạ trang. Bit flag r chỉ ra sự hiện diện của trang trong bộ nhớ: nếu r=1 tức là
trang nằm trong bộ nhớ thực, cũn nếu r=0 thỡ trang đú hiện khụng cú trong bộ nhớ
thực. Nếu nhưtrang đú khụng cú trong bộ nhớ thỡ s là địa chỉ (vị trớ) của trang
trong bộ nhớ ngoài, cũn nếu nú nằm trong bộ nhớ thỡ p' là số page frame. Chỳ ý
rằng p' khụng phải là địa chỉ thực thật sự. Địa chỉ thực a - của page frame p' được
tớnh bằng a=(p)*(p') (số trang p cú giỏ trị từ 0.1.2.3...)
r s p
Địa chỉ trong bộ nhớ ngoài (nếu không có
trong bộ nhớ)
Page frame (nếu trang có trong bộ
nhớ) Bit flag
Để tiết kiệm bộ nhớ (giảm kớch thước của bảng ỏnh xạ) thỡ mỗi dũng cú thể khụng
cần chứa thụng tin địa chỉ của trang trong bộ nhớ ngoài.
8.6.1 Biến đổi địa chỉ, ỏnh xạ trực tiếp
Chỳng ta sẽ xem xột một số phương phỏp biến đổi địa chỉ trang. Đầu tiờn chỳng ta
sẽ xem xột biến đổi (ỏnh xạ) trực tiếp, được biểu diễn trờn h.8.12
Hỡnh 8.12
Process đưa yờu cầu truy cập địa chỉ ảo v=(p,d). Trước khi process tiếp tục thực
hiện, OS nạp địa chỉ thực của bảng ỏnh xạtrang vào thanh ghi.Địa chỉ cơsở b này được cộng với số trang p, thu được địa chỉ thực b+p của dũng chứa ỏnh xạ trang p.
Dũng này chỉ ra page frame p' của p. Sau đú page frameđược cộng với offset d và
ta cú địa chỉ thực r. Cỏch tớnh này gọi là phương phỏp biến đổi trực tiếp (ỏnh xạ
trực tiếp), bởi vỡ bảng ỏnh xạ trang chứa từng dũng cho mỗi trang bộ nhớ ảo của
process. Nếu process cú n trang bộ nhớ ảo thỡ bảng ỏnh xạ trong phương phỏp ỏnh xạ trực tiếp chứa n dũng liờn tiếp cho cỏc trang từ 0 đến n-1
Địa chỉ ảo cần tớnh và địa chỉ bảng ỏnh xạ đều chứa trong cỏc thanh ghi của BXL
do đú cỏc thao tỏc với chỳng cú thể thực hiện rất nhanh trong vũng xử lý lệnh.
Nhưng cũn bảng ỏnh xạ, kớch thước khỏ lớn, thường nằm trong bộ nhớ, do đú để
truy nhập nú cần một thao tỏc đọc bộ nhớ. Vỡ thời gian đọc dữ liệu từ bộ nhớ lớn
hơn nhiều thời gian xử lý lệnh và chỳng ta cần thờm một lần đọc bộ nhớ để lấy được dũng cần thiết của bảng anhý xạ, điều đú cú nghĩa là phương phỏp ỏnh xạ
trực tiếp cú thể làm giảm tốc độ của hệ thống khi thực hiện chương trỡnh gần hai
lần. Điều đú tất nhiờn khụng chấp nhận được, do đú cần cú cỏc phương phỏp biến đổi địa chỉ nhanh hơn. Nhưng điều đú cũng khụng cú nghĩa là phương phỏp này hoàn toàn khụng thể ỏp dụng, vớ dụ nhưtrong một số hệ thống đó sử dụng phương phỏp này thành cụng bằng cỏch lưu toàn bộ bảng ỏnh xạ trong cache memory cú
tốc độ rất cao.
Một trong số cỏc phương phỏp cải thiện tốc độ của DAT là lưu toàn bộ bảng ỏnh
xạtrang trong associative memory (bộ nhớ kết hợp)- với associative memory thời
gian truy nhập (access cycle) nhỏ hơn nhiều lần so với bộ nhớ thụng thường. Trờn
h.8.13 biểu diễn quỏ trỡnh thực hiện biến đổi địa chỉđộng chỉ dựng associative
memory. Chương trỡnh truy nhập đến địa chỉ ảo v=(p,d). Tất cả cỏc dũng (record)
của bảng (nằm trong associative memory) được so sỏnh đồng thời với p.
Associative memory trả lại giỏ trị p' -địa chỉ của page frame của p. Sau đú cộng p'
với offset d ta cú địa chỉ thực r.
Hỡnh 8.13
Chỳng ta để ý rằng cỏc mũi tờn điđi tới associative memory tới tất cả cỏc bản ghi
(dũng) của bảng. Điều đú cú nghĩa là mỗi phần tử của associative memory được
phõn tớchđồng thời với địa chỉ p. Cũng vỡ tớnh chất này mà bộ nhớ kết hợp rất đắt.
ở đõy chỳng ta lại gặp vấn đề kinh tế: để cú thể ứng dụng thành cụng bộ nhớ ảo
cần cú cơchế biến đổi địa chỉ động (DAT) tốc độ cao. Nhưng dự sao sử dụng
cache memory hay associative memory thỡ đều quỏ đắt. Chỳng ta cần cú một giải
phỏp trung gian nào đú vẫn đảm bảo tốc độ nhưng giỏ cả phải chăng.
8.6.3 Biến đổi địa chỉ trang sử dụng kết hợp associative với ỏnh xạ trực tiếp.
Đến lỳc này chỳng ta luụn định hướng đến cỏc cụng cụ phần cứng để thực hiện bộ
nhớ ảo. Nhưng chỳng ta sẽ xem xột cỏc thiết bị một cỏch logic (trừu tượng) hơn là vật lý. Chỳng ta quan tõm khụng phải là một thiết bị cụ thể (vật lý) mà là tổ chức,
chức năng và tốc độ của chỳng.
Vỡ giỏ của cache memory và associative mrmory quỏ đắt so với RAM do đú chỳng ta cần giải phỏp trung gian để thựchiện ỏnh xạ trang. Trong giải phỏp này chỳng ta
sử dụng associative memory để lưu giữ một phần của bảng ỏnh xạ (h.8.14). Trong
bảng đú chỉ chứa cỏc ỏnh xạ trang được truy nhập gần nhất (về thời gian)-điều đú xuất phỏt từ kết quả tươngđối là trang đóđược truy nhập trong thời gian gần nhất
hoàn toàn cú thể (với xỏc suất lớn) lại được truy nhập tiếp. Trong cỏc hệ thống hiện đại sử dụng phương phỏp kết hợp này, chỉ số tốc độ đạt tới 90% hoặc hơn nữa so
với khi hoàn toàn chỉ dựng associative memory.
Sự biến đổi địa chỉ động được thực hiện theo cỏch sau: Chương trỡnh cần truy nhập
theođịa chỉ ảo v=(p,d). Cơchế biến đổi địa chỉ đầu tiờn sẽ thử tỡm ỏnh xạ của trang ảo p trong phần bảng ỏnh xạ nằm trong associative memory. Nếu nhưỏnh xạ trang
p cúở đú thỡ bảng ỏnh xạ trong associative memory trả lại kết quả số page frame p'
tươngứng với trang ảo p và giỏ trị p' này được cộng với offset d, ta cú được địa chỉ
thực r tươngứng với địa chỉ ảo v=(p,d).
Để đảm bảo chỉ số tốc độ cao, bảng ỏnh xạ trong asociative memory phải khụng
lớn quỏ. Thật vậy, trong thực tế, với cỏc hệ thống sử dụng chỉ 8 hoặc 16 thanh ghi
asociative memory, cú thể đạt được 90% hoặc hơn nữa tốc độ khi sử dụng hoàn
toàn associative memory (khi đú kớch thước associative memory cú thể lớn gấp
hàng chục đến 100 lần). Cú được kết quảđú là nhờ tớnh chất đặc biệt của cỏc
process hoạt động, gọi là tớnh địa phương - locality, hiện tượng này chỳng ta sẽ
xem xột sau.
Sử dụng cơchế kết hợp đú là lời giải kỹ thuật dựa trờn cỏc thụng số kinh tế của cỏc
thiết bị hiện cú.
8.6.4 Chia sẻ (dựng chung) chương trỡnh và dữ liệu trong hệ thống tổ chức trang
Trong cỏc hệ đa nhiệm, đặc biệt cỏc hệ phõn chia thời gian, thường xảy ra trường
hợp nhiều user cựng chạy cỏc chương trỡnh giống nhau. Nếu mỗiuser đều dựng
riờng một bản copy của chương trỡnh thỡ một phần đỏng kể bộ nhớ bị lóng phớ. Rừ
ràng cú một giải phỏp-đú là sử dụng chung (chia sẻ) cỏc trang cú thể chia sẻ.
Sử dụng chung cần phải xử lý , theo dừi cẩn thận để ngăn chặn tỡnh huống khi một
process cố thay đổi dữ liệu mà cựng lỳc đú process khỏc đangđọc. Trong nhiều hệ
thống tiờn tiến, cú sử dụng chung bộ nhớ, thường cỏc chương trỡnh cấu tạo từ hai
phần riờng biệt- vựng chương trỡnh (procedure) và vựng dữ liệu (data). Cỏc
procedure cố định (khụng thayđổi) hay cũn gọi là reentrant procedure, cú thể dựng
chung. Cỏc dữ liệu tĩnh (vớ dụ bảng thụng tin cố định nào đú)- cú thể dựng chung.
Tất cả điều đú núi lờn rằng mỗi trang bộ nhớ cần xỏc định xem cú thể dựng chung
hoặc khụng. Sau khi cỏc trang của mỗi process được chia ra hai loại, trong hệ
thống tổ chức theo trang thuần tuý việc chia sẻ bộ nhớ được biểu diễn trờn h.8.15.
Việc chia sẻ bộ nhớ làm giảm dung lượng bộ nhớ sử dụng và hệ thống cúthể phục
vụ số lượng user lớn hơn. Hỡnh 8.15
8