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

bài tập lớn môn Kiến trúc máy tính Chuyên đề 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 (691.68 KB, 52 trang )

Chuyên đề: Bộ nhớ ảo
Giáo viên hướng dẫn: Lương Thị Hồng Lan
Why virtual memory
Người thực hiện: Đinh Hồng Phúc
Khái niệm bộ nhớ ảo
Bộ nhớ ảo là một vùng không gian lưu trữ gần giống như bộ nhớ trong
(RAM) nhưng lại được đạt trên đĩa cứng và khoảng không gian được đạt cố
định
Bộ nhớ ảo là một kĩ thuật cho phép thực hiện của quá trình mà có thể
qua trình đó hoàn toàn không nằm trong bộ nhớ. Việc thực hiện qúa trình
overlay một cách tự động có thể không đòi hỏi người lập trình phải biết điều gì
đang xảy ra

Hầu hết các máy tính đều phải dùng một lượng bộ nhớ RAM để sử dụng
cho CPU (khoảng 128 MB).

Ngoài ra còn phải dùng một lượng RAM nữa cho hệ điều hành

Vì vậy mà để máy hoạt động trơn tru thì cần RAM rất lớn và các nhà phát
triển đã tạo ra một loại bộ nhớ đó là bộ nhớ ảo
Tại sao phải dùng bộ nhớ ảo
Công dụng của bộ nhớ ảo

Cho phép thực hiện cùng một luc nhiều tiến trình (process) mỗi một
tiến trình có một không gian định vị riêng

