1. Trang chủ
  2. » Thể loại khác

Chương 9: Bộ nhớ ảo

71 13 0

Đ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

Tiêu đề Bộ Nhớ Ảo
Tác giả Hoàng Thị Thúy Vy, Phạm Thị Phương, Nguyễn Đức Phan
Định dạng
Số trang 71
Dung lượng 2,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

No Slide Title Chương 9 Bộ nhớ ảo Hoàng Thị Thúy Vy Phạm Thị Phương Nguyễn Đức Phan Chương 9 Bộ nhớ ảo  Thứ cấp  Nhu cầu phân trang  Copy on write  Trang thay thế  Sự phân cấp của các khung  Sự[.]

Trang 1

Chương 9: Bộ nhớ ảo

Hoàng Thị Thúy Vy Phạm Thị Phương Nguyễn Đức Phan

Trang 3

Mục tiêu:

 Chỉ ra lợi ích của bộ nhớ ảo

 Giải thích các khái niệm về nhu cầu phân trang,những thuật toán thay thế trang,và sự phân chia các khung trang.

 Thảo luận nguyên tắc thiết lập mô hình làm việc.

Trang 4

Thứ cấp

Bộ nhớ ảo_bộ nhớ logic được phân cấp từ bộ nhớ vật lý

 Một phần chương trình thực hiện phải được nạp vào bộ nhớ

 Vì thế không gian địa chỉ logic phải lớn hơn nhiều so với không gian địa chỉ vật lý

 Không gian địa chỉ cho phép được chia sẻ bởi nhiều tiến trình

 Cho phép tạo ra các tiến trình một cách có hiệu quả

 Bộ nhớ ảo có thể được thực hiện thông qua 2 kỹ thuật:

 Phân trang theo yêu cầu(kết hợp với swap)

 Phân đoạn theo yêu cầu(kết hợp với swap)

Trang 5

Bộ nhớ ảo lớn hơn bộ nhớ vật lý

Bộ nhớ ảo Bộ nhớ ánh xạ

Trang 6

Không gian địa chỉ ảo

Trang 7

Thư viện chia sẻ sử dụng bộ nhớ ảo

Các trang chia sẻ

Trang 8

Phân trang theo yêu cầu

 Chỉ nạp một trang vào bộ nhớ khi nó cần thiết

 Ít nhu cầu vào ra hơn

 Chiếm ít bộ nhớ hơn

 Xử lý nhanh hơn

 Có thể xử lý được nhiều tiến trình hơn cùng 1 lúc

 Trang cần thiết  tham chiếu đến nó

 Tham chiếu không hợp lệ  huỷ bỏ

 Không có trong bộ nhớ đưa vào bộ nhớ

Lazy swapper-Bộ hoán vị lười – chỉ đưa một trang vào bộ nhớ khi nó

cần thiết

 Việc hoán đổi thực hiện với từng trang riêng lẻ được gọi là

pager(Bộ phân trang)

Trang 9

Qúa trình trao đổi một trang bộ nhớ với không gian đĩa bên cạnh

Chuyển bộ nhớ đc phân trang tới không gian

đĩa liên tục

Trang 10

i i

….

Frame # valid-invalid bit

Bảng trang

Trang 11

Bảng trang khi một số trang không có trong bộ nhớ

chính

Trang 12

Lỗi trang

 Nếu có tham chiếu đến một trang, lần đầu tiên tham chiếu đến trang đó sẽ được

giữ lại ở OS :

lỗi trang

1 Hệ điều hành sẽ tìm kiếm ở những trang khác để quyết định:

 Tham chiếu không hợp lệ  huỷ bỏ

 Không có trong bộ nhớ

2 Lấy khung trang trống

3 Đưa trang vào khung trang trống đó

4 Cập nhật lại bảng trang

5 Thiết lập lại bit hợp lệ = v

6 Khởi động lại chỉ thị gây ra lỗi trang ở trên.

Trang 13

