os 5 - memory management

33
Quản lý bộ nhớ

Upload: dat-ngo

Post on 22-Apr-2015

581 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Os   5 - memory management

Quản lý bộ nhớ

Page 2: Os   5 - memory management

Operating systems 2PTIT, 2012

Bối cảnh

Bộ nhớ của máy thì hữu hạn nhưng nhu cầu của chương trình thì vô hạn.

Hệ thống thực hiện nhiều tiến trình cùng lúc, cần làm sao cho tiến trình này không ảnh hưởng đến tiến trình kia.

Page 3: Os   5 - memory management

Operating systems 3PTIT, 2012

Liên kết địa chỉ Khi viết chương trình, lập trình viên chỉ

quan tâm đến địa chỉ tượng trưng (tên biến, tên hàm, …). Khi thực thi, các địa chỉ này phải được ánh xạ thành địa chỉ thật. Có thể thực hiện việc ánh xạ tại các thời điểm: Lúc biên dịch chương trình Lúc nạp chương trình vào bộ nhớ Lúc thực thi chương trình

Page 4: Os   5 - memory management

Operating systems 4PTIT, 2012

Địa chỉ vật lý và địa chỉ luận lý

Địa chỉ luận lý (hay địa chỉ ảo) là địa chỉ mà CPU “nhìn thấy”. => Không gian địa chỉ ảo là tập hợp tất cả

các địa chỉ mà CPU “nhìn thấy”. Địa chỉ vật lý là địa chỉ thật mà đơn vị

quản lý bộ nhớ quản lý. => Không gian địa chỉ vật lý là khoảng địa chỉ

mà đơn vị quản lý bộ nhớ “nhìn thấy”.

Page 5: Os   5 - memory management

Operating systems 5PTIT, 2012

Địa chỉ luận lý và địa chỉ vật lý

Bộ nhớ vật lý

Đơn vị quản lý bộ nhớ

Khô

ng g

ian

luận

Khô

ng g

ian

vật

Page 6: Os   5 - memory management

Operating systems 6PTIT, 2012

Đơn vị quản lý bộ nhớ (MMU)

MMU (Memory Management Unit) là khối phần cứng thực hiện việc chuyển đổi giữa địa chỉ luận và địa chỉ vật lý.

Có chức năng tách rời không gian vật lý với không gian luận lý.

Chương trình chỉ nhìn thấy không gian luận lý.

Page 7: Os   5 - memory management

Operating systems 7PTIT, 2012

Đơn vị quản lý bộ nhớ (MMU)

MMU được tích hợp bên trong CPU

Khối CPUĐịa chỉ luận lý

Page 8: Os   5 - memory management

Operating systems 8PTIT, 2012

Cấp phát động

Chỉ liên kết (link) chương trình khi chương trình được thực thi.

Chỉ nạp chương trình con vào bộ nhớ khi nó chính thức được gọi.

Cơ chế hóan đổi (swap): tạm thời chuyển phần tiến trình chưa sử dụng ra bộ nhớ ngòai (đĩa cứng), khi nào cần sẽ nạp vào lại.

Page 9: Os   5 - memory management

Operating systems 9PTIT, 2012

Swap

Page 10: Os   5 - memory management

Operating systems 10PTIT, 2012

Các cơ chế cấp phát bộ nhớ

Cấp phát liên tục (contigous allocation) Cấp phát không liên tục:

Phân đọan (segmentation) Phân trang (paging)

Page 11: Os   5 - memory management

Operating systems 11PTIT, 2012

Cấp phát liên tục

Mô hình 1 (linker-loader): quản lý địa chỉ bắt đầu và kích thước tiến trình

Page 12: Os   5 - memory management

Operating systems 12PTIT, 2012

Cấp phát liên tục

Mô hình 2 (base&limit) quản lý địa chỉ bắt đầu và địa chỉ kết thúc.

Page 13: Os   5 - memory management

Operating systems 13PTIT, 2012

Bảo vệ bộ nhớ trong cơ chế base&limit

Page 14: Os   5 - memory management

Operating systems 14PTIT, 2012

Hiện tượng phân mảnh bộ nhớ

Các tiến trình có kích thước khác nhau. Sau khi thực thi xong và ra khỏi bộ nhớ sẽ tạo ra các vùng trống không đều nằm rải rác trong bộ nhớ => phân mảnh.

Page 15: Os   5 - memory management

Operating systems 15PTIT, 2012

Hiện tượng phân mảnh bộ nhớ

Phân mảnh trong (internal fragmentation): Tiến trình được đưa vào vùng trống lớn hơn kích thước tiến trình => có một phần dư không dùng.

Phân mảnh ngòai (external fragmentation) : tổng cộng vùng nhớ trống còn nhiều nhưng không liên tục nên không cấp phát được.

Page 16: Os   5 - memory management

Operating systems 16PTIT, 2012

Các chiến lược cấp phát động

First-fit: Chọn vùng nhớ trống đầu tiên tìm thấy đủ rộng để chứa tiến trình.