Đơn giản hóa việc nạo chương trình vào bộ nhớ để thực hành nhờ
vào một cơ chế được gọi là sự tái định địa chỉ (addeass relacation

Bộ nhớ ảo giúp giải phóng người lập trình từ việc quan tâm đến giới
hạn kích thước bộ nhớ


Virtual to physical address
translation
Người thực hiện: Nguyễn Thị Hằng
Nguyễn Thị Hải Yến
I. GiỚI THIỆU.

Bộ nhớ ảo là một kĩ thuật cho phép việc thực thi của quá trình mà
quá trình có thể không hoàn toàn ở bộ nhớ.

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

Bộ nhớ ảo là sự trừu tượng hóa của hệ điều hành nó cung cấp
cho người lập trình một không gian địa chỉ lớn hơn không gian địa
chỉ vật lý thật sự.

Bộ nhớ ảo có thể cài đặt dựa vào 2 kĩ thuật: phân trang theo yêu
cầu và phân đoạn theo yêu
II. BỘ NHỚ ẢO VỚI PHÂN TRANG.
Ý tưởng : Khởi tạo vùng nhớ trên bộ nhớ vật lý để xử lý, lưu
giữ thông tin trong 1 bảng. Mỗi tiến trình đều có 1 bảng riêng gồm N
dòng, N là số trang ảo mà tiến trình cần. Mỗi trang có 2 thuộc tính :
bit và số trang. Trang ảo cùng kích cỡ với trang vật lý. Bộ nhớ tiến
trình được chia thành những trang cùng kích cỡ cố định lưu giữ
thông tin tiến trình để xử lý.
.
1. KHÁI NIỆM.
Phân trang là cấp phát bộ nhớ cho phép không gian địa
chỉ logic của một tiến trình có thể là không liên tục.
Hệ điều hành phải thiết lập một bảng phân trang để ánh xạ

địa chỉ ảo thành địa chỉ thực.
2. CƠ CHẾ.
Bộ nhớ vật lý được chia thành các frame có kích thước cố
định.
Chia bộ nhớ ảo thành các khối cùng cỡ gọi là trang ( page)
Một trang được nạp vào bộ nhớ trong khi có yêu cầu
sử dụng cơ chế phần cứng để hỗ trợ : kết hợp cơ chế hỗ trợ phân
trang và kĩ thuật swapping. bao gồm bảng trang và bộ nhớ ngoài.
Phân trang là sự phân chia rõ ràng giữa tầm nhìn bộ nhớ của người
dùng và bộ nhớ vật lý thật sự.
III. BỘ NHỚ ẢO VỚI PHÂN ĐOẠN.
1.KHÁI NIỆM.
Là phương thức thay vì chia địa chỉ ảo thành những trang kích
thước bằng nhau nhau, địa chỉ thật thành những khung trang, địa
chỉ ảo được chia thành luận lý, đơn vị độ dài hoặc các đoạn.
Một chương trình gồm nhiều phân đoạn.
2. KIẾN TRÚC PHÂN ĐOẠN.
Địa chỉ ảo/logic.
Bảng phân đoạn.
Thanh ghi cơ sở phân đoạn.
Thanh ghi độ dài phân đoạn
Số hiệu phân đoạn.
Cấp phát.
Bảo vệ bộ nhớ.
IV.KẾT HỢP PHÂN TRANG VÀ PHÂN ĐOẠN.
Dùng phân trang để phân đoạn.
Phân đoạn được chia thành các trang có kích thước cố định.
Việc phân trang là trong suốt với người lập trình.
Cơ chế phân đoạn thị trường.

Chương trình được biên dịch theo sơ đồ phân đoạn và có một bảng
quản lý đoạn chung.
Khi chương trình được nạp vào hệ thống, hệ điều hành sẽ cấp phát
cho chương trình các trang cần thiết để chứa đủ các đoạn của
chương trình.
V. CẤU TRÚC BẢNG TRANG NGƯỢC
Khi số lượng trang ảo là rất
lớn thì kích thước bảng trang
có thể một không gian lớn trên
bộ nhớ .

Bảng trang ngược là một giải
pháp khác nhằm làm giảm bộ
nhớ cần thiết để lưu trữ trang,
nhưng tăng thời gian để tìm
bảng trang.
Bảng trang ngược có một mục
nhập cho từng khung hình
trong bộ nhớ chính và do đó
nó có một kích thước cố định.
ta sử dụng CTDL bảng băm để
tăng tốc độ tìm kiếm
VI. KÍCH THƯỚC TRANG.
Kích thước trang nhỏ, số lượng các trang sẽ được tìm thấy
trong bộ nhớ chính.
Các trang cho mỗi quá trình là các bảng trang rất lớn và phần
lớn các bảng trang là trong bộ nhớ ảo.
Bộ nhớ thứ cấp được thiết kế có hiệu quả cho việc truyền khối
lượng lớn dữ liệu vì thế một trang kích thước lớn là tốt hơn.
Kích thước trang được hỗ trợ bởi nhiều kiến trúc, nhiều kích thước

trang cung cấp sự linh hoạt để sử dụng hiệu quả TLB
VII. DỊCH ĐỊA CHỈ VÀ QUẢN LÝ BỘ NHỚ.
Đơn vị quản lý bộ nhớ là thiết bị phần cứng dùng để ánh xạ địa chỉ ảo sang
địa chỉ vật lý.
Dịch địa chỉ ảo:
Một địa chỉ ảo là địa chỉ bộ nhớ dùng để truy cập bộ nhớ riêng của mình.
Bảng trang
Dịch địa chỉ hạt nhân
Khoảng cách của sự gia nhập bảng trang cho mỗi quá trình
Thường là 32 bit gồm khung trang, bảo vệ, sửa đổi, tham chiếu.
TÀI LIỆU THAM KHẢO.
1. Các kiểu bộ nhớ - wikipedia tiếng việt.
2. nlhdh - tuan6.pdf.
3. Giáo trình kiến trúc máy tính - Lương Thị Hồng Lan.
4. Operating System Concepts
5. Giáo trình hệ điều hành - Th.s Nguyễn Phú Trường (ĐH Cần
Thơ- khoa CNTN)
6. Diễn đàn tin học
Pages table
Người thực hiện: Chu Thị Lý
I.KHÁI NIỆM:
Bảng trang là dữ liệu cấu trúc của máy tính để lưu trữ, tạo lập bản đồ
giữa địa chỉ ảo và địa chỉ vật lí.
II.VAI TRÒ CỦA BẢNG TRANG:
Hầu hết mọi quá trình trên máy tính đều làm việc với bộ nhớ. Khi 1 quá
trình cần truy cập đến bộ nhớ thì hệ điều hành sẽ tìm kiếm nơi mà bộ nhớ lưu
trữ.Bảng trang là nơi hệ điều hành lưu trữ ánh xạ địa chỉ ảo đến địa chỉ vật lí.
Cấu trúc bảng trang phản ánh tình trạng 1 trang đang ở bộ nhớ trong
hay bộ nhớ ngoài.
III.QUÁ TRÌNH DỊCH THUẬT:

Khi 1 địa chỉ ảo cần dịch sang địa chỉ vật lí, TLB được tìm kiếm đầu tiên.
Nếu phù hợp thì địa chỉ vật lí được trả lại và quá trình truy cập bộ nhớ lại tiếp
tục. Nếu không phù hợp( TLB lỗi),bộ xử lí sẽ thường tìm kiếm địa chỉ ánh xạ ở
bảng trang xem có tồn tại 1 ánh xạ không.
IV.THẤT BẠI DỊCH:
Tìm kiếm bảng trang thất bại khi:

Bộ nhớ truy cập đến địa chỉ ảo là không hợp lệ.

Các trang không thường trú ở bộ nhớ vật lí. Điều này xảy ra khi các
trang yêu cầu được chuyển ra để nhường chỗ cho các trang khác. Khi đó
trang cần được lấy từ đĩa đưa trở lại bộ nhớ vật lí.
V. BIỆN PHÁP XỬ LÍ:
1. HIÊN TƯỢNG LỖI TRANG:
Khi hệ thống truy xuất đến 1 trang nhưng trang này chưa được nạp vào
nhớ sẽ phát sinh lỗi trang.
2. THAY THẾ TRANG:
Khi xảy ra lỗi trang, hệ thống cần nạp trang thay thế vào bộ nhớ. Tư
tưởng thay thế trang:Nếu không có khung trống, tìm 1 khung hiện không được
dùng và giải phóng nó.Cụ thể:
B1: Tìm vị trí trang muốn trên đĩa.
B2: Tìm khun trang trống: Nếu có dùng nó, nếu không,dùng 1 giải thuật thay
thế trang để chọn khung nạn nhân.
B3: Nạp trang mong muốn vào khung trang trống; thay đổi bảng trang và
khung trang.
B4 Khởi động lại quá trình.
Có nhiều giải thuật thay thế trang khác nhau. Thường chọn giải thuật có tỉ
lệ lỗi trang nhỏ nhất.
Các thuật toán thay thế trang:


Thay thế trang có thời gian tồn tại trong bộ nhớ lâu nhất(FIFO)

Thay thế trang có lần sử dụng cuối cùng cách thời điểm hiện tại lâu nhất
(LRU).

Thay thế trang có tần suất sử dụng thấp nhất (LFU)
2.1 Thay thế trang FIFO:
Là giải thuật đơn giản nhất. Khi 1 trang cần thay thế, trang cũ nhất sẽ được
chọn.
Ưu điểm: dễ hiểu; dễ lập trình.
Nhược điểm: trang được thay thế có thể là trang chứa nhiều dữ liệu cần
thiết nên khi chuyển ra bộ nhớ phụ sẽ nhanh gây ra lỗi trang; giải thuật này
gặp phải nghịch lí BELADY(lỗi trang tăng lên khi số lượng khung sử dụng
tăng).
2.2 THAY THẾ TỐI ƯU HÓA:
Là thay thế trang mà nó không được dùng trong khoảng thời gian lâu
nhất.Thường dùng chủ yếu trong nghiên cứu so sánh.
Ưu điểm: đảm bảo tỉ lệ lỗi trang nhỏ nhất có thể với 1 số lượng khung cố
định.
Nhược điểm: khó cài đặt vì nó yêu cầu kiến thức tương lai về chuỗi tham
khảo.
2.3 THAY THẾ TRANG LRU:
LRU gắn với mỗi trang thời gian sử dụng cuối cùng của trang. Khi 1 trang
cần thay thế, LRU chọn trang không được dùng trong khoảng thời gian lâu
nhất.LRU không gặp phải nghịch lí BELADY.
Cách cài đặt:

Bộ đếm: gắn mỗi mục từ bảng trang 1 trường số lần sử dụng và thêm
CPU 1 đồng hồ vật lí hay bộ đếm. Đồng hồ được tăng cho mỗi tham khảo
bộ nhớ.Khi 1 tham khảo tới trang cần thực hiện, các nội dung của thanh ghi

đồng hồ được chép vào trường số lần sử dụng nhỏ nhất.

Ngăn xếp: Khi 1 trang được tham khảo, nó bị xóa từ ngăn xếp và đặt lên
đỉnh. Đỉnh của ngăn xếp luôn là trang được dùng gần nhất và đáy là trang
LRU. Tốt nhất nên dùng danh sách liên kết kép với con trỏ đầu và đuôi.
2.4 GIẢI THUẬT THAY THẾ TRANG XẤP XỈ LRU
2.4.1 GIẢI THUẬT CÁC BIT THAM KHẢO PHỤ:
Hệ điều hành chuyển bit tham khảo cho mỗi trang được vào bit có trọng
số lớn nhất của byte,dịch các bit còn lại sang phải 1 bit. Xóa bit có trọng

×