1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành - Chương 3: Quản lý bộ nhớ

79 20 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 đề Quản lý bộ nhớ
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Hệ điều hành
Thể loại Bài giảng
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 79
Dung lượng 1,04 MB

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

Nội dung

Trong nội dung của chương 3 Chương 3: Quản lý bộ nhớ nằm ở bài giảng Hệ điều hành nhằm trình bày câu trả lời Vì sao phải tổ chức, quản lý bộ nhớ? CPU chỉ có thể trao đổi thông tin với bộ nhớ chính, các chương trình muốn được thực thi cần được nạp vào bộ nhớ chính, tạo lập tiến trình tương ứng để xử lý.

Trang 1

Chương 3

Quản lý bộ nhớ

Trang 2

1 TỔNG QUAN

Trang 3

1.1 Vì sao phải tổ chức, quản lý bộ nhớ?

 CPU chỉ có thể trao đổi thông tin với bộ nhớchính

 Các chương trình muốn được thực thi cần đượcnạp vào bộ nhớ chính, tạo lập tiến trình tươngứng để xử lý

 Các hệ thống đa chương trên bộ nhớ chính ngoàiHĐH có thể có nhiều tiến trình đang hoạt động

 Kích thước bộ nhớ chính là hữu hạn nhưng yêucầu bộ nhớ thì vô hạn

Trang 4

1.1 Vì sao phải tổ chức, quản lý bộ nhớ?

 Như vậy, HĐH cần phải tổ chức quản lý bộ nhớmột cách hợp lý để có thể:

 Đưa bất kỳ một tiến trình nào đó vào bộ nhớ khi

có yêu cầu, cho dù khi trên bộ nhớ không còn không gian trống

 Bảo vệ các tiến trình của hệ điều hành và các tiến trình trên bộ nhớ, tránh các trường hợp truy xuất bất hợp lệ xảy ra.

4

Trang 6

Tái định vị (Relocation)

 Trong các hệ thống đa chương không gian bộnhớ chính thường được chia sẽ cho nhiều tiếntrình và yêu cầu bộ nhớ của các tiến trình luônlớn hơn không gian bộ nhớ vật lý mà tiến trình

mà hệ thống hiện có

Cần thực hiện cơ chế hoán đổi (Swap):

 Một chương trình đang hoạt động trên bộ nhớ sẽ bị đưa ra đĩa (swap-out) và sẽ được đưa vào lại (swap-in) tại thời điểm thích hợp

 Khi thực hiện swap-in 1 chương trình vào lại bộ nhớ HĐH phải định vị nó đúng vào vị trí mà trước khi nó bị swap-out

6

Trang 7

Bảo vệ bộ nhớ (Protection)

 Mỗi tiến trình phải được bảo vệ để chống lại sựtruy xuất bất hợp lệ vô tình hay có chủ ý của cáctiến trình khác

 Mỗi tiến trình chỉ được phép truy suất đến khônggian địa chỉ mà HĐH đã cấp cho nó

 Bộ phận Qlý bộ nhớ phải biết không gian địa chỉcủa tất cả các tiến trình trên bộ nhớ

 Khi tiến trình đưa ra địa chỉ truy xuất bộ phận Qlý

bộ nhớ phải kiểm tra tất cả các yêu cầu truy xuất

bộ nhớ của mỗi tiến trình

Trang 8

Chia sẻ bộ nhớ (Sharing)

 Bất kỳ một chiến lược nào được cài đặt đều phải có tính mềm dẻo để cho phép nhiều tiến trình có thể truy cập đến cùng một địa chỉ trên

bộ nhớ chính

 Ví dụ, khi có nhiều tiến trình cùng thực hiện một chương trình thì việc cho phép mỗi tiến trình cùng truy cập đến một bản copy của chương trình sẽ thuận lợi hơn khi cho phép mỗi tiến trình truy cập đến một bản copy sở hữu riêng.

8

Trang 9