Lôĩ trang (Cont.)

 Khởi động lại chỉ thị

 Di chuyển khối

 Tự động tăng/giảm một vị trí

Trang 14

Các bước giải quyết một lỗi trang

Trang 15

Sự hoạt động của phân trang theo yêu cầu

Tỷ lệ lỗi trang nằm trong khoảng 0  p  1.0

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

Nếu p = 1, mỗi tham chiếu là 1 lỗi.

 Effective Access Time (EAT):thời gian truy nhập

có hiệu quả)

EAT = (1 – p) x thời gian truy nhập

+ p (tham chiếu gặp lỗi trang

+ đưa trang ra + nạp trang vào + tái kích hoạt tiến trình)

Trang 16

Ví dụ về phân trang theo yêu cầu

 Thời gian truy nhập bộ nhớ = 200 ns

 Thời gian trung bình chữa lỗi trang = 8 ms

Trang 17

Tạo ra tiến trình

 Bộ nhớ ảo cho phép các tiện ích khác trong khi tạo ra tiến trình:

-Copy-on-write

- Các file bộ nhớ ánh xạ (sau).

Trang 19

Tiến trình 1 trước khi sửa đổi

trang C

Trang 20

Tiến trình 1 sau khi sửa đổi

trang C

Trang 21

Điều gì sẽ xảy ra nếu không có khung trang trống?

 Trang thay thế– tìm kiếm các trang trong bộ nhớ ,nếu trang đó không cần thiết tại thời điểm hiện tại thì đưa ra bộ nhớ ngoài (swap-out)

 Thuật toán

 Thực hiện – hướng tới 1 thuật toán có tối thiểu số lỗi trang

 Cùng 1 trang có thể được đưa vào bộ nhớ vài lần

Trang 23

Nhu cầu thay thế trang

Trang 24

Thay thế trang cơ sở

1 Tìm vị trí của trang cần tìm trên đĩa

2 Tìm 1 trang trống:

- Nếu có khung trang trống,sử dụng nó

- Nếu không có khung trang trống,sử dụng thuật toán trang thay thế để chọn ra 1 khung trang thoả mãn

3 Nạp trang vừa tìm thấy vào khung trang trống; cập nhật lại trang và bảng

trang.

4 Tái kích hoạt tiến trình.

Trang 25

Thay thế trang

Trang 26

Thuật toán thay thế trang

1 chuỗi sự kiện tham chiếu bộ nhớ (chuỗi tham chiếu) và tính số lỗi trang trong chuỗi này

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Trang 27

Đồ thị biểu diễn số lỗi trang đối với số khung trang

Trang 28

Thuật toán vào trước ra trước (FIFO)

 Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

 3 khung trang (3 trang được nạp vào bộ nhớ ở mỗi thời điểm của tiến trình)

 4 khung trang

 Belady’s Anomaly: more frames  more page faults

1 2 3

1 2 3

4 1 2

5 3 4

9 page faults

1 2 3

1 2 3

5 1 2

4

5 10 page faults 4

Trang 29

Thuật toán thay thế trang FIFO

Trang 30

FIFO minh họa cho nghịch lý Belady

Đường cong lỗi trang cho thay thế trên chuỗi tham khảo

Trang 31

Thuật toán Optinal (tối ưu)

dụng nhất trong tương lai

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

1 2 3

4 6 page faults

4 5

Trang 32

Thuật toán thay thế trang Optimal (tối ưu)

Trang 33

Thuật toán Least Recently Used (LRU)

 Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

1 2 3 4

1 2

5

4

1 2 5

3

1 2

4

3

Trang 34

Thuật toán thay thế trang LRU

Trang 35

Thuật toán LRU (tiếp)

các trang với 1 hình thức liên kết kép:

Trang 36

Sử dụng 1 stack để ghi lại lần tham chiếu gần đây nhất của trang

Trang 37

Thuật toán tính gần đúng LRU

Trang 38

