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

Chương 3: Quản lý bộ nhớ

59 4 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 đề Chương 3: Quản lý bộ nhớ
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Khoa học máy tính
Thể loại Tài liệu giảng dạy
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 59
Dung lượng 1,92 MB

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

Nội dung

Dẫn nhập:• Bộ nhớ chính là thiết bị lưu trữ duy nhất thông qua đó CPU có thể trao đổi thông tin với môi trường ngoài • Bộ nhớ chính được tổ chức như một mảng một chiều các từ nhớ word, m

Trang 1

Chương 3

Quản lý bộ nhớ

1

Trang 2

Dẫn nhập:

• Bộ nhớ chính là thiết bị lưu trữ duy nhất thông

qua đó CPU có thể trao đổi thông tin với môi

trường ngoài

• Bộ nhớ chính được tổ chức như một mảng một chiều các từ nhớ (word), mỗi từ nhớ có một địa chỉ

• Hầu hết các hệ điều hành hiện đại đều cho phép chế độ đa nhiệm => có nhiều process trong bộ

nhớ tại một thời điểm => cần vai trò quản lý bộ

nhớ của OS

2

Trang 3

Chức năng quản lý bộ nhớ của OS

• Sự tương ứng giữa địa chỉ logic và địa chỉ vật lý

(physic) : làm cách nào để chuyển đổi một địa chỉ

tượng trưng (symbolic) trong chương trình thành mộtđịa chỉ thực trong bộ nhớ chính?

• Quản lý bộ nhớ vật lý: làm cách nào để mở rộng bộ

nhớ có sẵn nhằm lưu trữ được nhiều tiến trình đồngthời?

• Chia sẻ thông tin: làm thế nào để cho phép hai tiến

trình có thể chia sẻ thông tin trong bộ nhớ?

• Bảo vệ: làm thế nào để ngăn chặn các tiến trình xâm

phạm đến vùng nhớ được cấp phát cho tiến trình

khác?

3

Trang 4

Địa chỉ và chuyển đổi địa chỉ (1)

• Địa chỉ

– Logic => không gian địa chỉ logic

– Vật lý => không gian đia chỉ vật lý

• Chuyển đổi địa chỉ logic => vật lý

– 3 thời điểm chuyển đổi

• Được thực hiện bởi ai?

• Ưu nhược điểm ?

4

Trang 5

Địa chỉ và chuyển đổi địa chỉ (2)

Test.cpp

Bộ nhớ chính 5

Trang 6

Địa chỉ và chuyển đổi địa chỉ (4)

6

Trang 7

Địa chỉ và chuyển đổi địa chỉ (3)

• Các bước chuyển đổi chương trình

7

Trang 8

Các loại địa chỉ

8

Trang 9

Chuyển đổi địa chỉ (1)

• Việc chuyển đổi địa chỉ logic -> địa chỉ vật lý có thể thực hiện vào một trong 3 thời điểm

• Thực hiện vào thời điểm biên dịch

• Phải biết trước vị trí nap tiến trình trong bộ nhớ ->

biêndịchlại cho những lần nạp sau

9

Trang 10

Chuyển đổi địa chỉ (2)

• Nhận xét

• load time

– Thựchiện bởi bộ loader, khi nạp vào bộ nhớ – Khi có sự thay đổi vị trí của tiến trình (sau đó) cần load lại để tính toán lại địa chỉ

Trang 11

Chuyển đổi địa chỉ (3)

• MMU (memory-management unit)– phần

cứng giúp chuyển đổi địa chỉ vào thời điểm

run-time

11

Trang 12

Các yêu cầu quản lý bộ nhớ

12

Trang 13

• Segmentation

• Paging

13

Trang 14

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

14

Trang 15

Cấp phát liên tục – fixed partitioning

Trang 16

Cấp phát liên tục – fixed partitioning

• Fixed partitioning

– Chiến lược cấp phát

• Sử dụng hàng đợi

– Nhiều hàng đợi – 1 hàng đợi

16

Trang 17

Cấp phát liên tục – fixed partitioning

• Fixed partitioning- Nhận xét :

– Phân mảnh nội (internal fragmentation)

– Mức độ đa chương phụ thuộc bởi số partition

17

Trang 18

Cấp phát liên tục – dynamic partitioning

• Dynamic partitioning

18