Best-fit: Chọn vùng nhớ trống nhỏ nhất đủ sức chứa tiến trình.

Worst-fit: Chọn vùng nhớ trống lớn nhất để chứa tiến trình. Chiến lược nào tốt nhất???

Page 17: Os   5 - memory management

Operating systems 17PTIT, 2012

Phân đọan

Đối với người sử dụng, một chương trình được chia thành nhiều phần khác nhau:

Page 18: Os   5 - memory management

Operating systems 18PTIT, 2012

Phân đọan Mỗi phần

được đưa vào một vùng nhớ riêng, có kích thước khác nhau và liên hệ luận lý với nhau gọi là một đọan (segment)

1

3

2

4

1

4

2

3

Page 19: Os   5 - memory management

Operating systems 19PTIT, 2012

Phân đọan

Mỗi đọan bộ nhớ trong không gian địa chỉ luận lý được nhận diện bằng địa chỉ bắt đầu của đọan (base) và kích thước của đọan đó (limit).

Cấu trúc địa chỉ luận lý có dạng <s, d> trong đó s là số hiệu phân đọan, d là địa chỉ tương đối trong phân đọan.

Page 20: Os   5 - memory management

Operating systems 20PTIT, 2012

Chuyển đổi địa chỉ trong cơ chế phân đọan

Page 21: Os   5 - memory management

Operating systems 21PTIT, 2012

Một hệ thống phân đọan

Page 22: Os   5 - memory management

Operating systems 22PTIT, 2012

Dùng chung các phân đọan

Page 23: Os   5 - memory management

Operating systems 23PTIT, 2012

Phân trang (paging)

Không gian bộ nhớ vật lý được chia thành các đọan có kích thước bằng nhau gọi là khung (frame)

Không gian địa chỉ ảo cũng được chia thành nhiều đọan có kích thước bằng nhau và bằng với khung trang, gọi là các trang địa chỉ (page)

Page 24: Os   5 - memory management

Operating systems 24PTIT, 2012

Trang và khung

Page 25: Os   5 - memory management

Operating systems 25PTIT, 2012

Địa chỉ luận lý trong chế độ phân trang

Địa chỉ luận lý có dạng <p, d>

P: số hiệu trang

D: địa chỉ tương đối trong trang

Page 26: Os   5 - memory management

Operating systems 26PTIT, 2012

Chuyển đổi địa chỉ ảo thành địa chỉ vật lý

Page 27: Os   5 - memory management

Operating systems 27PTIT, 2012

Truy xuất bộ nhớ với cơ chế phân trang Liên kết giữa trang và khung được chứa

trong bảng trang (page table) Mỗi thao tác truy xuất bộ nhớ gồm 2 công

đọan: Đọc bảng trang để tìm khung => tạo ra địa

chỉ vật lý Đọc dữ liệu từ địa chỉ vật lý

Page 28: Os   5 - memory management

Operating systems 28PTIT, 2012

Tăng tốc độ truy xuất bộ nhớ trong cơ chế phân trang

Sử dụng bộ nhớ kết hợp TLB (Translation look aside buffer)

Page 29: Os   5 - memory management

Operating systems 29PTIT, 2012

Bảng trang nhiều cấp

p1 p2 d

Cấu trúc địa chỉ trong bảng trang hai cấp

Page 30: Os   5 - memory management

Operating systems 30PTIT, 2012

Bài tập 1 Giả sử bộ nhớ chính được phân thành các đọan

có kích thước là 600K, 500K, 200K, 300K ( theo thứ tự ). Hãy cho biết các tiến trình có kích thước 212K, 417K, 112K và 426K ( theo thứ tự ) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng :

a) Chiến lược First fitb) Chiến lược Best fitc) Chiến lược Worst fit

Page 31: Os   5 - memory management

Operating systems 31PTIT, 2012

Bài tập 2

Tại sao kích thước trang luôn là lũy thừa của 2?

Xét một không gian địa chỉ có 8 trang, mỗi trang có kích thước 1K. Ánh xạ vào bộ nhớ vật lý có 32 khung.

a) Địa chỉ luận lý gồm bao nhiêu bit ?

b) Địa chỉ vật lý gồm bao nhiêu bit ?

Page 32: Os   5 - memory management

Operating systems 32PTIT, 2012

Bài tập 3 Xét một hệ thống sử dụng kỹ thuật phân trang,

với bảng trang được lưu trữ trong bộ nhớ chính. a) Nếu thời gian cho một lần truy xuất bộ nhớ bình

thường là 200 ns, thì mất bao nhiêu thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này ?

b) Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) là 75%, thời gian để tìm trong TLBs xem như bằng 0, tính thời gian truy xuất bộ nhớ trong hệ thống ( effective memory reference time)

Page 33: Os   5 - memory management

Operating systems 33PTIT, 2012

Bài tập 4

a. 0,430

b. 1,10

c. 2,500

d. 3,400

e. 4,112

Cho bảng phân đọan như hình dưới. Xác định địa chỉ vật lý ứng với các địa chỉ sau đây: