Tải bản đầy đủ (.ppt) (91 trang)

Chương 9 Bộ nhớ ảo

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 (4.57 MB, 91 trang )

Giới thiệu về bộ nhớ ảo
Nhóm

VITUAL MEMORY
N I DUNG CHÍNHỘ

Thông tin cơ b n - ả Background

Phân trang theo yêu c u - Demand Pagingầ

Thay trang

Các phân ph i Framesố

Thrashing

Phân đo n theo yêu c u – Demand ạ ầ
Segmentation

Gi i thi u v máy oớ ệ ề ả

Một chương trình sẽ có kích thước lớn hơn
kích thước thực cấp phát cho nó mà không
gây ra lỗi hay không.

Thoải mái lập trình mà không phải suy tư
về bộ nhớ vật lý của máy.

Các quá trình dễ dàng, thoải mái chia sẻ
tập tin và không gian địa chỉ với nhau hay
không và việc tạo ra một quá trình là hoàn


toàn đơn giản.
M c đíchụ

Mô tả các ưu điểm của một hệ thống
bộ nhớ ảo.

Giải thích các khái niệm về nhu cầu
phân trang, thuật toán thay thế trang,
và cấp phát khung trang.

Thảo luận về các nguyên tắc làm việc
của mô hình thiết lập.
Khái ni m B nh oệ ộ ớ ả

Bộ nhớ ảo: là sự tách biệt bộ nhớ luận lý từ bộ nhớ vật lý.

Chỉ một phần chương trình được thực hiện trong bộ nhớ.
◦ Địa chỉ không gian hợp lý do đó có thể lớn hơn nhiều so với không
gian địa chỉ vật lý.

Cho phép các không gian địa chỉ được chia sẻ bởi một số tiến trình.
◦ Cho phép tạo ra nhiều tiến trình hiệu quả.

Bộ nhớ ảo có thể được thực hiện thông qua:
∘ Phân trang theo yêu cầu (Demand paging)
∘ Phân đoạn theo yêu cầu (Demand segmentation)
B nh o l n hơn b nh v t lýộ ớ ả ớ ộ ớ ậ
Bộ nhớ ảo chỉ bị giới hạn bởi dung lượng ổ đĩa
Không gian đ a ch oị ỉ ả
Phân trang theo yêu c uầ


Phân trang theo yêu cầu là quá trình đưa một trang
vào bộ nhớ khi có yêu cầu

Yêu cầu I/O ít
◦ Yêu cầu về bộ nhớ nhỏ

Thực hiện nhanh hơn
◦ Có nhiều tiến trình được xử lý hơn

Chuyển một trang được yêu cầu đến bộ nhớ

Tham chiếu không hợp lệ ⇒ hủy bỏ

Không có trong bộ nhớ ⇒ chuyển vào bộ nhớ
◦ Có trong bộ nhớ thì truy xuất

Bộ hoán vị lười (Lazy swapper): không bao giờ hoán vị một
trang vào trong bộ nhớ trừ khi trang đó được yêu cầu.

Bộ hoán vị giao tiếp với trang qua một bộ trang
Chuy n b nh đư c phân trang ể ộ ớ ợ
t i không gian đĩa liên t cớ ụ
Cơ ch bit h p l - không ế ợ ệ
h p l ợ ệ

Với cơ chế này, chúng ta cần một số dạng phần cứng hỗ trợ
để phân biệt giữa các trang ở trong bộ nhớ và các trang ở trên
đĩa Cơ chế bit hợp lệ-không hợp lệ có thể được dùng cho mục
đích này.


Valid : giá trị này hiển thị rằng trang được tham chiếu tới là
hợp lệ và ở đang trong bộ nhớ.

Invalid : giá trị này hiển thị rằng trang không hợp lệ (nghĩa là
trang không ở trong không gian địa chỉ của quá trình) hoặc
hợp lệ nhưng hiện đang ở trên đĩa.
Cơ ch ph n c ngế ầ ứ

Cơ chế phần cứng hỗ trợ kỹ thuật phân trang theo yêu cầu là sự
kết hợp kỹ thuật phân trang và kỹ thuật swapping :

Bảng trang : cấu trúc bảng trang phải cho phép phản ánh tình
trạng của một trang là đang nằm trong bộ nhớ chính hay bộ nhớ phụ

Bộ nhớ phụ: dùng để lưu trữ những trang không được nạp vào bộ
nhớ chính, bộ nhớ phụ thường dùng là đĩa và vùng không gian đĩa
dùng để lưu trữ tạm các trang trong kỹ thuật swapping được gọi là
không gian swapping.
Bit h p l - không h p lợ ệ ợ ệ

Với mỗi bảng trang sẽ được nhập bit hợp lệ (v) - không hợp lệ (i) ( v
⇒ nằm trong bộ nhớ, i ⇒không nằm trong bộ nhớ )

Ban đầu bit hợp lệ - không hợp lệ được thiết lập để i trên tất cả các
mục.
- Ví dụ một bảng trang được chụp nhanh.
- Trong khi địa chỉ đang dịch, nếu
bit hợp lệ - không hợp lệ được đưa vào
trong bảng trang là i ⇒ lỗi trang (page fault).