Thuật toán thay thế trang : khả năng thứ 2 ( sử dụng

clock)

Trang 39

Thuật toán đếm

được tham chiếu

Thuật toán LFU: thay thế trang có bộ đếm

counter nhỏ nhất

Thuật toán MFU: căn cứ vào đối số của trang

có bộ đếm counter nhỏ nhất mà dường như chắc chắn là được đưa vào và chưa được sử dụng

Trang 40

Cấp phát khung trang

chuyển SS MOVE:

Trang 41

Cấp phát tĩnh (Fixed Allocation)

trang và 5 tiến trình, cấp phát cho mỗi tiến trình 20 khung trang.

thước của tiến trình

m S

s p

a m

s S

p s

i i

i

i

i i

frames of

number total

process of

size

59

64 137

127

5

64 137

10 127 10 64

2 1 2

i

Trang 42

Cấp phát ưu tiên (Priority Allocation)

quyền ưu tiên

của nó

độ ưu tiên thấp nhất

Trang 43

Cấp phát toàn cục và cục bộ

(Global vs Local Allocation)

Thay thế toàn cục (Global replacement) –

tiến trình chọn 1 khung trang thay thế từ tập hợp tất cả các khung trang; tiến trình có thể chọn 1 khung từ tiến trình khác

Thay thế cục bộ (Local replacement) –

mỗi tiến trình chỉ chọn 1 khung trang từ tập hợp các khung trang được cấp phát của nó

Trang 44

thêm mức độ đa chương

thất bại (Thrashing)  1 tiến trình đang bận

swap trang vào và ra

Trang 45

Sự trì trệ (tiếp)

Trang 46

Yêu cầu phân trang và sự trì trệ

Mô hình vị trí

trí khác

 kích thước của vị trí > toàn bộ kích thước của bộ nhớ

Trang 47

Vị trí trong 1 mô hình tham chiếu bộ nhớ

Trang 48

Mô hình tập làm việc

   mô hình làm việc cửa sổ  cố định một số trang tài liệu tham chiếu Example: 10,000 lệnh,hướng dẫn

WSS i (mô hình làm việc của tiến trình Pi) =

tổng số trang tham chiếu gần nhất  (thay đổi trong thời gian)

 Nếu  quá nhỏ sẽ ko chứa đựng được toàn bộ các địa phương

 Nếu  quá lớn sẽ chỉ chứa đựng được 1 số địa phương

 Nếu  =   sẽ chứa đựng toàn bộ chương trình

D =  WSS i  tổng nhu cầu khung

Nếu D > m  Trì trệ (Thrashing)

Chính sách nếu D > m, đình chỉ 1 trong các tiến trình

Trang 49

Mô hình thiết lập làm việc

Tham chiếu bảng trang

Trang 50

Theo dõi việc quản lý chế độ làm việc

tham chiếu bằng 0

việc ở chế độ thiết lập trang

đơn vị thời gian

Trang 51

Lược đồ tần số trang lỗi

Giới hạn cao

Trang 52

Bộ nhớ ánh xạ tập tin

 Bộ nhớ ánh xạ tập tin I/O cho phép các tệp I/O được đối xử như sự truy cập bộ nhớ thường trình bằng ánh xạ một khối đĩa đến 1 trang trong bộ nhớ

 Một file đọc ban đầu sử dụng trang yêu cầu Một phần kik

cỡ trang của file dc đọc từ file hệ thống vào trang vật lý Tập tin đến sau đọc/ghi đến/từ dc đối xử như truy cập bộ nhớ thông thường

 Truy nhập tập tin file I/O thông qua bộ nhớ đơn giản hơn

đọc() ghi() lời gọi hệ thống

 Một số tiến trình cũng cho phép tham chiếu đến cùng một tập tin trong trang trên bộ nhớ để dc chia sẻ

Trang 54

Bộ nhớ ánh xạ tập tin trong Windows

Bộ nhớ chia sẻ