Tổ chức bộ nhớ logic (Logical organization)

 Bộ nhớ chính của hệ thống máy tính được tổ

chức như là một dòng hoặc một mảng

 Không gian địa chỉ bao gồm một dãy có thứ tự

các byte hoặc các word

Trang 10

Tổ chức bộ nhớ vật lý (Physical organization)

 Bộ nhớ máy tính được tổ chức theo 2 cấp:

 Bộ nhớ chính: tốc độ truy xuất nhanh, nhưng giá thành cao và dữ liệu không thể tồn tại lâu dài trên nó.

 Bộ nhớ phụ: giá rẻ, dung lượng lớn, dữ liệu được lưu trữ lâu dài nhưng tốc độ truy xuất chậm.

Theo giản đồ 2 cấp này, việc tổ chức luồng thôngtin giữa bộ nhớ chính và bộ nhớ phụ là nhiệm vụquan trọng của hệ thống

10

Trang 11

1.3 Không gian địa chỉ và không gian vật lý

Địa chỉ logic (logical address) – còn gọi là địa chỉ ảo ,

là tất cả các địa chỉ do bộ xử lý tạo ra.

Địa chỉ vật lý (physical address) - là địa chỉ thực tế mà

trình quản lý bộ nhớ nhìn thấy và thao tác.

Không gian địa chỉ – là tập hợp tất cả các địa chỉ ảo

phát sinh bởi một chương trình.

Không gian vật lý – là tập hợp tất cả các địa chỉ vật lý

tương ứng với các địa chỉ ảo.

 Việc ánh xạ tại thời điểm thực thi từ địa chỉ ảo tới địa chỉ vật lý được thực hiện bởi một thiết bị phần cứng được gọi là bộ quản lý bộ nhớ MMU (memory- management unit)

Trang 12

Sơ đồ tái định vị động (Dynamic Relocation)

 CPU sản sinh Địa chỉ lô-gíc

 MMU thực hiện: Địa chỉ lô-gíc + Nội dung thanh ghi tái định vị ==> Địa chỉ vật lý

12

Trang 13

Vị trí và Chức năng của MMU

(MMU gửi các địa chỉ vật lý sang Bộ nhớ)

Trang 14

SỬ DỤNG BASE REGISTER VÀ LIMIT REGISTER

(Số byte của Job2)

(Địa chỉ byte đầu của Job2)

Memory

14

Trang 15

THUẬT GIẢI BẢO VỆ BỘ NHỚ

(Bắt lỗi truy cập sai địa chỉ)

(CPU sản sinh 1

địa chỉ bộ nhớ)

Job i

Trang 16

Cơ chế overlay

 Tại mỗi thời điểm, chỉ giữ lại trong bộ nhớ những lệnh hoặc dữ liệu cần thiết, giải phóng các lệnh/dữ liệu chưa hoặc không cần dùng đến.

 Cơ chế này rất hữu dụng khi kích thước một process lớn hơn không gian bộ nhớ cấp cho process đó.

 Cơ chế này được điều khiển bởi người sử dụng (thông qua sự hỗ trợ của các thư viện lập trình) chứ không cần sự hỗ trợ của hệ điều hành

16

Trang 17

common routines 30K

overlay driver 10K

80K 70K

Đơn vị: byte

nạp và thực thi

Trang 18

Cơ chế swapping

 Một process có thể tạm thời bị swap ra khỏi bộ nhớ chính và lưu trên một hệ thống lưu trữ phụ Sau đó, process có thể được nạp lại vào bộ nhớ để tiếp tục quá trình thực thi.

Swapping policy: hai ví dụ

Round-robin: swap out P1 (vừa tiêu thụ hết quantum của nó), swap in P2 , thực thi P3 ,…

Roll out, roll in: dùng trong cơ chế định thời theo độ

ưu tiên (priority-based scheduling)

 Process có độ ưu tiên thấp hơn sẽ bị swap out nhường chỗ cho process có độ ưu tiên cao hơn mới đến được nạp vào bộ nhớ để thực thi

