chương 7 virtual memory (bộ nhớ ảo)

26
Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh 1 Chương 7 Virtual Memory (bộ nhớ ảo)

Upload: taber

Post on 21-Jan-2016

81 views

Category:

Documents


1 download

DESCRIPTION

Chương 7 Virtual Memory (bộ nhớ ảo). Mục đích và yêu cầu. Mục đích: Nắm được khái niệm phân trang và phân đọan. Hiểu được cơ chế quản lý bộ nhớ ảo Yêu cầu: Nắm được các chiến lược quản lý và thể hiện được các giải thuật cung cấp frame. Nội dung. Thông tin cơ bản - Background - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

1

Chương 7 Virtual Memory(bộ nhớ ảo)

Page 2: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

2

Mục đích và yêu cầu

Mục đích:• Nắm được khái niệm phân trang và phân đọan.

Hiểu được cơ chế quản lý bộ nhớ ảoYêu cầu:• Nắm được các chiến lược quản lý và thể hiện

được các giải thuật cung cấp frame.

Page 3: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

3

Nội dung

Thông tin cơ bản - Background Phân trang theo yêu cầu – Demand Paging Thay trang – Page Replacement Phân phối các Frames – Allocation of Frames Thrashing Phân đoạn theo yêu cầu – Demand Segmentation

Page 4: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

4

Thông tin cơ bản

Virtual memory – sự tách riêng của bộ nhớ logic (của user) khỏi bộ nhớ vật lý• Kích thước bộ nhớ vật lý có hạn => nó giới hạn kích thước

chương trình.• Thực tế, chỉ cần 1 phần của chương trình cần phải đưa vào

bộ nhớ (vật lý) để thực hiện => có thể chứa chương trình ở đâu ?- virtual memory.

• Do đó ko gian địa chỉ logic có thể lớn hơn ko gian địa chỉ vật lý rất nhiều => cung cấp bộ nhớ rất lớn cho người lập trình.

• Cho phép 1 số process chia sẻ ko gian địa chỉ.• Cho phép tạo process hiệu quả hơn.

Bộ nhớ ảo có thể được thực hiện thông qua:• Demand paging (windows, linux)• Demand segmentation (IBM. OS/2)

Page 5: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

5

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

Page 6: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

6

Phân trang theo yêu cầu

Đưa một trang vào bộ nhớ chỉ khi nó được cần đến:• Cần ít thao tác vào ra hơn• Cần ít bộ nhớ hơn• Đáp ứng nhanh hơn: process bắt đầu ngay sau khi

số trang tối thiểu được nạp vào bộ nhớ.• Nhiều user/process hơn do mỗi process dùng ít bộ

nhớ hơn Khi trang được cần đến (khi process tham

chiếu đến nó)• Tham chiếu ko hợp lệ => hủy bỏ• Ko trong bộ nhớ => đưa vào bộ nhớ• Có trong bộ nhớ => truy nhập

Page 7: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

7

Chuyển một vùng nhớ phân trang tới không gian ổ đĩa

Page 8: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

8

Valid-invalid Bit

Page 9: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

9

Bảng phân trang khi 1 số trangko ở trong bộ nhớ chính

Page 10: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

10

Page Fault

1. Khi có tham chiếu tới trang, đầu tiên tham chiếu sẽ lập bẫy với Os => phát hiện page fault

2. Os tìm trong bảng khác để quyết định:• Tham chiếu ko hợp lệ => hủy bỏ• Không có trong bộ nhớ => đưa vào bộ nhớ

3. Nhận Frame rỗi4. Copy/Hoán đổi trang vào frame5. Cập nhật lại bảng phân trang (thiết lập v-inv bit =1), cập

nhật danh sách frame rỗi.6. Khởi động lại lệnh.

Page 11: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

11

Các bước xử lý Page Fault

Page 12: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

12

Điều gì xẩy ra khi ko có frame rỗi

Thay trang – tìm một số trang trong bộ nhớ nhưng đang ko được sử dụng để đưa ra ngoài.• Giải thuật?• Hiệu năng? – muốn có 1 giải thuật tác động đến số lượng

tối thiểu page faults. Một trang có thể được đưa vào bộ nhớ nhiều lần.

Page 13: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

13

Hiệu năng của phân trang theo yêu cầu

Tỷ lệ Page Fault – p : 0≤ p ≤ 1• P=0 ; ko có page fault• P=1 ; mọi tham chiếu đều là fault

Thời gian truy nhập hiệu quả -Effective Access Time (EAT)EAT = (1-p)x ma + px(thời gian xử lý page fault)

Trong đó:+ ma: memory access – thời gian truy nhập bộ nhớ (10-200 ns)+ Thời gian xử lý page-fault: gồm 3 vấn đề chính

─ Phục vụ ngắt page fault (1-100 μs, có thể giảm bằng coding)─ Đọc trang vào bộ nhớ (khoảng 25 ms)─ Khởi động lại process (1 – 100 μs, có thể giảm bằgn coing)

Page 14: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

14

Ví dụ

Thời gian xử lý page-fault 25ms Thời gian truy nhập bộ nhớ (ma): 100 ns EAT =(1-p) x 100 + p x 25,000.000 ns.

= 100 + 24,999.990 x p ns EAT tỷ lệ thuật với 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 x p

p < 0.0000004

Page 15: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

15

Page Replacement (thay trang)

Các bước thay trang:

1. Tìm vị trí của trang được yêu cầu trên đĩa.

2. Tìm 1 frame rỗi:• Nếu có frame rỗi thì sử dụng nó

• Nếu ko có, sử dụng giải thuật thay trang để chọn 1 frame nạn nhân.

3. Đọc trang được yêu cầu vào frame rỗi. Cập nhật bảng phân trang và bảng quản lý frame rỗi

4. Khởi động lại process

Page 16: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

16

Quá trình thay thế trang nhớ

Page 17: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

17

Các giải thuật thay trang

Mục tiêu: giảm thiểu tỷ lệ page fault 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ố page fault trên chuỗi đó.

Các giải thuật thay thế trang phụ thuộc vào resident set (số frame cấp cho mỗi process)

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 18: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

18

Least Recently Used (LRU)

Page 19: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

19

Giải thuật FIFO

Page 20: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

20

Giải thuật Clock (second–chance)

Page 21: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

21

Vì dụ về giải thuật clock

Page 22: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

22

So sánh Clock, FIFO và LRU

Page 23: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

23

Page 24: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

24

Mô hình tần suất Page-Fault

Page 25: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

25

Ưu điểm của bộ nhớ ảo

Page 26: Chương 7 Virtual Memory (bộ nhớ ảo)

Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

26

Câu hỏi và bài tập

1. Miêu tả cơ chế phân trang và phân đọan?2. Mục đích của phân trang. Phân đọan là gi?3. Ưu điểm của bộ nhớ ảo?4. Dưới tình huống nào các “fault” trang xuất

hiện? Miêu tả các hành động của hệ điều hành khi một lỗi trang xuất hiện.

Làm các bt 10.11 và 10.16 trong sgk, làm các bt theo các giải thuật thay thế trang LRU, FIFO,OTP