B ng trang khi m t s trang không ả ộ ố
có trong b nh chínhộ ớ
Bộ nhớ logic
của tiến trình
kết thúc tại đây
Các trang
không sử
dụng
L i trangỗ

Truy xuất đến một trang được đánh dấu bất hợp lệ sẽ
làm phát sinh lỗi trang (page fault).
 Kiểm tra bảng bên trong cho quá trình này, để xác định tham chiếu là
truy xuất bộ nhớ là hợp lệ hay không hợp lệ.
 Nếu tham chiếu là không hợp lệ, chúng ta kết thúc tiến trình. Nếu nó là
hợp lệ, nhưng chưa có trong bộ nhớ thì mang trang đó vào.
 Đi tìm khung trống (thí dụ, bằng cách mang một trang từ danh sách
khung trống).
 Chúng ta lập thời biểu thao tác đĩa để đọc trang mong muốn vào
khung trang vừa mới được cấp phát
 Khi đọc đĩa hoàn thành, chúng ta sửa đổi bảng bên trong với quá trình
và bảng trang để hiển thị rằng trang bây giờ ở trong bộ nhớ.
 Chúng ta khởi động lại chỉ thị mà nó bị ngắt bởi trap địa chỉ không hợp
lệ. Bây giờ quá trình có thể truy xuất trang mặc dù nó luôn ở trong bộ
nhớ.
Các bư c x lý khi có l i trang ớ ử ỗ
Thi hành phân trang theo yêu
c uầ

Xác suất xảy ra lỗi trang 0 ≤ p ≤ 1.0


Nếu p = 0, không có trang lỗi.

Nếu p = 1, mỗi truy xuất sẽ phát sinh một lỗi trang.

Thời gian thực sự truy xuất bộ nhớ (EAT):
EAT = (1 – p) * memory access + p (page fault overhead
+ swap page out + swap page in + restart overhead )

Trung bình thời gian lỗi trang = 8 milliseconds

EAT = (1 – p) * 200 + p (8 milliseconds)
= (1 – p ) * 200 + p * 8,000,000
= 200 + p x 7,999,800
EAT = (1 – p) * memory access + p (page fault overhead
+ swap page out + swap page in + restart overhead )
Ví d phân trang theo yêu c uụ ầ

Thời gian xử lý page-fault : 25 milliseconds

Thời gian truy xuất bộ nhớ (ma) : 100 nanoseconds
EAT = (1- p) * 100 + p * 25,000,000 nanoseconds
= 100 + 24,999,990 * p nanoseconds

EAT tỷ lệ trực tiếp với tỷ lệ page-fault, nếu p càng
lớn thì EAT càng lớn máy càng chậm.

Muốn hiệu năng giảm dưới 10 %, ta cần có :
110 > 100 + 25,000,000 * p p < 0.0000004
T o ti n trìnhạ ế


Bộ nhớ ảo cho các quyền lợi khác trong lúc tạo
tiến trình

Copy-on-write

Memory-Mapped Files (later)
Copy-on-Write

Copy-on-Write (COW) cho phép cả cha mẹ và
các quá trình ban đầu của con để chia sẻ cùng
một trang trong bộ nhớ.
Nếu quá trình sửa đổi, hoặc một trang chia sẻ,
chỉ sau đó là trang sao chép

COW cho phép tạo ra quá trình hiệu quả hơn là
chỉ các trang đổi sẽ được sao chép

Các trang web miễn phí được cấp phát từ một hồ
bơi của số không trên các trang
Trước khi tiến trình 1 làm thay đổi Trang C
Sau khi tiến trình 1 làm thay đổi Trang C
Điều gì sẽ xảy ra nếu không có khung trống ?

Trang thay thế - sẽ tìm một số trang trong bộ
nhớ, nhưng không được sử dụng, nó sẽ đưa
những trang đó ra ngoài.

Thuật toán


Việc thực thi - muốn một thuật toán cho kết quả trả về là
số lượng lỗi trang tối thiểu.

Cùng một trang nhưng có thể được đưa vào bộ
nhớ nhiều lần.
Thay th trangế

1) Tìm vị trí trang mong muốn trên đĩa

2) Tìm khung trang trống

a) Nếu có khung trống, dùng nó.

b) Nếu không có khung trống, dùng một giải thuật thay thế trang để chọn
khung “nạn nhân”.

c) Viết trang “nạn nhân” tới đĩa; thay đổi bảng trang và khung trang tương
ứng.

3) Đọc trang mong muốn vào khung trang trống; thay đổi bảng
trang và khung trang.

4) Khởi động lại quá trình.
Thay thế trang
Các thuật toán thay thế trang

Mục đích : muốn tỷ lệ lỗi trang thấp nhất

Đánh giá giải thuật bằng cách chạy nó trên một
chuỗi riêng biệt các tham chiếu bộ nhớ và tính số

lỗi trang trên chuỗi đó.

Trong tất cả các ví dụ, chuỗi tham chiếu đưa ra là :
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×