Hiện nay, ít hệ thống sử dụng cơ chế swapping trên

18

Trang 19

Minh họa cơ chế swapping

Trang 20

Phân mảnh (fragmentation)

Phân mảnh ngoại (external fragmentation)

 Kích thước không gian nhớ còn trống đủ để thỏa mãn một yêu cầu cấp phát, tuy nhiên không gian nhớ này không liên tục  có thể dùng cơ chế kết khối (compaction) để gom lại thành vùng nhớ liên tục.

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

 Kích thước vùng nhớ được cấp phát có thể hơi lớn hơn vùng nhớ yêu cầu.

 Ví dụ: cấp một khoảng trống 18,464 bytes cho một process yêu cầu 18,462 bytes.

 Hiện tượng phân mảnh nội thường xảy ra khi bộ nhớ thực được chia thành các khối kích thước cố định (fixed-sized block) và các process được cấp phát theo đơn vị khối Ví dụ: cơ chế phân trang (paging).

20

Trang 21

Phân mảnh nội

operating system

Trang 22

Phân cấp bộ nhớ

22

Trang 23

– Là nguyên tắc quan trọng của hệ thống máy tính.

– Thông tin từ RAM có thể được cơ chế phần cứng đưa vào bộ nhớ nhanh hơn gọi là Cache Khi CPU cần chính thông tin đó, không cần phải truy xuất RAM, mà lấy ngay từ Cache.

– Loại bộ nhớ này không do HĐH quản lý và cấp phát.

– Thực tế, RAM (Bộ nhớ Sơ cấp) là loại Cache nhanh so với đĩa cứng (Bộ nhớ thứ cấp) và HĐH có chức năng quản lý sự lưu chuyển dữ liệu giữa 2 loại bộ nhớ

NGUYÊN TẮC LƯU GẦN (CACHING)

Trang 24

2 KỸ THUẬT CẤP PHÁT BỘ NHỚ

Trang 25

 Kỹ thuật phân vùng cố định (Fixed partitioning)

 Kỹ thuật phân vùng động (Dynamic partitioning)

 Kỹ thuật phân trang (Paging)

 Kỹ thuật phân đoạn (Segmentation)

Trang 27

2.1 Kỹ thuật phân vùng cố định

 Với hệ thống đơn chương:

 Việc quản lý bộ nhớ đơn giản vì vùng nhớ user program chỉ cấp cho 1 chương trình

 HĐH sử dụng 1 thanh ghi giới hạn để ghi địa chỉ ranh giới giữa HĐH và chương trình người sử dụng

 Khi chương trình người sử dụng đưa ra địa chỉ cần truy xuất, HĐH sẽ so sánh với giá trị giới hạn được ghi trong thanh ghi giới hạn

 Nếu nhỏ hơn giá trị giới hạn thì HĐH từ chối việc truy suất

 Ngược lại, nếu lớn hơn sẽ cho phép truy xuất

=> Nhiệm vụ quản lý sẽ trở nên đơn giản

Trang 28

2.1 Kỹ thuật phân vùng cố định

 Với hệ thống đa chương:

 Vùng nhớ user program được chia n phần không nhất thiết phải bằng nhau Mỗi phần được được gọi là 1 phân vùng

 Mỗi tiến trình có thể được nạp vào 1 phân vùng bất kỳ nếu kích thước của nó <= kích thước của phân vùng và phân vùng này còn trống

 Khi có tiến trình cần được nạp vào bộ nhớ mà không còn phân vùng trống thí HĐH sẽ swap-out 1 tiến trình tại 1 phân vùng nào đó có kích thước vừa đủ, không chứa tiến trình đang ở trạng thái ready hoặc running và không có quan hệ với tiến trình đang ở trạng thái running khác để nạp tiến trình vừa có yêu cầu

28

Trang 29

2.1 Kỹ thuật phân vùng cố định