Bộ nhớ ánh xạ tập tin

Trang 55

Bộ nhớ ánh xạ tập tin trong JAVA

Trang 57

Hệ thống bạn bè

 Phân bố bộ nhớ phân đoạn nhất quán với kích thước cố định của các trang vật lý kề nhau

 Việc cấp phát bộ nhớ sử dụng bộ cấp phát lũy thừa 2

 Kích thước khối nhớ được cấp phát sẽ là lũy thừa 2

 Kích thước đó sẽ là kích thước lũy thừa 2 cao nhất gần đó

 Trong trường hợp không đủ bộ nhớ để cấp phát thì nó

sẽ chia 2

 Cứ tiếp tục như vậy cho đến khi đủ bộ nhớ cấp phát

Trang 58

Bộ cấp phát hệ thống bạn bè

Các trang vật lý kề nhau

Trang 59

Bộ cấp phát Slab

 Chiến lược luân phiên

Slab là một hay nhiều trang vật lý kề nhau

Cache bao gồm một hoặc nhiều slabs

 Cache đơn cho mỗi cấu trúc dữ liệu hạt nhân duy nhất

 Mỗi cache được phủ đầy bởi những đối tượng – một ví

dụ cụ thể của cấu trúc dữ liệu

 Khi cache được tạo ra, các đối tượng điền vào sẽ được đánh dấu còn trống

 Khi cấu trúc được lưu, các đối tượng được đánh dấu đã

sử dụng

 Nếu một slab đã đầy các đối tượng, đối tượng tiếp theo sẽ được phân bổ vào một slab rỗng

 Nếu không có slab rỗng, slab mới sẽ được tạo ra

 Các quyền lợi bao gồm sự không phân mảnh, nhanh

chóng làm hài lòng yêu cầu của bộ nhớ

Trang 60

Cấp phát slab

Nhân đối tượng

Các trang vật lý

kề nhau

Trang 61

Các vấn đề khác-Phân Trang trước

 Phân trang trước

 Để giảm bớt một số lượng lớn lỗi trang tại thời điểm tiến trình khởi động

 Tất cả các trang trước hoặc một số trang của tiến trình

sẽ cần đến, trước khi chúng được tham chiếu

 Nhưng nếu những trang trước không được sử dụng, thiết bị vào/ra và bộ nhớ sẽ bị lãng phí

Giả sử s trang được chuẩn bị trước và α những trang

này đang được sử dụng

Sẽ tiêu tốn s * α để lưu những lỗi trang, > hay< hơn

chi phí của việc chuẩn bị trang trước

Có s * (1- α) những trang không cần thiết?

α gần bằng 0  chuẩn bị trang trước sẽ thất bại

Trang 63

Các vấn đề khác – Phạm vi TLB

 Phạm vi TLB – Số lượng bộ nhớ có thể truy cập từ TLB

 Phạm vi TLB = (kích thước TLB) X (kích thước trang)

 Theo ý tưởng, mô hình tập làm việc trong mỗi tiến trình sẽ

được lưu trữ trong TLB

 Mặt khác sẽ có những lỗi trang ở mức độ cao

 Tăng kích thước trang

 Điều này dẫn đến việc tăng sự phân đoạn không như tất cả các ứng dụng đòi hỏi kích thước trang lớn

 Cung cấp nhiều trang kích thước

 Điều này cho phép các ứng dụng yêu cầu kích thước trang lớn cơ hội sử dụng chúng mà không phải tăng sự phân đoạn

TLB – Translation lookaside buffer – Bộ đệm chuyển hóa riêng

Trang 64

for (i = 0; i < 128; i++) data[i,j] = 0;

128 x 128 = 16,384 lỗi trang

 Program 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0;

128 lỗi trang

Trang 65

Các vấn đề khác – Neo thiết bị vào ra

Neo thiết bị vào ra – Đôi lúc cần neo một số

trang trong bộ nhớ

dụng cho việc sao chép một trang từ một thiết

