1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 9 Bộ nhớ ảo

91 2K 1

Đ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 91
Dung lượng 7,59 MB

Nội dung

Phân trang theo yêu cầu Phân trang theo yêu cầu là quá trình đưa một trang vào bộ nhớ khi có yêu cầu ◦ Yêu cầu I/O ít ◦ Yêu cầu về bộ nhớ nhỏ ◦ Thực hiện nhanh hơn ◦ Có nhiều tiến trìn

Trang 1

Giới thiệu về bộ nhớ ảo

Nhóm

VITUAL MEMORY

Trang 2

NỘI DUNG CHÍNH

 Thông tin cơ bản - Background

 Phân trang theo yêu cầu - Demand Paging

Trang 3

 Một chương trình sẽ có kích thước lớn hơn kích thước thực cấp phát cho nó mà không gây ra lỗi hay không

 Thoải mái lập trình mà không phải suy tư về

Trang 4

của mô hình thiết lập

Trang 5

Khái niệm Bộ nhớ ảo

 Bộ nhớ ảo: là sự tách biệt bộ nhớ luận lý từ bộ nhớ vật lý.

◦ Chỉ một phần chương trình được thực hiện trong bộ nhớ.

◦ Địa chỉ không gian hợp lý do đó có thể lớn hơn nhiều so với không gian địa chỉ vật lý.

◦ Cho phép các không gian địa chỉ được chia sẻ bởi một số tiến trình.

◦ Cho phép tạo ra nhiều tiến trình hiệu quả.

 Bộ nhớ ảo có thể được thực hiện thông qua:

∘ Phân trang theo yêu cầu (Demand paging)

∘ Phân đoạn theo yêu cầu (Demand segmentation)

Trang 6

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

Bộ nhớ ảo chỉ bị giới hạn bởi dung lượng ổ đĩa

Trang 7

Không gian địa chỉ ảo

Trang 8

Phân trang theo yêu cầu

 Phân trang theo yêu cầu là quá trình đưa một trang vào bộ nhớ khi có yêu cầu

◦ Yêu cầu I/O ít

◦ Yêu cầu về bộ nhớ nhỏ

◦ Thực hiện nhanh hơn

◦ Có nhiều tiến trình được xử lý hơn

◦ Tham chiếu không hợp lệ  hủy bỏ

◦ Không có trong bộ nhớ  chuyển vào bộ nhớ

◦ Có trong bộ nhớ thì truy xuất

 Bộ hoán vị lười (Lazy swapper): không bao giờ hoán vị một trang vào trong bộ nhớ trừ khi trang đó được yêu cầu.

◦ Bộ hoán vị giao tiếp với trang qua một bộ trang

Trang 9

Chuyển bộ nhớ được phân trang

tới không gian đĩa liên tục

Trang 10

Cơ chế bit hợp lệ - không hợp

lệ

 Với cơ chế này, chúng ta cần một số dạng phần cứng hỗ trợ

để phân biệt giữa các trang ở trong bộ nhớ và các trang ở trên đĩa Cơ chế bit hợp lệ-không hợp lệ có thể được dùng cho mục đích này.

◦ Valid : giá trị này hiển thị rằng trang được tham chiếu tới là hợp lệ và ở đang trong bộ nhớ.

◦ Invalid : giá trị này hiển thị rằng trang không hợp lệ (nghĩa là trang không ở trong không gian địa chỉ của quá trình) hoặc hợp lệ nhưng hiện đang ở trên đĩa.

Trang 11

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 kỹ thuật phân trang và kỹ thuật swapping :

◦ Bảng trang : 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ụ: dùng để lưu trữ những trang không được nạp vào bộ nhớ chính, bộ nhớ phụ thường 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.

Trang 12

Bit hợp lệ - không hợp lệ

 Với mỗi bảng trang sẽ được nhập bit hợp lệ (v) - không hợp lệ (i) ( v

 nằm trong bộ nhớ, i không nằm trong bộ nhớ )

