71
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

  • Upload
    elom

  • View
    78

  • Download
    5

Embed Size (px)

DESCRIPTION

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ự trì trệ (Thrashing) Các file ánh xạ bộ nhớ Bộ nhớ ánh xạ tập tin(Memory-Mapped Files) Những đánh giá khác - PowerPoint PPT Presentation

Citation preview

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

Chương 9: Bộ nhớ ảoHoàng Thị Thúy VyPhạm Thị PhươngNguyễn Đức Phan

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

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ự trì trệ (Thrashing) Các file ánh xạ bộ nhớ Bộ nhớ ánh xạ tập tin(Memory-Mapped Files) Những đánh giá khác Các ví dụ về hệ diều hành

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

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.

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

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

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

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

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

Bộ nhớ vật lý

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

Không gian địa chỉ ảo

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

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

Các trang chia sẻ

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

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)

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

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

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

Valid-Invalid Bit 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

in-memory, i not-in-memory)

Ban đầu thì bit valid_invalid được thiết lập là i trên tất cả các điểm vào Ví dụ về 1 bảng trang:

Trong khi đọc địa chỉ,nếu bit valid_invalid ở lối vào bảng trang là i lỗi trang

vvvvi

ii

….

Frame # valid-invalid bit

Bảng trang

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

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

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

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 trang1. 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ống3. Đưa trang vào khung trang trống đó4. Cập nhật lại bảng trang5. Thiết lập lại bit hợp lệ = v6. Khởi động lại chỉ thị gây ra lỗi trang ở trên.

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

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í

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

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

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

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)

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

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 EAT = (1 – p) x 200 + p (8 ms)