bị được neo bằng việc lựa chọn để thu hồi bởi một thuận toán thay thế trang

Trang 66

Lý Do Tại Sao Khung trang sử dụng cho thiết bị vào

ra phải ở trong bộ nhớ

Ổ đĩa

Bộ đệm

Trang 67

Một số hệ điều hành ví dụ

Trang 68

Windows XP

 Sử dụng nhu cầu trang với kỹ thuật clustering.Kỹ thuật

Clustering brings in pages surrounding the faulting page

 Các tiến trình được phân công làm việc ở chế độ tối thiểu và tối đa

 Làm việc ở chế độ tối thiểu là với số trang nhỏ nhất trong tiến trình được đảm bảo có trong bộ nhớ

 Một tiến trình có thể được phân công như nhiều trang để nó làm việc ở chế độ tối đa

 Khi số lượng bộ nhớ trống trong hệ thống rớt xuống dưới

ngưỡng, chế độ làm việc tự động sắp xếp được thực hiện

để khôi phục số lượng bộ nhớ trống

 Chế độ làm việc sắp xếp loại bỏ các tiến trình đã vượt quá trong chế độ làm việc tối thiểu

Trang 69

Solaris

 Duy trì một dach sách các trang trống để gán các lỗi tiến trình

Lotsfree – ngưỡng tham số (số lượng bộ nhớ trống) để bắt

đầu phân trang

Desfree – ngưỡng tham số để tăng sự phân trang

Minfree – ngưỡng tham số để bắt đầu swapping

Phân trang được thực hiện bởi tiến trình pageout

 Pageout kiểm tra các trang bằng cách sửa đổi thuật toán đồng hồ

Scanrate là tỷ lệ các trang được kiểm tra Nó nằm trong

khoảng slowscan đến fastscan

 Pageout được gọi thường xuyên hơn tùy thuộc vào số lượng

bộ nhớ trống sẵn có

Trang 70

Solaris 2 Quét Trang

Trang 71

Kết thúc chương 9

Ngày đăng: 20/04/2022, 17:08

HÌNH ẢNH LIÊN QUAN

 Mỗi lối vào bảng trang đều được liên kết với 1 bit valid_invalid (hợp lệ_không hợp lệ) (v - Chương 9:  Bộ nhớ ảo
i lối vào bảng trang đều được liên kết với 1 bit valid_invalid (hợp lệ_không hợp lệ) (v (Trang 10)
Bảng trang khi một số trang không có trong bộ nhớ chính - Chương 9:  Bộ nhớ ảo
Bảng trang khi một số trang không có trong bộ nhớ chính (Trang 11)
4. Cập nhật lại bảng trang - Chương 9:  Bộ nhớ ảo
4. Cập nhật lại bảng trang (Trang 12)
3. Nạp trang vừa tìm thấy vào khung trang trống; cập nhật lại trang và bảng trang. - Chương 9:  Bộ nhớ ảo
3. Nạp trang vừa tìm thấy vào khung trang trống; cập nhật lại trang và bảng trang (Trang 24)
Vị trí trong 1 mô hình tham chiếu bộ nhớ - Chương 9:  Bộ nhớ ảo
tr í trong 1 mô hình tham chiếu bộ nhớ (Trang 47)
Mô hình tập làm việc - Chương 9:  Bộ nhớ ảo
h ình tập làm việc (Trang 48)
Mô hình thiết lập làm việc - Chương 9:  Bộ nhớ ảo
h ình thiết lập làm việc (Trang 49)
 Kích thước bảng - Chương 9:  Bộ nhớ ảo
ch thước bảng (Trang 62)
 Theo ý tưởng, mô hình tập làm việc trong mỗi tiến trình sẽ được lưu trữ trong TLB - Chương 9:  Bộ nhớ ảo
heo ý tưởng, mô hình tập làm việc trong mỗi tiến trình sẽ được lưu trữ trong TLB (Trang 63)