Ban đầu bit hợp lệ - không hợp lệ được thiết lập để i trên tất cả các

mục.

- Ví dụ một bảng trang được chụp nhanh.

- Trong khi địa chỉ đang dịch, nếu

bit hợp lệ - không hợp lệ được đưa vào

trong bảng trang là i  lỗi trang (page fault).

Trang 13

Bảng trang khi một số trang không

Trang 14

 Chúng ta lập thời biểu thao tác đĩa để đọc trang mong muốn vào

khung trang vừa mới được cấp phát

 Khi đọc đĩa hoàn thành, chúng ta sửa đổi bảng bên trong với quá trình

và bảng trang để hiển thị rằng trang bây giờ ở trong bộ nhớ

 Chúng ta khởi động lại chỉ thị mà nó bị ngắt bởi trap địa chỉ không hợp

lệ Bây giờ quá trình có thể truy xuất trang mặc dù nó luôn ở trong bộ

nhớ

Trang 15

Các bước xử lý khi có lỗi trang

Trang 16

Thi hành phân trang theo yêu cầu

Xác suất xảy ra lỗi trang 0  p  1.0

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

Nếu p = 1, mỗi truy xuất sẽ phát sinh một lỗi trang.

 Thời gian thực sự truy xuất bộ nhớ (EAT):

EAT = (1 – p) * memory access + p (page fault overhead

+ swap page out + swap page in + restart overhead )

 Trung bình thời gian lỗi trang = 8 milliseconds

 EAT = (1 – p) * 200 + p (8 milliseconds)

= (1 – p ) * 200 + p * 8,000,000

= 200 + p x 7,999,800

EAT = (1 – p) * memory access + p (page fault overhead

+ swap page out + swap page in + restart overhead )

Trang 17

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

 Thời gian xử lý page-fault : 25 milliseconds

 Thời gian truy xuất bộ nhớ (ma) : 100 nanoseconds EAT = (1- p) * 100 + p * 25,000,000 nanoseconds = 100 + 24,999,990 * p nanoseconds

 EAT tỷ lệ trực tiếp với tỷ lệ page-fault, nếu p càng lớn thì EAT càng lớn máy càng chậm

 Muốn hiệu năng giảm dưới 10 %, ta cần có :

110 > 100 + 25,000,000 * p p < 0.0000004

Trang 19

và các quá trình ban đầu của con để chia sẻ

cùng một trang trong bộ nhớ

Nếu quá trình sửa đổi, hoặc một trang chia

sẻ, chỉ sau đó là trang sao chép

hơn là chỉ các trang đổi sẽ được sao chép

một hồ bơi của số không trên các trang

Trang 20

Trước khi tiến trình 1 làm thay đổi Trang C

Trang 21

Sau khi tiến trình 1 làm thay đổi Trang C

Trang 22

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

bộ nhớ, nhưng không được sử dụng, nó sẽ đưa những trang đó ra ngoài

Trang 24

Thay thế trang

Trang 25

Các thuật toán thay thế trang

 Mục đích : muốn tỷ lệ lỗi trang thấp nhất

 Đánh giá giải thuật bằng cách chạy nó trên một

chuỗi riêng biệt các tham chiếu bộ nhớ và tính số lỗi trang trên chuỗi đó

 Trong tất cả các ví dụ, chuỗi tham chiếu đưa ra là :

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

Trang 26

Đồ thị liên hệ giữa số trang lỗi và số khung

Trang 27

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

 3 khung ( với mỗi tiến trình : 3 trang có thể nạp vào bộ nhớ một thời điểm ).

 4 khung

Thuật toán First-In-First-Out

(FIFO)

1 2 3

1 2 3

4 1 2

5 3 4

9 page faults

10 page faults

1 2 3

1 2 3

5 1 2

4 5 4

4 3

Trang 28

FIFO Page Replacement

Trang 29

