1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu về cách quản lý bộ nhớ ảo trong các hệ điều hành.

26 1,5K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 2,03 MB

Nội dung

A : Tìm Hiểu Về Bộ Nhớ Ảo I. Cơ chế bộ nhớ ảo II. Định nghĩa về bộ nhớ ảo. III. Tại sao phải dùng bộ nhớ ảo ? IV. Công dụng của bộ nhớ ảo V. Cấu tạo và nguyên lý hoạt động của bộ nhớ ảo. VI. Cài đặt bộ nhớ ảo của windows VII. Cài đặt bộ nhớ ảo sử dụng kỹ thuật phân trang theo yêu cầu VIII. Cơchếphần cứng IX. Lỗi Trang X .Thay thế trang

Trang 1

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.

Trang 2

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ươngtrìnhbịgiớihạnbởikíchthướcbộ nhớvậtlý

Thựctế,trongnhiềutrườnghợp,chúngtakhôngcầnphảinạptoànbộchươngtrì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ôngcầ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ươngtrì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ầnthiế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ưngtráilại,lậptrìnhviênphảibiếtcáchlậptrìnhtheocấutrúcoverlay,vàđiềunàyđòihỏikhánhiều công sức

Để giảiphónglậptrìnhviênkhỏi cácsuytưvề giớihạncủa bộnhớ,màcũngkhôngtăngthêmkhókhăncho côngviệclậptrìnhcủahọ, ngườitanghĩđếncáckỹ thuậttựđộ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).

Trang 3

- 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 đó

Trang 4

III Tại sao phải dùng bộ nhớ ảo ?

- 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ôngbiế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ủaRAM 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

Trang 5

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ựchiện chương trình

Hình 3 : Cấu tạo bộ nhớ ảo.

Trang 6

 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.

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ý.

Trang 7

Hình : Ánh xạ địa chỉ giữa bộ nhớ ảo và bộ nhớ vật lý trong định vị trang

Trang 8

Hình 5 : Ánh xạ các trang ảo vào bộ nhớ vật lý trong cách đị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

Trang 9

- 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 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

Trang 10

VI Cài đặt bộ nhớ ảo của windows

-Để 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êndướ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 , clickchange

+ 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ùychọ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 managedsize.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 nhaucủ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

Trang 11

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ântrang kết hợp với kỹ thuật swapping Một tiến trình được xem như một tậpcá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áctrang đ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

Trang 12

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

Trang 13

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)

Trang 14

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

-Ý 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

Trang 15

Ý 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ế

Trang 16

*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

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

Trang 17

-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 )

-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

Trang 18

vòng )

Hình 10: Hình ảnh thuật toán cho cơ hội lần 2

Trang 19

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

Trang 20

- Để 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

Trang 21

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ộtchươ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 )

Ngày đăng: 27/06/2015, 20:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w