= (1 – p x 200 + p x 8,000,000 = 200 + p x 7,999,800 Nếu 1 trang lỗi vì sự truy cập vượt quá 1000 thì EAT = 8.2 mcs. Đây là sự chậm lại bởi yếu tố 40!!

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

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

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

Copy-on-write

Copy-on-Write (COW) cho phép cả tiến trình cha và con vào lúc ban đầu có thể chia sẻ các trang như nhau trong bộ nhớ.Nếu 1 trong 2 tiến trình sửa đổi 1 trang chia sẻ, thì đó chỉ là trang đã được copy.

COW cho phép tạo ra nhiều tiến trình có hiệu quả như là chỉ sửa đổi các trang đã được copy.

Trang trống được cấp phát từ 1 khối các trang trống ở bên ngoài.

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

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

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

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

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

Đ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

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

Thay thế trang

Ngăn chặn việc phân chia tràn bộ nhớ bằng các thủ tục phục vụ cho việc sửa lỗi trang kể cả trang thay thế.

Sử dụng modify (dirty) bit để hạn chế việc chuyển đổi các trang trên – chỉ sửa đổi những trang đã được ghi lên đĩa

Trang thay thế hoàn tất việc phân chia giữa bộ nhớ ảo và bộ nhớ vật lý –bộ nhớ ảo lớn hơn có thể được cấp phát trên bộ nhớ vật lý nhỏ hơn.

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

Nhu cầu thay thế trang

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

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.

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

Thay thế trang

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

Thuật toán thay thế trang

Cần có tỉ lệ lỗi trang thấp nhất Đánh giá thuật giải bằng việc chạy nó trên

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

Trong tất cả các ví dụ, chuỗi tham chiếu là 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

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

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

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

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

44 3

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

Thuật toán thay thế trang FIFO

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

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

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

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

Thuật toán Optinal (tối ưu) Trang được chọn để thay thế là trang sẽ lâu được sử

dụng nhất trong tương lai 4 khung trang ví dụ

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

Ta biết điều này bằng cách nào? Dùng thước đo bằng việc thực hiện các thuật toán

1

2

3

4 6 page faults

4 5

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

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

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

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

Sử dụng bộ đếm counter Mỗi entry (điểm vào) trang có 1 bộ đếm; mỗi lần trang

được tham chiếu thông qua entry này, sao chép đồng hồ vào bộ đếm counter

Khi cần thay thế 1 trang, nhìn vào bộ đếm counter để quyết định thay thế trang nào

5

2

4

3

1

2

3

4

1

2

5

4

1

2

5

3

1

2

4

3

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

Thuật toán thay thế trang LRU

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

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

Sử dụng Stack – lưu trữ ở stack số hiệu của các trang với 1 hình thức liên kết kép: Trang tham chiếu:

Chuyển nó lên đỉnh stack Đòi hỏi 6 con trỏ phải thay đổi

Không cần tìm kiếm trang để thay thế

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

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

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

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

Bit tham chiếu Với mỗi trang kết hợp với 1 bít, ban đầu = 0 Khi 1 trang được tham chiếu, bit được đặt bằng 1 thay thế trang mà bit tham chiếu bằng 0 (nếu nó tồn tại)

Ta không biết thứ tự, tuy nhiên Khả năng thứ 2

Cần có bit tham chiếu Đặt lại đồng hồ Nếu trang được thay thế (trong thứ tự sử dụng) có bit tham chiếu = 1 thì:

Đặt bit tham chiếu bằng 0 Lấy trang ra khỏi bộ nhớ Thay thế trang tiếp theo (trong thứ tự sử dụng), với cùng 1 quy tắc

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

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

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

Thuật toán đếm

Lưu lại ở bộ đếm counter số lần mà mỗi trang đượ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

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

Cấp phát khung trang

Mỗi tiến trình cần 1 số trang tối thiểu Ví dụ: IBM 370 – 6 trang để điều khiển các lệnh

di chuyển SS MOVE: Các lệnh 6 bytes, có thể kéo dài qua 2 trang 2 trang để điều khiển from 2 trang để điều khiển to

2 chính sách cấp phát chủ yếu: Cấp phát tĩnh (fixed allocation) Cấp phát ưu tiên (priority allocation)

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

Cấp phát tĩnh (Fixed Allocation) Cấp phát bằng nhau – ví dụ, nếu có 100 khung

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

Cấp phát tương đương–cấp phát tùy theo kích thước của tiến trình

mSspa

msS

ps

iii

i

ii

for allocation

frames of number total

process of size

5964137127

564137101271064

2

1

2

a

a

ssm

i

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

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

Sử dụng kế hoạch cấp phát ưu tiên, sử dụng quyền ưu tiên

Nếu tiến trình Pi phát ra 1 lỗi trang, Chọn thay thế 1 trang trong tất cả khung trang

của nó Chọn thay thế 1 khung trang từ 1 tiến trình với

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

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

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ó

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

Sự trì trệ (Thrashing) Nếu 1 tiến trình không có đủ trang, thì lỗi trang

phát ra rất cao. Điều chỉnh: Việc sử dụng CPU chậm (hiện tượng trì trệ

hệ thống) Hệ điều hành nghĩ rằng nó cần phải tăng

thêm mức độ đa chương Thêm tiến trình khác vào hệ thống

thất bại (Thrashing) 1 tiến trình đang bận swap trang vào và ra

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

Sự trì trệ (tiếp)

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

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

Vì sao phải đòi hỏi phân trang làm việc?Mô hình vị trí Tiến trình chuyển từ 1 vị trí này đến 1 vị

trí khác Các vị trí có thể đè lên nhau

Vì sao xảy ra thất bại? kích thước của vị trí > toàn bộ kích thước của bộ nhớ

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

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

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

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

WSSi (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 = WSSi 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

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

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

Tham chiếu bảng trang

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

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

Gần giống với khoảng thời gian + một chút tham chiếu Example: = 10,000

Thời gian ngắt sau mỗi 5000 đơn vị thời gian Giữ trong bộ nhớ 2 bits cho mỗi trang Mỗi lần ngắt thì sao chép và đặt ra giá trị tất cả các

tham chiếu bằng 0 Nếu một trong những bits trong bộ nhớ = 1 làm

việc ở chế độ thiết lập trang Tại sao ko hoàn toàn chính xác? Nâng cao chất lượng = 10 bits và ngắt sau mỗi 1000

đơn vị thời gian

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

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

Chứng minh tỷ lệ lỗi trang “có thể chấp nhận” Nếu tỉ lệ quá thấp, tiến trình sẽ mất khung Nếu tỷ lệ quá cao, tiến trình sẽ lấn khung

Giới hạn cao

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

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ẻ

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

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

Bộ nhớ ảo A

Bộ nhớ ảo B

Bộ nhớ vật lý

Tập tin đĩa

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

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

Bộ nhớ chia sẻ

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

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

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

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

Phân bố nhân bộ nhớ

Xử lý khác nhau bởi người dùng bộ nhớ Thường phân bố từ một vùng bộ nhớ tự do

Nhân yêu cầu bộ nhớ có những cấu trúc với kích cỡ khác nhau

Một số nhân bộ nhớ cần phải đặt kề nhau

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

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

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

Bộ cấp phát hệ thống bạn bèCác trang vật lý kề nhau

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

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ớ

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

Cấp phát slab

Nhân đối tượng

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

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

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

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

Các vấn đề khác- Kích thước trang

Lựa chọn kích thước trang phải xem xét đến: Sự phân đoạn Kích thước bảng Chi phí cho thiết bị vào ra Vị trí

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

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

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

Các vấn đề khác – Cấu trúc chương trình Cấu trúc chương trình

int[128,128] data; Mỗi hàng được lưu trong một trang Program 1

for (j = 0; j <128; j++) 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

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

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ớ Xem xét thiết bị vào ra – Các trang được sử

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

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

Lý Do Tại Sao Khung trang sử dụng cho thiết bị vào ra phải ở trong bộ nhớ

Ổ đĩaBộ đệm

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

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

Windows XP

Solaris

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

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

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

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ó

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

Solaris 2 Quét Trang

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

Kết thúc chương 9