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ĩ th
Trang 1Chuyên đề: Bộ nhớ ảo
Giáo viên hướng dẫn: Lương Thị Hồng Lan
Trang 2Why virtual memory
Người thực hiện: Đinh Hồng Phúc
Trang 3Khá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
Trang 4 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
Trang 5Cô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ớ
Trang 6Virtual to physical address
translation
Người thực hiện: Nguyễn Thị Hằng
Nguyễn Thị Hải Yến
Trang 7I 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
Trang 9II 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ý
.
Trang 112 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ự
Trang 13III 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ớ
Trang 14IV.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.
Trang 15V 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
Trang 16VI KÍCH THƯỚC TRANG.
Kích thước trang nhỏ, số lượng các trang sẽ được tìm thấy
Trang 17VII 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
Trang 18TÀ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
Trang 19Pages table
Người thực hiện: Chu Thị Lý
Trang 20I.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
Trang 21IV.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
Trang 222 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
Trang 23Cá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).
Trang 242.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
Trang 252.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
Trang 26số thấp nhất.Thanh ghi 8 bit có thể chứa lịch sử của việc sử dụng trang đối với 8 lần gần nhất Nếu thanh ghi dịch chứa 000000000 thì trang không được dùng cho 8 thời điểm, một trang được dùng ít nhất 1 lần mỗi thời điểm
sẽ có giá trị thanh ghi là 11111111
Một thanh ghi với giá trị thanh lịch sử là 110001000 được dùng gần đây hơn 1 trang với 01110111 Nếu chúng ta thông dịch 8 bit này như số nguyên không dấu, trang với số thấp nhất là trang LRU và nó có thể được thay thế
Số lượng bit lịch sử có thể là khác nhau và có thể được chọn để thực hiện cập nhật nhanh nhất có thể
2.4.2 GIẢI THUẬT CƠ HỘI THỨ HAI:
Là trường hợp đặc biệt của FIFO Khi 1 trang được chọn, ta xét bit tham khảo của nó Nếu giá trị này =0, ta sẽ thay thế trang này
Trang 27Tuy nhiên nếu giá trị bằng 1, ta cho trang đó cơ hội thứ 2, bit tham khảo được xóa.Một trang nhận cơ hội thứ 2 sẽ không được thay thế cho đến khi mọi trang được thay thế Trang giữ bit tham khảo không bao giờ bị thay thế.
Cài đặt như 1 hàng đợi vòng 1 con trỏ hiển thị trang nào được thay thế tiếp theo.Khi 1 khung được yêu cầu, con trỏ tăng đến khi tìm được với bit tham khảo 0 Trong trường hợp xấu nhất khi tất cả các bit được đặt, con trỏ xoay
vòng suốt toàn hàng đợi.Thay thế cơ hội thứ 2 trỏ thành FIFO nếu mọi bit đều được đặt
2.4.3 GIẢI THUẬT CƠ HỘI THỨ 2 NÂNG CAO:
Xét 2 bit tham khảo Các trường hợp xảy ra là:
(0,0): không được dùng mới đây, không được sửa đổi – là trang tốt nhất
để thay thế
Trang 28 (0,1): không được dùng mới đây, được sửa đổi -không tôt lắm để thay thế
(1,0)được dùng mới đây,ko được sửa đổi
(1,1) được dùng mới đây, được sửa đổi - trang này cần viết ra đĩa trước khi nó được thay thế
Khi cần thay thế trang, ta thay thế trang đầu tiên được gặp trong trường
hợp mà trang đó đang thuộc về Ta thay thế trang đầu tiên được gặp Có thể phải quoét hàng đợi vòng nhiều lần trước khi tìm 1 trang thay thế
2.4.4 THAY THẾ TRANG TRÊN CƠ SỞ ĐẾM:
Là giải thuật ít dùng,yêu cầu trang dc thay thế có số đếm nhỏ nhất Còn giải thuật thay thế trang được dùng thường xuyên nhất thay thế trang có giá trị đếm lớn nhất, nghĩa là trang được sử dụng nhiều nhất
Trang 29VI SỰ BẢO VỆ TRONG BẢNG TRANG:
Sự bảo vệ bộ nhớ thường được thực hiện bởi các bit bảo vệ gắn với mỗi khung Thường các bit này được giữ trong bảng trang Mỗi
tham chiếu tới bộ nhớ sẽ tìm khắp bảng trang để đọc, viết hay chỉ đọc Mỗi bit thường gắn với mỗi mục từ trong bảng trang:một bit hợp lệ- không hợp lệ Khi bit đặt là hợp lệ tức trang được gán trong không gian địa chỉ bộ nhớ vật lí là hợp lệ Nếu bit đặt là không hợp lệ tức trang đó không ở trong không gian địa chỉ vật lí của quá trình Hệ điều hành thiết lập các các bit này cho mỗi trang để cho phép có hay không cho phép truy xuất tới trang này.
VII CẤU TRÚC BẢNG TRANG:
Để hiểu cấu trúc bảng trang ta sẽ xem xét 1 số kĩ thuật thông dụng
để xây dựng cấu trúc bảng trang:
Trang 301 BẢNG TRANG PHÂN CẤP:
Hầu hết các máy tính hiện đại hỗ trợ 1 không gian địa chỉ vật lí lớn nên bảng trang quá lớn -> gây tốn bộ nhớ, tìm kiếm chậm Rõ ràng ta không
muốn cấp phát bảng trang liên tiếp nhau
Giải pháp là chia bảng trang thành những phần nhỏ hơn.Không gian địa chỉ logic được quản lí bởi bảng trang ở nhiều cấp
Một kĩ thuật đơn giản nhất là bảng trang 2 cấp,ngoài ra còn có cấp 3,cấp
4 Đối với các hệ thống có không gian địa chỉ vật lí 64 bit, cơ chế phân trang
2 cấp không còn phù hợp
2 BẢNG TRANG ĐƯỢC BĂM:
Khi không gian địa chỉ lớn hơn 32 bit ta thường dùng bảng băm, với giá trị băm là số trang ảo Mỗi mục từ trong bảng trang chứa
Trang 31một danh sách liên kết của các phần tử Danh sách này băm tới cùng 1 vị trí(để quản lí sự đụng độ) Mỗi phần tử chứa 3 trường (a)số trang ảo, (b)giá trị khung trang được ánh xạ và con trỏ địa chỉ chỉ tới phần tử kế tiếp trong danh sách liên kết.
Quá trình thực hiện: số trang ảo trong địa chỉ ảo được băm tới bảng băm
Số trang ảo được so sánh tới trường (a) trong phần tử đầu tiên của danh
sách liên kết Nếu có phần tử trùng khớp, khung trang tương ứng,trường(b) được dùng để hình thành địa chỉ vật lí mong muốn Ngược lại, các mục từ tiếp theo trong danh sách liên kết được tìm kiếm số trang ảo trùng khớp
3 BẢNG TRANG ĐẢO:
Mỗi bảng trang chứa rất nhiều mục từ Các bảng này có thể tiêu tốn 1
lượng lớn bộ nhớ vật lí, để giải quyết vấn đề này ta có thể sử dụng bảng
trang đảo
Trang 32Cấu tạo của bảng trang đảo là 1 bảng kích thước cố định với số lượng
hàng tương đương với số lượng khung trong bộ nhớ
Hoạt động của bảng trang đảo khác hoạt động của bảng trang chuẩn.Vì chỉ
1 bảng trang trong hệ thống còn có nhiều không gian địa chỉ khác ánh xạ bộ nhớ vật lí, nên các bảng trang đảo thường yêu cầu 1 định danh không gian được lưu trong mỗi mục từ của bảng trang Lưu trữ định danh không gian địa chỉ đảm bảo rằng ánh xạ của trang vật lí cho 1 quá trính xác định tới khung trang vật lí tương ứng
Ưu điểm: LÀm giảm dung lượng bộ nhớ cần để lưu các bảng trang
Nhược điểm: làm tăng lượng thời gian cần cho việc tìm kiếm bảng khi có 1 tham chiếu xảy ra Vì bảng trang đảo lưu bởi địa chỉ vật lí nhưng tìm kiếm xảy
ra trên địa chỉ ảo, toàn bộ bảng trang có thể cần được tìm kiếm sự trùng khớp
Trang 33VIII TRANG DỮ LIỆU BẢNG:
Các hệ thống bảng trang đơn giản thường duy trì 1 bảng trang và và bảng khung Bảng khung chứa thông tin về những khung được ánh xạ
Bảng trang chứa ánh xạ giữa địa chỉ ảo của 1 trang và địa chỉ của 1 khung vật lí Các trang có thể được trải ra trong và ngoài của bộ nhớ vật lí và đĩa Bit cập nhật cho phép tối ưu hóa hiệu suất Một trang trên đĩa đó được chuyển vào bộ nhớ vật lí,sau đó đọc từ, tiếp theo chuyển ra lại không cần ghi lại vào đĩa kể từ khi các trang không thay đổi
Bit cập nhật được thiết lập, chỉ ra rằng trang được viết phải được viết lại ở chỗ sao lưu Nó yêu cầu việc sao lưu trữ lại 1 bảng trang của trang trước nó được chuyển ra trong bộ nhớ
Trang 34khi bit cập nhật không được sử dụng, việc sao lưu chỉ cần trang được chuyển
ra có kích thước lớn ở mọi thời điểm.Khi bit cập nhật được sử dụng, mọi thời điểm 1 số trang sẽ tồn tại cả ở bộ nhớ vật lí và lưu trữ lại
Trong hệ điều hành, không gian địa chỉ hoặc thông tin id quá trình là rất cần thiết, nhờ đó mà hệ thống điều hành bộ nhớ ảo biết được những trang nào gần với quá trình nào
Bảng trang phải cung cấp ánh xạ bộ nhớ ảo khác nhau cho 2 quá trình Điều đó được thực hiện bằng cách gán cho 2 quá trình nhận dạng địa chỉ bản đồ riêng biệt, hoặc bằng sử dụng quá trình id
IX ĐA BẢNG TRANG:
Bảng trang ngược giữ 1 danh sách các ánh xạ được thiết lập từ mọi khung trong bộ nhớ vật lí Đây là 1 sự lãng phí lớn Thay vào đó ta có thể lập bảng trang cấu trúc chứa ánh xạ từ trang ảo Nó được thực hiện bằng cách
Trang 35giữ cho trang chứa bộ nhớ ảo Đa bảng trang có thể giữ 1 vài trang nhỏ hơn
để thiết lập cái mới khi thật cần thiết Khi đó mỗi bảng trang khác nhỏ hơn liên kết với nhau bởi bảng trang chủ, từ đó tạo cây dữ liệu cấu trúc
Một địa chỉ ảo ở đây có thể được chia làm 3 phần: chỉ số của bảng trang gốc, chỉ số trong bảng trang phụ và phần bù trong trang đó
X Bảng trang ảo:
Việc tạo ra cấu trúc bảng trang có chứa ánh xạ cho mỗi trang ảo của không gian địa chỉ ảo là rất lãng phí Để giải quyết vấn đề này, ta có thể đặt bảng trang trong bộ nhớ ảo và để hệ thống bộ nhớ ảo quản lí bộ nhớ cho bảng trang Tuy nhiên cấu trúc bảng trang phải luôn ở trong bộ nhớ vật lí để chống lại các trang lỗi, tìm phần quan trọng của bảng trang nhưng không ở trong bảng trang