(8M)(8M)(8M)(8M)(8M)(8M)(8M)

OS (8M)

2M4M6M8M8M12M16MOS(8M)

Phân vùng kích thước bằng nhau Phân vùng kích thước không bằng nhau

Ví dụ về phân vùng cố định của bộ nhớ 64MByte

Trang 30

2.1 Kỹ thuật phân vùng cố định

 Có 2 khó khăn với việc dùng phân vùng cố định cókích thước bằng nhau

 Thứ 1: Nếu chương trình có kích thước quá lớn so với

1 kích thước của phân vùng, để giải quyết việc này thì:

 Người lập trình phải thiết kế chương trình theo cấu trúc overlay

 Chỉ 1 phần cần thiết của chương trình mới được nạp vào bộ nhớ lúc nạp chương trình Khi cần mudun nào

đó mà không sẵn có trong bộ nhớ người sử dụng phải nạp nó vào đúng phân vùng của chương trình và sẽ ghi đè lên bất kỳ chương trình hoặc dữ liệu ở trong đó

30

Trang 31

2.1 Kỹ thuật phân vùng cố định

 Thứ 2: Khi kích thước của chương trình nhỏ hơnkích thước của 1 phân vùng hoặc lớn hơn kíchthước của phân vùng nhưng không phải là bội

số của kích thước phân vùng

Điều này gây ra sự phân mảnh nội vi, lãng phí

bộ nhớ

Trang 32

2.1 Kỹ thuật phân vùng cố định

 Để khắc phục nhược điểm này có thể sử dụngphân vùng cố định có kích thước không bằngnhau

 Có 2 lựa chọn để đưa tiến trình vào dạng phânvùng này

32

Trang 33

2.1 Kỹ thuật phân vùng cố định

 Lựa chọn 1:

 Mỗi phân vùng có một hàng

đợi tương ứng

 Khi 1 tiến trình cần được nạp

vào bộ nhớ sẽ đưa vào hàng

đợi của phân vùng có kích

thước vừa đủ để chứa nó để

được đưa vào phân vùng

 Nhược điểm: Có thể có phân

vùng đang trống nhưng lại có

nhiều tiến trình đang chờ để

vào phân vùng khác

OS

Tiến trình mới

Trang 34

2.1 Kỹ thuật phân vùng cố định

 Lựa chọn 2:

 Dùng 1 hàng đời chung cho

tất cả các phân vùng

 Khi có tiến trình muốn nạp

vào bộ nhớ nhưng chưa

được nạp sẽ được đưa vào

 Phương pháp này gây khó

khăn trong việc lựa chọn tiến

trình để nạp vào phân vùng

OS

Tiến trình mới

34

Trang 35

2.2 Kỹ thuật phân vùng động

 Vùng nhớ user program không được phân chiatrước

 Khi có tiến trình nạp vào bộ nhớ HĐH cấp cho

nó không gian nhớ đúng kích thước của nó

 Khi tiến trình kết thúc vùng nhớ của nó sẽ đượcthu hồi để HĐH cấp cho tiến trình khác kể cả tiếntrình mới có kích thước nhỏ hơn vùng nhớ củatiến trình đã giải phóng đã giải phóng

Trang 36

2.2 Kỹ thuật phân vùng động

OS- 128k

Process1 64k

Process2 128k

Process3 32k

Process4 128k

Process5 120k

Process6 65k

1 Tiến trình 1,2,3,4 lần lượt được

4 Tiến trình 6 yêu cầu được nạp vào

bộ nhớ nhưng không thể vì không

Trang 37

2.2 Kỹ thuật phân vùng động

 Trong kỹ thuật phân vùng động, HĐH phải đưa ra các

cơ chế thích hợp để quản lý các khối nhớ đã cấp phát hay còn trống trên bộ nhớ.

 HĐH sử dụng 2 cơ chế: Bản đồ bít và Danh sách liên kết.

 Hai cơ chế HĐH đều chia không gian nhớ thành các đơn vị cấp phát có kích thước bằng nhau, các đơn vị cấp phát liên tiếp nhau tạo thành 1 khối nhớ, HĐH cấp phát các khối nhớ này cho các tiến trình