Minh họa sự bất thường của Belady

Trang 30

Thuật toán tối ưu ( OPT hay MIN )

 Thay trang có khoảng thời gian không dùng lâu nhất

 Ví dụ 4 khung

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

 Làm thế nào bạn biết được điều này ?

 Được sử dụng cho việc đánh giá các thuật toán khác

6 page faults

1 2 3

4

4 5

Trang 31

Optimal Page Replacement

Trang 32

Thuật toán lâu nhất chưa sử

dụng (Least Recently Used -

LRU )

 Chuỗi tham chiếu :

 Sự thực hiện của bộ đếm

◦ Mọi phần tử của bảng có một bộ đếm, mọi thời điểm

trang được tham chiếu qua phần tử bảng này sao chép vòng vào trong bộ đếm.

◦ Khi cần trang được hoán đổi, tìm trong bộ đếm để xác đinh trang nào là trang nạn nhân.

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

4

5

2 4 3

1 2 3 4

1 2

5

1 2 5

3

1 2

4

3

Trang 33

Thay thế trang LRU

Trang 34

Thuật toán LRU (cont.)

 Sự thực hiện của Stack – dành ra một stack của các

số trang trong một danh sách liên kết kép.

◦ Khi trang được tham chiếu

 Chuyển nó lên đỉnh

 Cần 6 con trỏ để đổi trang

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

Trang 35

Các thuật toán xấp xỉ LRU

 Tham chiếu bit (Reference bit) :

◦ Gắn một bit vào mỗi trang, ban đầu = 0

◦ Khi trang được tham chiếu, bit đó được thiết lập = 1

◦ Thay trang co bit tham chiếu = 0,nếu trang con tồn tại

 Tuy nhiên chúng ta không biết thứ tự

 Cơ hội thứ hai (Second chance) :

◦ Cần có bit tham chiếu

◦ Thay thế vòng tròn

◦ Nếu trang tham chiếu (trong thứ tự vòng tròn) có bit

tham chiếu = 1 thì :

 Thiết lập bit = 0

 Chuyển trang vào trong bộ nhớ

 Thay thế trang tiếp theo (trong thứ tự vòng tròn) với quy luật thay thế tương tự.

Trang 36

Thuật toán thay thế trang cơ hội thứ hai

Trang 37

Thuật toán đếm (Counting Algorithms)

 Thuật toán LFU (Least Frequently Used): thay

trang đếm đượ ít nhất ( có tần số truy xuất nhỏ

nhất )

 Thuật toán MFU (Most Frequently Used) : thay

trang đếm được nhiều nhất ( có tần số truy xuất cao nhất), dựa trên lý luận rằng trang đếm được ít nhất là có thể vừa đưa vào bộ nhớ và chưa kịp

được sử dụng

Trang 38

Phân phối các khung

để thực hiện

lệnh SS MOVE

◦ Lệnh có độ dài 6 byte, có thể chứa trong 2 trang

2 trang để thực hiện from

2 trang để thực hiện to

◦ Phân phối cố đinh (fixed allocation)

◦ Phân phối có ưu tiên (priority allocation)

Trang 39

Phân phối cố định

 Phân phối công bằng – ví dụ, nếu có 100 khung

và 5 tiến trình, cho mỗi tiến trình 20 trang

 Cấp phát theo tỷ lệ - Phân phối theo kích 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 40

Phân phối có ưu tiên

thuộc vào độ ưu tiên của tiến trình hơn là phụ thuộc kích thước tiến trình

 Nếu tiến trình Pi phát sinh lỗi trang

◦ Chọn một trong các khung trang của nó để thay thế

◦ Chọn một khung trang của quá trình khác với độ

ưu tiên thấp hơn để thay thế

Trang 41

Thay thế trang toàn cục hay

cục bộ

 Thay thế toàn cục (Global replacement): tiến trình được chọn một khung thay thế từ tập tất cả các khung, một tiến trình có thể lấy một khung từ tiến trình khác

 Thay thế cục bộ (Local replacement) : mỗi tiến