Trang 20

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

dynamic partitioning

20

Trang 21

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

dynamic partitioning

21

Trang 22

Hãy cấp phát bộ nhớ cho các tiến trình trên

theo thuật toán First-fit, Best-fit, Worst-fit

22

Trang 23

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

• Cách chuyển đổi địa chỉ

– Linker Loader

• Thực hiện vào thời điểm nạp

– Base & Bound

• Thực hiện vào thời điểm run-time

23

Trang 24

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

24

Trang 25

Hai thanh ghi hổ trợ chuyển đổi địa chỉ

25

Trang 26

• Không gian địa chỉ vật lý : có thể được tổ chức

– Variable partitions : segmentation

– Fixed partitions : frame

26

Trang 27

Cấp phát không liên tục

Segmentation (1)

27

Trang 28

- mỗi tiến trình một segment table

• Lưu trữ segment table :

Trang 29

Cấp phát không liên tục

Segmentation (3)

29

Trang 30

Cấp phát không liên tục

Segmentation (4)

30

Trang 31

Cấp phát không liên tục

Segmentation (5)

31

Trang 32

Cấp phát không liên tục

Segmentation (6)

32

Trang 33

Cấp phát không liên tục

Segmentation (7)

• Bài tập : một segment table

Segment Length Base

Trang 34

Cấp phát không liên tục

Segmentation (8)

34

Trang 35

– Các page của 1 chương trình có thể nạp vào

những frame không nằm liên tục nhau

35

Trang 36

Cấp phát không liên tục

Paging (2)

36

Trang 37

Cấp phát không liên tục

Paging (3)

• Chuyển đổi địa chỉ trong mô hình paging

37

Trang 38

Cấp phát không liên tục

Paging (4)

38

Trang 42

Cấp phát không liên tục

Paging (6)

42

Trang 44

Cấp phát không liên tục

Paging (8)

44

Trang 45

Cấp phát không liên tục

Paging (9)

45

Trang 46

• <page> : số hiệu page mà frame đang chứa

• <idp> : id của tiến trình đang sở hữu trang– Địa chỉ ảo là <idp, p, d>

46

Trang 47

Cấp phát không liên tục

Paging (11)

47

Trang 48

• Mô hình bộ nhớ ảo :

– Nạp và thi hành từng phần của tiến trình

48

Trang 49

Bộ nhớ ảo

• Bộ nhớ ảo với cơ chế phân trang

– Phân chia Không gian địa chỉ logic thành các page– Dùng bộ nhớ phụ (disk) để mở rộng bộ nhớ chính, lưu trữ các phần của tt chưa được nạp

– Bổ sung bit cờ hiệu trong Page Table để nhận dạngtình trạng của một page đã được nạp vào bộ nhớchính chưa

– Cơ chế chuyển đổi giữa BNC và BNP : swapping

49

Trang 53

Lỗi trang và thay thế trang

• Truy suất đến một trang được đánh dấu bất hợp

lệ (invalid) sẽ làm phát sinh lỗi trang, hdh sẽ thực hiện :

1 Xác định vị trí trang muốn truy suất trên đĩa

2 Tìm một khung trang trống trong bộ nhớ chính

1 Nếu tìm thấy -> đến bước 3

2 Nếu ko còn khung trang trống -> chọn 1 nạn nhân

3 Chuyển trang từ đĩa vào bnc; cập nhật nội dung

bảng trang, bảng khung trang

4 Tái kích hoạt tiến trình của người dùng

53

Trang 54

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

• Mục tiêu : chọn trang “nạn nhân” là trang mà sau khi thay thế sẽ gây ra ít lỗi trang nhất

• Các thuật toán :

– FIFO

• Ghi nhận thời điểm trang vào bnc => trang ở lâu nhất được chọn

– OPT ( tối ưu)

• Thay thế trang sẽ lâu được sử dụng nhất trong tương lai =>

ko khả thi – LRU (least recently used)

• Ghi nhận thời điểm cuối cùng trang được truy cập =>trang lâu nhất chưa được truy suất là trang được chọn

54

Trang 55

a) FIFO b) OPT c) LRU

55

Trang 59

• Đánh giá

– Số lỗi trang : FIFO > LRU > OPT

– FIFO : dễ cài đặt ;

59

Ngày đăng: 15/08/2022, 22:45

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w