Trang 38

2.2 Kỹ thuật phân vùng động

 Cơ chế bản đồ Bit: Mỗi đơn vị cấp phát được đạidiện bởi một Bit trong bản đồ bit Đơn vị cấp phátcòn trống đại diện bằng bit 0, ngược lại đại diệnbằng bit 1

Bản đồ bit

38

Trang 39

2.2 Kỹ thuật phân vùng động

 Cơ chế danh sách liên kết:

 Mỗi khối trên bộ nhớ được đại diện bởi một phần tử trong danh sách liên kết

Trang 40

2.2 Kỹ thuật phân vùng động

40

Trang 41

2.2 Kỹ thuật phân vùng động

 Khi có một tiến trình cần được nạp vào bộ nhớ mà

bộ nhớ có nhiều hơn một khối nhớ trống có kíchthước lớn hơn kích thước của tiến trình đó, HĐHphải quyết định chọn một khối nhớ phù hợp để nạptiến trình sao cho việc lựa chọn này dẫn đến việc sửdụng bộ nhớ chính là hiệu quả nhất

 Thuật toán mà HĐH sử dụng trong trường hợp này:Best-fit, Worst-fit, First-fit, và Next-fit

Trang 42

 Dùng để quyết định cấp phát khối bộ nhớ trống

nào cho một process

 Mục tiêu: giảm chi phí

compaction

 Các chiến lược placement

Best-fit : chọn khối nhớ trống

nhỏ nhất

First-fit : chọn khối nhớ trống

phù hợp đầu tiên kể từ đầu bộ nhớ

Next-fit : chọn khối nhớ trống

phù hợp đầu tiên kể từ vị trí cấp phát cuối cùng

Worst-fit : chọn khối nhớ

trống lớn nhất

Trang 43

 Bộ nhớ chính được chia thành các phần bằngnhau và cố định, được đánh số bắt đầu từ 0 và

được gọi là các khung trang (page frame).

 Không gian địa chỉ của các tiến trình cũng đượcchia thành các phần có kích thước bằng kíchthước của một khung trang được gọi là các trang

(page).

 Khi tiến trình nạp vào bộ nhớ thì các trang đượcnạp vào các khung trang bất kỳ còn trống có thểkhông liên tiếp nhau

2.3 Kỹ thuật phân trang

Trang 44

Cơ chế MMU trong kỹ thuật phân trang

44

 Cơ chế phần cứng hỗ trợ thực hiện chuyển đổi địa

chỉ trong cơ chế phân trang là bảng trang (pages

table). Mỗi phần tử trong bảng trang cho biết các địachỉ bắt đầu của vị trí lưu trữ trang tương ứng trong

bộ nhớ vật lý (số hiệu khung trang trong bộ nhớ vật

lý đang chứa trang ) Mỗi tiến trình có bảng trangriêng

Trang 45

Chuyển đổi địa chỉ

 Mỗi địa chỉ phát sinh bởi CPU được chia thành haiphần:

số hiệu trang - Page number (p): sử dụng như chỉ mục đến phần tử tương ứng trong bảng trang.

địa chỉ tương đối trong trang - Page offset (d): kết hợp với địa chỉ bắt đầu của trang để tạo ra địa chỉ vật lý mà trình quản lý bộ nhớ sử dụng.

 Nếu kích thước của không gian địa chỉ ảo là 2 m , và kích thước của trang là 2 n (đơn vị là byte hay word tùy theo kiến trúc máy) thì

page number page offset

m  n bits (định vị từ 0  2 m  n  1 )

n bits (định vị từ 0  2 n  1) Bảng phân trang sẽ có tổng cộng 2 m /2 n = 2 m  n mục (entry)

Trang 46

2.3 Kỹ thuật phân trang