trình chỉ chọn một khung thay thế từ chính tập các khung đã phân phối cho nó

Trang 42

Sự trì trệ (Thrashing)

lệ trang lỗi là rất cao Điều này dẫn đến :

◦ 1) Hệ điều hành giám sát việc sử dụng CPU

◦ 2) Nếu hiệu suất sử dụng CPU quá thấp, hệ điều hành sẽ nâng mức độ đa chương bằng cách đưa thêm một quá trình mới vào hệ thống

◦ 3) Hệ thống có thể sử dụng giải thuật thay thế toàn cục để chọn các trang nạn nhân thuộc một tiến trình bất kỳ để có chỗ nạp quá trình mới, có thể sẽ thay thế cả các trang của tiến trình đang

xử lý hiện hành

Trang 43

Sự trì trệ (cont.)

◦ 4) Khi có nhiều quá trình trong hệ thống hơn, thì một quá trình sẽ được cấp ít khung trang hơn và do đó

phát sinh nhiều lỗi trang hơn

◦ 5) Khi các quá trình phát sinh nhiều lỗi trang, chúng phải trải qua nhiều thời gian chờ các thao tác thay

thế trang hoàn tất, lúc đó hiệu suất sử dụng CPU ại giảm

◦ 6) Hệ điều hành lại quay trở lại bước 1

Hệ thống sẽ lâm vào tình trạng luẩn quẩn của việc

giải phóng các trang để cấp phát thêm khung trang cho một tiến trình, và các tiến trình khác lại thiếu

khung trang và các tiến trình không thể tiếp tục xử

Trì trệ toàn bộ hệ thống

Trang 44

Sự trì trệ - Thrashing(cont.)

Trang 45

Giới thiệu về máy ảo

Nhóm 5A5

Trang 46

 Cùng 1 lúc vừa dùng Linux, vừa dùng

windows, lúc sau lại nhảy qua OpenSolaris trên máy tính mà không phải khởi động lại?

nguồn gốc hay các nguy hiểm tiềm ẩn có

Trang 52

 Trong quá trình nghiên cứu của nhóm nảy sinh nhu cầu phải cài đặt và thử nghiệm nhiều hệ điều hành khác nhau:

Trang 53

Một bản sao hoàn toàn độc lập và hiệu quả của máy thật

Trang 54

 System virtual machine:

◦ Native VM: XEN (loại 1)

Trang 55

1. Giả lập phần cứng

2. Giả lập hệ thống

Trang 57

2 Giả lập hệ thống:

Cho phép phần mềm hoặc hệ điều hành viết

cho những kiến trúc khác nhau có thể chạy trên kiến trúc bất kì

 Emulator

 JVM

Trang 58

3 Ảo hóa mức hệ điều hành

◦ Được áp dụng cho các server

◦ Một server vật lí được chia sẻ ra làm nhiều server ảo

 Môi trường ảo

 Server riêng ảo

 người dùng thấy đó là server thật và chỉ thấy server mà họ sở hữu

◦ Solaris Zones

 Nhiều hệ điều hành khách cùng chạy

 Các hệ này cũng fải là Solaris

Trang 60

Cám ơn các bạn đã theo dõi

Trang 61

Các bước thiết lập máy ảo & cách cài hệ điều hành

Trang 87

 Bản free cho phép chạy các VM Image được tạo bởi Vmware workstation

http://www.vmware.com/download/player/

http://vmplanet.net/

có thể nói nó là 1 player như 1 trình nghe nhạc

Ngày đăng: 13/05/2014, 00:26

HÌNH ẢNH LIÊN QUAN

Đồ thị liên hệ giữa số trang lỗi và số khung - Chương 9 Bộ nhớ ảo
th ị liên hệ giữa số trang lỗi và số khung (Trang 26)

TỪ KHÓA LIÊN QUAN

w