Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
BÀI TẬP LỚN
Môn : Nguyên Lý Hệ Điều Hành
Đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các
hệ điều hành.
Nhóm :
Trịnh Thị Phương.
Nguyễn Hữu Chung.
Nguyễn Văn Chiểu.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
A : Tìm Hiểu Về Bộ Nhớ Ảo
Sinh viên : Trịnh Thị Phương.
BỘ NHỚ ẢO
Bộnhớảolà một kỹthuật hiệnđại giúpchongườidùngđược giảiphónghoàn
toànkhỏi mốibận tâmvềgiớihạn bộnhớ.Ýtưởng,ưuđiểmvànhững vấnđềliênquan
đếnviệctổ chứcbộ nhớ ảo sẽ đượctrình bày dưới đây.
I. Cơ chế bộ nhớ ảo
Nếuđặttoànthểkhônggianđịa chỉvàobộnhớ vậtlý,thìkíchthướccủa chương
trìnhbịgiớihạnbởikíchthướcbộ nhớvậtlý.
Thựctế,trongnhiềutrườnghợp,chúngtakhôngcầnphảinạptoànbộchương
trìnhvàobộnhớvật lýcùngmộtlúc,vì tạimộtthờiđiểmchỉcómộtchỉthịcủa tiếntrình
đượcxửlý.Vídụ,cácchươngtrìnhđềucómộtđoạncodexửlýlỗi,nhưngđoạncode
nàyhầunhưrấtítkhi đượcsửdụngvìhiếmkhixảyralỗi,trongtrườnghợpnày,không
cầnthiếtphảinạp đoạn codexử lý lỗitừ đầu.
Từnhậnxéttrên,mộtgiảiphápđượcđề xuấtlàchophépthựchiệnmộtchương
trìnhchỉđượcnạptừngphầnvàobộnhớvậtlý.Ýtưởngchínhcủagiảiphápnàylàtại
mỗithờiđiểmchỉlưutrữtrongbộnhớ vậtlýcácchỉthịvàdữliệucủachươngtrìnhcần
thiếtchoviệcthihànhtạithờiđiểmđó.Khicầnđếncácchỉthịkhác,nhữngchỉthịmới sẽ
đượcnạpvàobộnhớ,tạivị trítrướcđóbị chiếm giữbởi cácchỉthị naykhôngcòncần
đếnnữa.Vớigiảiphápnày,mộtchươngtrìnhcóthểlớnhơnkíchthướccủavùngnhớ
cấpphátchonó.
Mộtcáchđểthựchiệný tưởngcủagiảipháptrênđâylàsửdụng kỹ thuậtoverlay.
Kỹ thuậtoverlaykhôngđòihỏibấtkỳsựtrợgiúpđặcbiệtnàocủahệđiềuhành,nhưng
tráilại,lậptrìnhviênphảibiếtcáchlậptrìnhtheocấutrúcoverlay,vàđiềunàyđòihỏi
khánhiều công sức.
Để giảiphónglậptrìnhviênkhỏi cácsuytưvề giớihạncủa bộnhớ,màcũng
khôngtăngthêmkhókhăncho côngviệclậptrìnhcủahọ, ngườitanghĩđếncáckỹ thuật
tựđộng,chophépxửlýmộtchươngtrìnhcókíchthướclớnchỉvớimộtvùngnhớcó
kíchthướcnhỏ . Giảiphápđược tìm thấy vớikháiniệmbộ nhớ ảo (virtual memory).
II. Định nghĩa về bộ nhớ ảo.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
- Bộ nhớ ảo là một kỹ thuật hiện đại dùng bộ nhớ phụ lưu trữ chương trình ,
và các phần của chương trình được chuyển vào – ra giữa bộ nhớ chính và bộ
nhớ phụ để cho phép xử lý một tiến trình mà không cần nạp toàn bộ vào bộ
nhớ vật lý. Có thể cài đặt bộ nhớ ảo qua kỹ thuật phân trang theo yêu cầu
( Demand paging ) hoặc phân đoạn theo yêu cầu ( Demand segmentation )
Hay nói cách khác :
- Bộ nhớ ảo mô hình hóa bộ nhớ như một bảng lưu trữ rất lớn và đồng nhất.
- Bộ nhớ ảo là sự tách biệt bộ nhớ luận lý từ bộ nhớ vật lý.
- Người sử dụng chỉ nhìn thấy và làm việc trong không gian địa chỉ ảo, việc
chuyển đổi sang không gian vật lý do hệ điều hành thực hiện với sự giúp đỡ
của cả cơ chế phần cứng cụ thể nào đó.
Ta cần :
- Cầnkếthợp kỹ thuậtswappingđểchuyểncácphầncủachươngtrìnhvào-ragiữa
bộ nhớchính vàbộ nhớphụ khicầnthiết.
- Nhờviệctáchbiệtbộnhớảovàbộnhớvậtlý,cóthểtổchứcmộtbộnhớảocó
kíchthướclớnhơn bộ nhớvậtlý.
- Bộnhớảochophépgiảmnhẹcôngviệccủalậptrìnhviênvìhọkhôngcầnbận
tâmđến giớihạncủavùng nhớvậtlý,cũngnhư khôngcầntổchứcchươngtrình
theocấu trúcoverlays.
Hình 1 : Bộ nhớ ảo
III. Tại sao phải dùng bộ nhớ ảo ?
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
- Hầu hết những máy tính trước đây đều có khoảng 64-128MB RAM thừa để
sử dụng cho CPU. Và dĩ nhiên, lượng RAM đó đều không đủ để chạy tất cả
các chương trình mà người dùng muốn chúng chạy cùng lúc.
Ví dụ: nếu bạn chạy chương trình windows, 1 chương trình e-mail, trình
duyệt web ( mozilla firefox ) và 1 chương trình word cùng 1 lúc thì bộ nhớ
Ram 64MB sẽ không thể đủ. Nếu không có bộ nhớ ảo , máy tính của bạn sẽ
yêu cầu đóng tất cả các chương trình và bật ứng dụng mới. Với bộ nhớ ảo,
máy tính của bạn có thể tìm những vùng RAM chưa được sử dụng và copy
chúng vào ổ cứng. Chính việc làm đó sẽ giải phóng chỗ trống trong RAM để
chạy ứng dụng mới. Bởi việc làm này là hoàn toàn tự động nên bạn sẽ không
biết chuyện gì đang xảy ra và nó làm cho bạn cảm thấy máy tính của mình
có dung lượng RAM vô hạn. Và cũng do dung lượng ổ cứng rẻ hơn chip của
RAM rất nhiều nên bộ nhớ ảo sẽ mang lại cho bạn những lợi thế về kinh tế .
IV. Công dụng của bộ nhớ ảo
- Cho phép thực hiện cùng lúc nhiều tiến trình ( process ), mỗi tiến trình có
một không gian định vị riêng.
- Đơn giản hóa việc nạp chương trình vào bộ nhớ để thi hành nhờ một cơ chế
được gọi là sự tái định địa chỉ (address relocation ). Cơ chế này cho phép
một chương trình có thể được thi hành khi nó nằm ở bất cứ vị trí nào trong
bộ nhớ.
- Bộ nhớ ảo phóng đại bộ nhớ chính thành bộ nhớ luận lý cực lớn khi được
hiển thị bởi người dùng. 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ớ. Bộ nhớ ảo cũng cho phép các quá trình dễ
dàng chia sẻ tập tin và không gian địa chỉ, cung cấp cơ chế hữu hiệu cho
việc tạo quá trình.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Hình 2 : mô tả bộ nhớ ảo lớn hơn bộ nhớ vật lý.
V. Cấu tạo và nguyên lý hoạt động của bộ nhớ ảo.
1. Cấu tạo bộ nhớ ảo :
- Bộ nhớ ảo bao gồm bộ nhớ trong và bộ nhớ ngoài được phân tích thành khối
để có thể cung cấp cho mỗi chương trình một số khối cần thiết cho việc thực
hiện chương trình.
Hình 3 : Cấu tạo bộ nhớ ảo.
Hình ảnh trên minh họa một chương trình gồm 4 khối A,B,C,D nằm
trong 4 trang, trong đó khối D nằm trong ổ đĩa ảo.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
• Phân loại bộ nhớ ảo:
- Loại với khối có dung lượng cố định gọi là trang.
- Loại có chiều dài thay đổi gọi là đoạn.
2. Nguyên lý hoạt động của bộ nhớ ảo
- Vị trí của một khối trong bộ nhớ trong Bộ nhớ ảo khi có thất bại, tương ứng
với việc phải thâm nhập vào ổ đĩa. Việc thâm nhập này rất chậm nên người
ta chọn phương án hoàn toàn phối hợp trong đó các khối (trang) có thể nằm
ở bất kỳ vị trí nào trong bộ nhớ trong. Cách này cho tỉ lệ thất bại thấp.
Hình 4 : Ánh xạ các trang ảo vào bộ nhớ vật lý.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Hình : Ánh xạ địa chỉ giữa bộ nhớ ảo và bộ nhớ vật lý trong định vị trang
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Hình 5 : Ánh xạ các trang ảo vào bộ nhớ vật lý trong cách định
vị đoạn.
- Địa chỉ vật cuối cùng được xác lập bằng cách cộng địa chỉ đoạn và địa chỉ
trong đoạn ( độ dời trong đoạn ) .
- Hầu hết các hệ điều hành đều cố gắng thay thế khối ít dùng gần đây nhất
( LRU_Least recent utilized ) vì nghĩ rằng đây là khối ít cần nhất.
- Chiến thuật ghi luôn là một sự ghi lại nghĩa là thông tin chỉ được viết vào
trong khối của bộ nhớ trong. Khối có thay đổi thông tin, được phép vào đĩa
từ nếu khối náy bị thay thế.
• Ưu điểm :
- Mỗi chương trình sẽ không còn bị ràng buộc bởi không gian bộ nhớ vật lý
sẵn có. Người dùng có thể viết chương trình có không gian địa chỉ ảo lớn,
đơn giản hóa tác vụ lập trình.
- Vì mỗi chương trình người dùng có thể lấy ít hơn bộ nhớ vật lý nên nhiều
chương trình hơn có thể được thực thi tại một thời điểm.
- Nó mang lại những lợi ích lớn cho người dùng mà không phải chi phí cao.
- Do yêu cầu ít nhập/xuất hơn để nạp hay hoán vị mỗi chương trình người
dùng trong bộ nhớ vì thế mỗi chương trình người dùng sẽ chạy nhanh hơn.
- Bộ nhớ ảo thực hiện tác vụ lập trình dễ dàng hơn nhiều vì người lập trình
không cần lo lắng về lượng bộ nhớ vật lý có nữa hay về mã gì có thể được
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
thay thế trong việc phủ lắp; thay vào đó, người lập trình có thể quan tâm
vấn đề được lập trình.
• Nhược điểm :
- Bộ nhớ ảo không dễ cài đặt và về thực chất có thể giảm năng lực nếu nó
được dùng thiếu thận trọng.
- Sử dụng bộ nhớ ảo càng nhiều, càng làm giảm tuổi thọ của ổ cứng.
Sinh viên : Nguyễn Hữu Chung
VI. Cài đặt bộ nhớ ảo của windows
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
-Để sử dụng và thiết lập bộ nhớ ảo của windows , thực hiện theo các bước
sau:
+ Click My computer chọn properties tiếp đến chọn đến thẻ advanced bên
dưới mục performance, click settings.
+ Tại cửa sổ tiếp theo chọn advanced ,bên dưới mục virtual memory , click
change .
+ Tại đây bên dưới mục driver (tên các phân vùng trên đĩa cứng ),có thể tùy
chọn các phân vùng ổ cứng .
+ Lựa chọn tốt nhất là lựa chọn khác ngoài phân vùng hệ thống . Hai thông
số đã được thiết lập sẵn initial size và maximum size có thể thay đổi 2 thông số
này tùy thuộc vào dung lượng của ổ cứng .
+ Khuyến cáo nên để hai giá trị này bằng nhau và bằng 1.5 lần dung lượng bộ
nhớ hệ thống . nếu ko để windows tự thiết lập. khi chọn system managed
size.Nhấn set và ok để kết thúc cài đặt .
-Bộ nhớ ảo thường được thực hiện với kỹ thuật phân trang theo yêu cầu
(demand paging). Cũng có thể sử dụng kỹ thuật phân đoạn theo yêu cầu
(demandsegmentation) để cài đặt bộ nhớ ảo, tuy nhiên việc cấp phát và thay thế
các phân đoạn phức tạp hơn thao tác trên trang, vì kích thước không bằng nhau
của các đoạn.
VII. Cài đặt bộ nhớ ảo sử dụng kỹ thuật phân trang theo yêu cầu
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
.
Hình 6 . Cài đặt bộ nhớ ảo theo kỹ thuật phân trang
1. Một hệ thống phân trang theo yêu cầu là hệ thống sử dụng kỹ thuật phân
trang kết hợp với kỹ thuật swapping. Một tiến trình được xem như một tập
các trang, thường trú trên bộ nhớ phụ (thường là đĩa). Khi cần xử lý, tiến trình
sẽ được nạp vào bộ nhớ chính. Nhưng thay vì nạp toàn bộ chương trình, chỉ
những trang cần thiết trong thời điểm hiện tại mới được nạp vào bộ nhớ. Như
vậy một trang chỉ được nạp vào bộ nhớ chính khi có yêu cầu.
2. Với mô hình này, cần cung cấp một cơ chế phần cứng giúp phân biệt các
trang đang ở trong bộ nhớ chínhvà các trang trên đĩa. Có thể sử dụng lại bit
valid-invalid nhưng với ngữ nghĩa mới.
3. - valid :trang tương ứng là hợp lệ và đang ở trong bộ nhớ chính.
4. - invalid:hoặc trang bất hợp lệ (không thuộc về không gian địa chỉ của tiến
trình )hoặc trang hợplệ nhưng đang được lưu trên bộ nhớ phụ.
5. Một phần tử trong bảng trang mộ tả cho một trang không nằm trong bộ nhớ
chính, sẽ được đánh dấu invalid và chứa địa chỉ của trang trên bộ nhớ phụ.
VIII. 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 của
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
cơ chế hỗ trợ kỹ thuật phân trang và kỹ thuật swapping.
- B ảng t r
ang: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ụ: Bộ nhớ phụ lưu trữ những trang không được nạp vào bộ nhớ
chính.
- Bộ nhớ phụ thường được sử 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.
IX. Lỗi Trang.
1. Lỗi trangTruy xuất đến một trang được đánh dấu invalid sẽ làm phát sinh một
lỗi trang (page fault).
2.Chuyển đổi địa chỉ tương đối thành tuyệt đối:
- Bước 1: MMU tìm trong bảng trang để lấy các thông tin cần thiết cho việc
chuyển đổi địa chỉ.
- Bước 2: nếu trang đang được yêu cầu truy xuất là invalid, MMU sẽ phát
sinh một ngắt để báo cho hệ điều hành. Hệ điều hành sẽ xử lý lỗi trang như sau
:Kiểm tratruy xuất đến bộ nhớ là hợp lệ hay bất hợp lệNếu truy xuất bất hợp lệ
(trang không thuộc tiến trình) : kết thúc tiến trìnhNếu hợp lệ : đến bước 3
- Bước 3:Tìm vị trí chứa trang muốn truy xuất trên đĩa.Tìm một khung trang
trống trong bộ nhớ chính ,nếu tìm thấy đến bước 4.Nếu không còn khung trang
trống, chọn một khung trang "nạn nhân " (victim) và chuyển trang "nạn nhân " ra
bộ nhớ phụ , rồi đến bước 4
- Bước 4: Chuyển trang muốn truy xuất từ bộ nhớ phụ vào vào khung trang
trống đã chọn.
- Bước 5: Cập nhật nội dung bảng trang.
- Bước 6: Tái kích hoạt tiến trình người sử dụng
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
-
Hình 7 : Quản lý lỗi trang
X .Thay thế trang.
Nếu không có khung trang trống, thì mỗi khi xảy ra lỗi trang cần phải thực hiện
hai thao tác chuyển trang : chuyển một trang ra bộ nhớ phụ và nạp một trang khác
vào bộ nhớ chính. Có thể giảm bớt số lần chuyển trang bằng cách sử dụng thêm
một bit "cập nhật" (dirty bit). Giá trị của bit được phần cứng đặt là 1 nếu nội dung
trang có bị sửa đổi. Khi cần thay thế một trang, nếu bit cập nhật có giá trị là 1 thì
trang này cần được lưu lại trên đĩa, ngược lại, nếu bit cập nhật là 0, nghĩa là trang
không bị thay đổi, thì không cần lưu trữ trang trở lại đĩa.
1. Thời gian truy xuất bộ nhớ
Gọi p là xác suất xảy ra một lỗi trang (0<= p <=1):
p = 0 : không có lỗi trang nào
p = 1 : mỗi truy xuất sẽ phát sinh một lỗi trang
- Thời gian để thực hiện một lần truy xuất bộ nhớ là: Effective Access Time
(EAT)
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
TEA = (1-p)ma + p ([swap out ] + swap in)ma (memory access) là thời gian truy
xuất bộ nhớ
X . Các thuật toán thay thế trang
*Ý Tưởng : chọn mục tiếu là trang sau khi thay thế sẽ gây ra ít lỗi trang nhất .
1. Các thuật toán :
- FiFo.
-TỐI ƯU
-LRU
-XẤP XỈ LRU
* FIFO
-Ý tưởng : -Ghi nhận thời điểm một trang được đưa vào bộ nhớ
-Thay thế trang ở trong bộ nhớ lâu nhất
-Trang ở trong bộ nhớ lâu nhất sẽ được chọn (vào trước ra trước)
-không cần phải ghi nhận thời điểm mỗi trang được nạp vào bộ nhớ
- mà chỉ cần quản lý các trang trong bộ nhớ bằng một danh sách FIFO, khi đó trang
đầu danh sách sẽ được chọn để thay thế
-Thuật toán FIFO dễ hiểu, dễ cài đặt. Tuy nhiên nếu trang được chọn là trang
thường xuyên được sử dụng, thì khi bị chuyển ra bộ nhớ phụ sẽ nhanh chóng gây
ra lỗi trang.
-Số lượng lỗi trang có thể tăng lên khi số lượng khung trang sử dụng tăng. Hiện
tượng này gọi là nghịch lý Belady
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7
0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0
1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1
* * * * * * * * * * * * * * *
Hình 8 : Thay thế trang FIFO
*TỐI ƯU
Ý tưởng : -Thay thế trang sẽ được sử dụng lâu nhất trong tương lai .
- Thực tế không dự đoán được chuổi các trang truy xuất trong tương lai
* LRU( least recently used)
Ý tưởng : -Ghi nhận thời điểm cuối cùng trang được truy cập
- Thay thế trang chưa được truy cập lâu nhất
- Dùng quá khứ gần để dự đoán tương lai
- FIFO: thời điểm nạp vào
- Tối ưu thời điểm sẽ truy cập
- LRU đòi hỏi phần cứng hỗ trợ nhiều ( Biến bộ đếm , Stack)
- Cách cài đặt : *Sử dụng bộ đếm
- mỗi phần tử trong bảng trang có một thành phần ghu nhận thời điểm truy xuất
mới nhất .
-CPU có một bộ đếm , tăng khi có truy xuất đến bộ nhớ
- Cập nhật thời điểm theo bộ đếm
-Trang có thời điểm truy xuất nhỏ sẽ bị thay thế
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
*SỬ DỤNG STACK.
-Lưu các số hiệu trang
- Khi một trang đước truy xuất chuyển sô hiệu trang lên đầu stack
-Thay thế trang có số hiệu ở đáy stack
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
* * * * * * * * * * * *
Hình 9: Hình ảnh giải thuật thay thế trang RUL
* THUẬT TOÁN XẤP XỈ RLU
-Sử dụng nhiều bit tham khảo
- Cho cơ hội lần 2
-Bit tham khảo được thêm vào mỗi phần tử trong bảng trang
-Ban đầu =0 , có truy xuất=1
-Sau mỗi chu kì cho trước kiểm tra bít này và án nó trở lại bằng 0
-Biết được trang nào đã truy xuất gần đây nhưng không biết thứ
tự
-Một bít tham khỏa chỉ biết thông tin của một chu kì nhiều bit
tham khảo sẽ biets thông tin của nhiều chu kì .
-Sử dụng thêm 8 bít tham khảo cho mỗi phần tử trong bảng trang
-Sau một chu kì một ngắt được phát sinh( HDH sẽ đặt bít tham khảo cho trang đó
là 0 hoặc 1 ) vào bit cao nhất trong 8 bit , loại bỏ bit cuối cùng (thấp nhất )
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
-8 bit sẽ lưu trữ tình hình truy xuất đến 8 trang trong 8 chu kì gần nhất
Nếu xem là số nguyên không dấu thì trang được thay thế là trang có số tương ứng
nhỏ nhất
* THUẬT TOÁN CƠ HỘI THỨ 2.
-Sử dụng một bít tham khảo duy nhất
-Ý tưởng như FIFO có cải tiến
-Nếu bit tham khảo =0 thay thế trang
-Ngược lại cho trang này cơ hội thứ 2 đặt bit tham khảo về 0. Chon
trang FIFO kế tiếp . trang cho cơ hooin thứ 2 đặt vào cuối hàng đợi
-Một trang được cho cơ hội lần thứ 2 sẽ không bị thay thế trước khi
các trang khác bị thay thế có thể cài đặt bằng một xâu vòng (danh sách liên kết
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
vòng )
Hình 10: Hình ảnh thuật toán cho cơ hội lần 2
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Sinh viên : Nguyễn Văn Chiểu .
XI .Quản lý bộ nhớ ảo phân đoạn
* Ý tưởng
- Quan niệm không gian địa chỉ là một tập hợp phân đoạn (segments).Các phân
đoạn là những phần bộ nhớ khác nhau và có lien hệ logic với nhau.Mỗi phân đoạn
đều có một tên gọi (số hiệu đoạn ) và một đọ dài khác nhau.người dung sẽ thiết lập
mỗi địa chỉ với hai giá trị :số hiệu phân đoạn và offset
Hình1: Mô hình phân đoạn bộ nhớ
* Nguyên lý hoạt động
- Khi lập trình,chương trình được phép truy suất dữ liệu trong nhiều không gian
khác nhau,mỗi không gian được gọi segment.Mỗi segment có kích thước thay đổi
được theo thời gian,ô nhớ đầu tiên của mỗi segment luôn bắt đầu từ 0.
- Các segment của trương trình thường nằm trên đĩa cứng,khi cần thiết segment sẽ
được nạp vào 1 vùng thích hợp trong RAM.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
- Để quản lý quá trình ánh xạ các trang ảo chủa chương trình vào các trang thật,hệ
điều hành dung 1 bảng đặc tả cho mỗi chương trình,bảng này có số phần tử = số
trang ảo của các trương trình tương ứng,mỗi phần tử trong bảng là một record
chứa các thong số trang ảo tương ứng.
* Cơ chế MMU trong kĩ thuật phân đoạn
Cần phải xây dựng một ánh xạ để chuyển đổi các địa chỉ 2 chiều được người dung
định nghĩa thành địa chỉ vật lí một chiều.Sự chuyển đổi này được thực hiện qua
một bản phân đoạn.Mỗi thành phần trong bản phân đoạn bao gồm một thanh ghi
nền và một thanh ghi giới hạn.Thanh ghi nền lưu trữ địa chỉ vật lí nơi bắt đầu phân
đoạn trong bộ nhớ,trong thanh ghi giới hạn sự đặc tả chiều dài của phân đoạn.
*Quy trình đổi địa chỉ ảo sang địa chỉ thật
- Mỗi địa chỉ ảo là một bộ (s,d) :
+, Số hiệu phân đoạn s: được sử dụng như mục đến bảng phân đoạn
+, Địa chỉ tương đố i d: có gí trị từ 0 đến giới hạn chiều dài của phân đoạn.Nếu địa
chỉ hợp lệ ,nó sẽ được cộng giá trị chứa trong thanh ghi nền để phát sinh địa chỉ vật
lí tương ứng.
Bảng 2:Cơ chế phần cứng hỗ trợ phân đoạn
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Bảng 3:hệ thống phân đoạn
* Cài đặt bảng phân đoạn
- Có thể sử dụng các thanh ghi để lưu trữ bảng phân đoạn nếu số lượng phân đoạn
nhỏ.Trong trường hợp chương trình bao gồm quá nhiều phân đoạn,bảng phân đoạn
phải được lưu trong bộ nhớ chính.Một thanh ghi nền bảng phân đoạn (STBR) chỉ
đến địa chỉ bắt đầu của bảng phân đoạn.Vì số lượng phân đoạn sử dụng trong một
chương trình biến động ,cần phải sử dụng them một thanh ghi đặc tả kích thước
của bảng phân đoạn(STLR)
- Với một địa chỉ logic (s,d),trước tiên số hiệu phân đoạn s phải được kiểm tra tính
hợp lệ( s< STLR).Kế tiếp ,cộng giá trị s với STBR để có được địa chỉ của phần tử
thứ s trong bảng phân đoạn (STBR +s ).Địa chỉ cuối cùng là (STBR +s +d )
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Hình 4:Sử dụng STBR,STLR và bảng phân đoạn
* Bảo vệ phân đoạn
- Một ưu điểm khác của cơ chế phân đoạn là khả năng đặc tả thuộc tính bảo vệ cho
mỗi phân đoạn.vì mỗi phân đoạn biểu diễn cho một phần của chương trình với ngữ
nghĩa được người dùng xác đinh,người sử dụng có thể biết được một phân đoạn
chứa đựng những gì bên trong,do vậy họ có thể đặc tả các thuộc tính bảo vệ thích
hợp cho từng phân đoạn
- Cơ chế phần cứng phụ trách chuyển đổi địa chỉ bộ nhớ sẽ kiểm tra các bit bảo vệ
được gắn với mỗi phần tử trong bảng phân đoạn để ngăn chặn các thao tác bất hợp
lệ đến phân đoạn tương ứng
* Chia sẻ phân đoạn
-Một ưu điểm khác của kỹ thuật phân đoạn là khả năng chia sẻ ở mức độ phân
đoạn.Nhờ khả năng này,các tiến trình có thể chia sẻ với nhau từng phần chương
trình,không nhất thiết phải chia sẻ toàn bộ chương trình như trường hợp phân
trang.Mỗi tiến trình có một bảng phân đoạn riêng,một phân đoạn được chia sẻ khi
các phần tử trong bảng phân đoạn của hai tiến trình khác nhau cùng chỉ đến một vị
trí phần tử duy nhất.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
Hình 5:chia sẻ code trong hệ phân đoạn
XII .Quản lý bộ nhớ ảo phân đoạn và phân trang
* Ý tưởng
- Qui trình đổi địa chỉ ảo sang địa chỉ thật ở phân đoạn có khuyết điểm trong
trường hợp quản lý segemnt có kích thước lớn : ta khó hoặc không thể tìm được
vùng RAM trống chứa nó. Vì lý do này, trong thực tế, người ta phải kết hợp 2
phương pháp quản lý phân trang và phân đoạn lại, đây là phương pháp mạnh nhất
hiện nay
- Không gian địa chỉ là một tập hợp các phân đoạn,mỗi phân đoạn được chia thành
nhiều trang.Khi một tiến trình được đưa vào hệ thống thì hệ điều hành sẽ cấp phát
cho tiến trình các trang để chứa đủ các phân đoạn của tiến trình hay nói cách khác
hệ thống sẽ quản lý mỗi segment phần mềm như là 1 không gian ảo gồm nhiều
trang ảo, mỗi lần chương trình truy xuất ô nhớ nằm trong trang ảo nào của segment
nào, hệ thống sẽ tìm cách nạp nó
* Cơ chế MMU trong kỹ thuật phân đoạn kết hợp phân trang
- Để hỗ trợ kỹ thuật phân đoạn,cần có một bảng phân đoạn,nhưng mỗi phân đoạn
cần có một bảng trang riêng biệt.
* Qui trình đổi địa chỉ ảo sang địa chỉ thật
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
- Mỗi địa chỉ logic là một bộ ba (s,p,d) trong đó:
+,Số hiệu phân đoạn s: sử dụng như chỉ mục đến phần tử tương ứng trong bảng
phân đoạn
+,số hiệu trang p: sử dụng như chỉ mục đến phần tử trong bảng trang của phân
đoạn
+,địa chỉ tương đối trong trang d: kết hợp với địa chỉ bắt đầu của trang để tạo ra địa
chỉ vật lí mà trình quản lí bộ nhớ sử dụng
Hình 6: mô hình kết hợp phân đoạn và phân trang
- Và sau đây là mô hình để thể hiện cơ chế phần cứng của sự phân đoạn kết hợp
phân trang :
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.
Nhóm đề tài : Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.
XIII.Kết luận
- Bộ nhớ ảo là một kỹ thuật cho phép không gian địa chỉ luận lý được ánh xạ vào
bộ nhớ vật lý nhỏ hơn. Bộ nhớ ảo cho phép những quá trình cực lớn được chạy và
cũng cho phép cấp độ đa chương được gia tăng, tăng khả năng sử dụng CPU.
• - Để thiết lập và sử dụng bộ nhớ ảo của windows, ta làm như sau :
- B1: click chuột phải vảo My Computer, chọn Properties.
- B2: tiếp theo chọn đến thẻ Advanced, bên dưới mục Performance, click
Settings
- B3: tại cửa sổ tiếp, chọn thẻ Advanced và bên dưới mục Virtual Memory,
click Change.
- Tại đây, bên dưới mục Driver, bạn có các tùy chọn để chọn lựa các phân
vùng ổ cứng của mình, nhưng lựa chọn tốt nhất là chọn lựa khác ngoài phân
vùng hệ thống để thiết lập bộ nhớ ảo.
- Tại đây đã được thiết lập sẵn 2 thông số Initial size và Maximum size, bạn
có thể thay đổi lại thông số này tùy thuộc vào dung lượng trống còn có trên
ổ cứng. Đây là dung lượng mà bộ nhớ ảo sẽ dùng để chứa dữ liệu tạm thời
trong quá trình làm việc.
- Sau khi thiết lập xong nhấn Set và Ok để xác nhận quá trình.
Nhóm : Trịnh Thị Phương; Nguyễn Hữu Chung; Nguyễn Văn Chiểu.