f p

page table

logical address

physical address

physical memory

f 00…00

f 11…11

f frames

46

Trang 47

VD

Trang 48

Tổ chức lưu trữ bảng trang:

48

 Đa số các hệ điều hành cấp cho mỗi tiến trình

một bảng trang

 Nếu hệ điều hành quản lý một không gian địa chỉ

có dung lượng quá thì bảng trang đòi hỏi một vùng nhớ qúa lớn

=> Giải pháp: Phân trang đa cấp

Trang 49

Phaân trang ña caáp

Trang 50

Bảo vệ bộ nhớ

 Việc bảo vệ bộ nhớ được hiện thực bằng cách gắn với frame các bit bảo vệ (protection bits) được giữ trong bảng phân trang Các bit này biểu thị các thuộc tính sau

read-only, read-write, execute-only

 Ngoài ra, còn có một valid/invalid bit gắn với mỗi mục trong bảng phân trang

hợp lệ.

một trang bất hợp lệ.

Trang 51

Bảo vệ bằng valid/ invalid bit

 Mỗi trang nhớ có kích thước 2K = 2048

 Process có kích thước 10,468  phân mảnh nội ở frame 9

(chứa page 5), các địa chỉ ảo > 12287 là các địa chỉ invalid.

 kiểm tra truy xuất đến bảng phân trang có nằm trong bảng hay

valid/

invalid bit

0 1 2 3 4 5 6 7

0 1

2 page 0

3 page 1

4 page 2 5

Trang 52

Chia sẻ bộ nhớ trong cơ chế phân trang

52

 Cho phép chia sẻ các trang giữa các tiến trình ánh

xạ nhiều địa chỉ logic vào một địa chỉ vật lý duy nhất

 HĐH kiểm tra các thao tác truy xuất trên khung trangtương ứng có hợp lệ với thuộc tính bảo vệ của nókhông

Trang 53

 Loại bỏ được hiện tượng phân mảnh ngoại vi nhưng vẫn còn hiện tượng nội vi Nếu kích thước của tiến trình không phải là bội số của kích thước 1 khung trang.

 Có sự phân biệt rạch ròi giữa góc nhìn của ngườidùng và bộ phận quản lý bộ nhớ:

Góc nhìn của người sử dụng: Tiến trình của người dùng nhìn bộ nhớ như là một không gian liên tục, đồng nhất

và chỉ chứa duy nhất bản thân tiến trình này.

Góc nhìn của bộ nhớ vật lý: Tiến trình của người sử dụng được lưu trữ phân tán khắp bộ nhớ, trong bộ nhớ

đồng thời cũng chứa những tiến trình khác.

 Phần cứng đảm nhiệm việc chuyển đổi địa chỉ logicthành địa chỉ vật lý Sự chuyển đổi này là trong suốtđối với người sử dụng

Trang 54

2.4 Kỹ thuật phân đoạn

 Các phân đoạn là những phần bộ nhớ kích thước

khác nhau và có liên hệ logic với nhau Mỗi phân

đoạn có một tên gọi (số hiệu phân đoạn) và một độdài

 Người dùng sẽ thiết lập mỗi địa chỉ với hai giá trị:

<số hiệu phân đoạn, offset>.

54

Trang 56

Cơ chế MMU trong kỹ thuật phân đoạn

56

 Cần phải xây dựng một ánh xạ để chuyển đổi cácđịa chỉ 2 chiều được người dùng định nghĩathành địa chỉ vật lý một chiều Sự chuyển đổinày được thực hiện qua một bảng phân đoạn.

 Mỗi thành phần trong bảng phân đoạn bao gồm

một thanh ghi nền và một thanh ghi giới hạn:

 Thanh ghi nền lưu trữ địa chỉ vật lý nơi bắt đầu phân đoạn trong bộ nhớ

 Thanh ghi giới hạn đặc tả chiều dài của phân đoạn.

Ngày đăng: 08/05/2021, 12:47

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm