0% found this document useful (0 votes)
19 views25 pages

07 MM

Tài liệu trình bày về quản lý bộ nhớ trong hệ thống máy tính, bao gồm các khái niệm như liên kết, không gian địa chỉ logic và vật lý, và các phương pháp phân bổ bộ nhớ như phân trang và phân đoạn. Nó cũng đề cập đến các vấn đề như hoán đổi, phân mảnh và bảo vệ bộ nhớ. Cuối cùng, tài liệu mô tả cách thức hoạt động của bảng trang và các kỹ thuật liên quan đến việc chia sẻ mã và dữ liệu giữa các tiến trình.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views25 pages

07 MM

Tài liệu trình bày về quản lý bộ nhớ trong hệ thống máy tính, bao gồm các khái niệm như liên kết, không gian địa chỉ logic và vật lý, và các phương pháp phân bổ bộ nhớ như phân trang và phân đoạn. Nó cũng đề cập đến các vấn đề như hoán đổi, phân mảnh và bảo vệ bộ nhớ. Cuối cùng, tài liệu mô tả cách thức hoạt động của bảng trang và các kỹ thuật liên quan đến việc chia sẻ mã và dữ liệu giữa các tiến trình.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Machine Translated by Google

Quản lý bộ nhớ

Quản lý bộ nhớ

Lý lịch

Trao đổi

Phân bổ liên tiếp

Phân trang

Phân đoạn

Phân đoạn với Phân trang

8.2

1
Machine Translated by Google

Lý lịch

Chương trình phải được đưa vào bộ nhớ và đặt trong một tiến trình để có thể chạy được

Hàng đợi đầu vào – tập hợp các tiến trình trên đĩa đang chờ được đưa vào bộ nhớ để chạy chương trình

Chương trình người dùng phải trải qua nhiều bước trước khi được chạy

8.3

Liên kết các lệnh và dữ liệu vào bộ nhớ

Địa chỉ liên kết của các hướng dẫn và dữ liệu với địa chỉ bộ nhớ có thể
xảy ra ở ba giai đoạn khác nhau

Thời gian biên dịch: Nếu vị trí bộ nhớ được biết trước, mã tuyệt đối có thể được tạo; phải biên dịch lại mã

nếu vị trí bắt đầu thay đổi

Thời gian tải: Phải tạo mã có thể di chuyển nếu vị trí bộ nhớ không được biết tại thời điểm biên dịch

Thời gian thực hiện: Liên kết bị trì hoãn cho đến thời gian chạy nếu quy trình có thể được di chuyển trong quá

trình thực hiện từ phân đoạn bộ nhớ này sang phân đoạn bộ nhớ khác. Cần hỗ trợ phần cứng cho bản đồ địa chỉ (ví

dụ: thanh ghi cơ sở và giới hạn).

8.4

2
Machine Translated by Google

Không gian địa chỉ logic so với không gian địa chỉ vật lý

Khái niệm về không gian địa chỉ logic được liên kết với không gian địa chỉ vật lý riêng biệt là trung tâm
của việc quản lý bộ nhớ phù hợp

Địa chỉ logic – được tạo ra bởi CPU; còn được gọi là địa chỉ ảo

Địa chỉ vật lý – địa chỉ mà đơn vị bộ nhớ nhìn thấy

Địa chỉ logic và địa chỉ vật lý giống nhau trong các lược đồ liên kết địa chỉ thời gian biên dịch và thời gian tải;

địa chỉ logic (ảo) và địa chỉ vật lý khác nhau trong lược đồ liên kết địa chỉ thời gian thực thi

8,5

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

Thiết bị phần cứng ánh xạ địa chỉ ảo thành địa chỉ vật lý

Trong sơ đồ MMU, giá trị trong thanh ghi di dời được thêm vào mọi địa chỉ do quy trình người dùng tạo ra
tại thời điểm nó được gửi đến bộ nhớ

Chương trình người dùng xử lý các địa chỉ logic ; nó không bao giờ nhìn thấy các địa chỉ vật lý thực tế

8.6

3
Machine Translated by Google

Di dời động sử dụng thanh ghi di dời

8.7

Tải động

Thói quen không được tải cho đến khi nó được gọi

Sử dụng không gian bộ nhớ tốt hơn; thói quen không sử dụng không bao giờ được tải

Hữu ích khi cần số lượng lớn mã để xử lý các trường hợp ít xảy ra

Không cần hỗ trợ đặc biệt từ hệ điều hành được thực hiện thông qua thiết kế chương trình

8.8

4
Machine Translated by Google

Liên kết động

Liên kết bị hoãn lại cho đến thời điểm thực hiện

Một đoạn mã nhỏ, stub, được sử dụng để xác định vị trí thư viện lưu trú trong bộ nhớ thích hợp

Stub thay thế chính nó bằng địa chỉ của chương trình con và thực hiện chương trình con

Hệ điều hành cần kiểm tra xem chương trình có nằm trong địa chỉ bộ nhớ của quy trình hay không

Liên kết động đặc biệt hữu ích cho các thư viện

8.9

Trao đổi

Một tiến trình có thể được hoán đổi tạm thời ra khỏi bộ nhớ đến một kho lưu trữ dự phòng, sau đó được đưa trở lại
bộ nhớ để tiếp tục thực thi

Lưu trữ dự phòng – đĩa nhanh đủ lớn để chứa các bản sao của tất cả các hình ảnh bộ nhớ cho tất cả người dùng; phải
cung cấp quyền truy cập trực tiếp vào các hình ảnh bộ nhớ này

Roll out, roll in – biến thể hoán đổi được sử dụng cho các thuật toán lập lịch dựa trên mức độ ưu tiên; quy
trình có mức độ ưu tiên thấp hơn được hoán đổi để quy trình có mức độ ưu tiên cao hơn có thể được tải và thực thi

Phần lớn thời gian hoán đổi là thời gian chuyển; tổng thời gian chuyển tỷ lệ thuận với lượng bộ nhớ được hoán
đổi

8.10

10

5
Machine Translated by Google

Sơ đồ xem của Swapping

8.11

11

Phân bổ liên tiếp

Bộ nhớ chính thường được chia thành hai phân vùng:

Hệ điều hành thường trú, thường được lưu giữ trong bộ nhớ thấp với vectơ ngắt

Các tiến trình của người dùng sau đó được lưu giữ trong bộ nhớ cao

Phân bổ phân vùng đơn

Sơ đồ đăng ký di dời được sử dụng để bảo vệ các quy trình người dùng khỏi nhau và khỏi việc thay đổi mã

và dữ liệu của hệ điều hành

Thanh ghi di dời chứa giá trị của địa chỉ vật lý nhỏ nhất; thanh ghi giới hạn chứa phạm vi địa chỉ logic – mỗi

địa chỉ logic phải nhỏ hơn thanh ghi giới hạn

8.12

12

6
Machine Translated by Google

Một cơ sở và một thanh ghi giới hạn xác định một không gian địa chỉ logic

8.13

13

Bảo vệ địa chỉ HW bằng các thanh ghi cơ sở và giới hạn

8.14

14

7
Machine Translated by Google

Phân bổ liên tiếp (Tiếp theo)

Phân bổ nhiều phân vùng

Lỗ – khối bộ nhớ khả dụng; các lỗ có kích thước khác nhau nằm rải rác khắp bộ nhớ

Khi một tiến trình đến, nó được phân bổ bộ nhớ từ một lỗ đủ lớn để chứa nó

Hệ điều hành duy trì thông tin về: a) các phân vùng đã phân

bổ b) các phân vùng trống (lỗ hổng)

Hệ điều hành Hệ điều hành Hệ điều hành Hệ điều hành

quá trình 5 quá trình 5 quá trình 5 quá trình 5

quá trình 9 quá trình 9

quá trình 8 quá trình 10

quá trình 2 quá trình 2 quá trình 2 quá trình 2

8.15

15

Vấn đề phân bổ lưu trữ động

Làm thế nào để đáp ứng yêu cầu có kích thước n từ danh sách các lỗ trống

First- it: Phân bổ lỗ đầu tiên đủ lớn. Best- it: Phân bổ lỗ

nhỏ nhất đủ lớn; phải tìm kiếm toàn bộ danh sách, trừ khi

được sắp xếp theo kích thước. Tạo ra lỗ còn lại nhỏ nhất.

Worst- it: Phân bổ lỗ lớn nhất ; cũng phải tìm kiếm toàn

bộ danh sách. Tạo ra lỗ còn lại lớn nhất.

Phù hợp đầu tiên và phù hợp nhất tốt hơn phù hợp tệ nhất về mặt tốc độ

và khả năng sử dụng lưu trữ

8.16

16

8
Machine Translated by Google

Phân mảnh

Phân mảnh bên ngoài


– tổng không gian bộ nhớ
tồn tại để đáp ứng
một yêu cầu, nhưng nó
không liền kề

Phân mảnh nội bộ


– bộ nhớ được phân bổ có thể
lớn hơn một chút so với
bộ nhớ được yêu cầu; sự khác
biệt về kích thước này là bộ
nhớ bên trong phân vùng,
nhưng không được sử dụng

Giảm bên ngoài

phân mảnh bằng cách


nén chặt

8.17

17

Phân trang

Không gian địa chỉ logic của một tiến trình có thể không liền kề; tiến trình được phân bổ bộ nhớ vật lý
bất cứ khi nào bộ nhớ này khả dụng

Chia bộ nhớ vật lý thành các khối có kích thước cố định gọi là khung (kích thước là lũy thừa
của 2, từ 512 byte đến 8192 byte)

Chia bộ nhớ logic thành các khối có cùng kích thước gọi là trang.

Theo dõi tất cả các khung hình miễn phí

Để chạy một chương trình có kích thước n trang, cần tìm n khung trống và tải chương trình

Thiết lập bảng trang để dịch địa chỉ logic sang địa chỉ vật lý

Phân mảnh nội bộ

8.18

18

9
Machine Translated by Google

Sơ đồ dịch địa chỉ

Địa chỉ do CPU tạo ra được chia thành:

Số trang (p) – được sử dụng như một chỉ mục vào bảng trang chứa địa chỉ cơ
sở của mỗi trang trong bộ nhớ vật lý

Độ lệch trang (d) – kết hợp với địa chỉ cơ sở để xác định địa chỉ bộ nhớ vật
lý được gửi đến đơn vị bộ nhớ

8.19

19

Kiến trúc dịch địa chỉ

8.20

20

10
Machine Translated by Google

Ví dụ về phân trang

8.21

21

Ví dụ về phân trang

8.22

22

11
Machine Translated by Google

Khung miễn phí

Trước khi phân bổ Sau khi phân bổ

8.23

23

Triển khai Bảng Trang

Bảng trang được lưu giữ trong bộ nhớ chính

Thanh ghi cơ sở bảng trang (PTBR) trỏ đến bảng trang

Thanh ghi độ dài bảng trang (PTLR) chỉ ra kích thước của bảng trang

Trong sơ đồ này, mọi truy cập dữ liệu/lệnh đều yêu cầu hai truy cập bộ nhớ. Một cho bảng trang và
một cho dữ liệu/lệnh.

Vấn đề truy cập hai bộ nhớ có thể được giải quyết bằng cách sử dụng bộ đệm phần cứng tra cứu nhanh
đặc biệt được gọi là bộ nhớ liên kết hoặc bộ đệm tra cứu dịch thuật (TLB)

8.24

24

12
Machine Translated by Google

Bộ nhớ liên kết

Bộ nhớ liên tưởng – tìm kiếm song song

Trang # Khung #

Dịch địa chỉ (A´, A´´)

Nếu A´ nằm trong thanh ghi kết hợp, hãy lấy khung # ra

Nếu không, hãy lấy khung # từ bảng trang trong bộ nhớ

8,25

25

Phần cứng phân trang với TLB

8,26

26

13
Machine Translated by Google

Thời gian truy cập hiệu quả

Tra cứu liên kết = đơn vị thời gian

Giả sử thời gian chu kỳ bộ nhớ là 1 micro giây

Tỷ lệ trúng đích – phần trăm số lần tìm thấy số trang trong các sổ đăng ký liên kết; tỷ lệ liên quan
đến số lượng sổ đăng ký liên kết

Tỷ lệ trúng đích =

Thời gian truy cập hiệu quả (EAT)

ĂN = (1 + ) + (2 + )(1 – )

= 2 + –

8.27

27

Bảo vệ bộ nhớ

Bảo vệ bộ nhớ được thực hiện bằng cách liên kết bit bảo vệ với mỗi khung

Bit hợp lệ-không hợp lệ được đính kèm vào mỗi mục trong bảng trang:

“hợp lệ” chỉ ra rằng trang được liên kết nằm trong không gian địa chỉ logic của quy trình và
do đó là một trang hợp lệ

“không hợp lệ” chỉ ra rằng trang không nằm trong không gian địa chỉ logic của quy trình

8.28

28

14
Machine Translated by Google

Bit hợp lệ (v) hoặc không hợp lệ (i) trong bảng trang

8.29

29

Cấu trúc bảng trang

Phân trang theo thứ bậc

Bảng trang băm

Bảng trang đảo ngược

8 giờ 30

30

15
Machine Translated by Google

Bảng trang phân cấp

Chia không gian địa chỉ logic thành nhiều bảng trang

Một kỹ thuật đơn giản là bảng trang hai cấp

8.31

31

Ví dụ về phân trang hai cấp

Địa chỉ logic (trên máy 32 bit có kích thước trang 4K) được chia thành:

số trang gồm 20 bit

một trang bù trừ bao gồm 12 bit

Vì bảng trang được phân trang nên số trang được chia thành:

số trang 10 bit độ

lệch trang 10 bit

Vì vậy, địa chỉ logic như sau:

số trang bù trừ trang

số pi trang 2
ngày

10 10 12

trong đó pi là chỉ mục vào bảng trang ngoài và p2 là độ dịch chuyển trong trang của bảng trang ngoài

8.32

32

16
Machine Translated by Google

Sơ đồ bảng trang hai cấp

8,33

33

8,34

34

17
Machine Translated by Google

Bảng trang đảo ngược

Một mục nhập cho mỗi trang bộ nhớ thực

Mục nhập bao gồm địa chỉ ảo của trang được lưu trữ trong vị trí bộ nhớ thực đó, với
thông tin về quy trình sở hữu trang đó

Giảm bộ nhớ cần thiết để lưu trữ từng bảng trang, nhưng tăng thời gian cần thiết để tìm
kiếm bảng khi tham chiếu trang xảy ra

Sử dụng bảng băm để giới hạn tìm kiếm thành một — hoặc nhiều nhất là một vài — mục bảng trang

8,35

35

Kiến trúc bảng trang đảo ngược

8,36

36

18
Machine Translated by Google

Trang chia sẻ

Mã chia sẻ

Một bản sao của mã chỉ đọc (có thể nhập lại) được chia sẻ giữa các tiến trình (tức là trình soạn thảo văn

bản, trình biên dịch, hệ thống cửa sổ).

Mã được chia sẻ phải xuất hiện ở cùng một vị trí trong không gian địa chỉ logic của tất cả các

quy trình

Mã và dữ liệu riêng tư

Mỗi quy trình giữ một bản sao riêng biệt của mã và dữ liệu

Các trang dành cho mã và dữ liệu riêng tư có thể xuất hiện ở bất kỳ đâu trong không gian địa chỉ logic

8,37

37

Ví dụ về trang được chia sẻ

8,38

38

19
Machine Translated by Google

Phân đoạn

Sơ đồ quản lý bộ nhớ hỗ trợ quan điểm của người dùng về bộ nhớ Một chương

trình là một tập hợp các phân đoạn. Một phân đoạn là một đơn vị logic như: chương

trình chính,

thủ tục,

hàm,

phương

pháp,

đối tượng, biến cục bộ, biến toàn

cục, khối chung,

ngăn

xếp, bảng ký hiệu, mảng

8.39

39

Quan điểm của người dùng về một chương trình

8,40

40

20
Machine Translated by Google

Quan điểm logic của phân đoạn

4
1

3 2
4

không gian người dùng không gian bộ nhớ vật lý

8.41

41

Kiến trúc phân đoạn

Địa chỉ logic bao gồm hai bộ:

<số phân đoạn, độ lệch>,

Bảng phân đoạn – ánh xạ các địa chỉ vật lý hai chiều; mỗi mục trong bảng có:

cơ sở – chứa địa chỉ vật lý bắt đầu nơi các phân đoạn nằm trong bộ nhớ giới hạn – chỉ

định độ dài của phân đoạn

Thanh ghi cơ sở bảng phân đoạn (STBR) trỏ đến vị trí của bảng phân đoạn trong bộ nhớ

Thanh ghi độ dài bảng phân đoạn (STLR) biểu thị số lượng phân đoạn được một chương trình sử dụng;

số đoạn s là hợp lệ nếu s < STLR

8,42

42

21
Machine Translated by Google

Kiến trúc phân đoạn (Tiếp theo)

Di dời.

bảng động

theo phân đoạn

Chia sẻ.

các đoạn chia sẻ

cùng số đoạn

Phân bổ.

phù hợp đầu tiên/phù hợp nhất

phân mảnh bên ngoài

8.43

43

Kiến trúc phân đoạn (Tiếp theo)

Bảo vệ. Với mỗi mục trong bảng phân đoạn liên kết:

bit xác thực = 0 quyền đọc/ghi/thực

thi phân đoạn bất hợp pháp

Các bit bảo vệ liên quan đến các phân đoạn; việc chia sẻ mã diễn ra ở cấp độ phân đoạn

Vì các phân đoạn có độ dài khác nhau nên việc phân bổ bộ nhớ là một vấn đề phân bổ lưu
trữ động

Một ví dụ phân đoạn được hiển thị trong sơ đồ sau

8,44

44

22
Machine Translated by Google

Kiến trúc dịch địa chỉ

8,45

45

Ví dụ về phân đoạn

8,46

46

23
Machine Translated by Google

Chia sẻ các phân đoạn

8,47

47

Phân đoạn với Phân trang – MULTICS

MULTICS (Dịch vụ thông tin và máy tính đa kênh)

Hệ thống MULTICS đã giải quyết các vấn đề về phân mảnh bên ngoài và thời
gian tìm kiếm dài bằng cách phân trang các phân đoạn

Giải pháp khác với phân đoạn thuần túy ở chỗ mục nhập bảng phân đoạn không
chứa địa chỉ cơ sở của phân đoạn mà chứa địa chỉ cơ sở của bảng trang cho phân
đoạn này.

8,48

48

24
Machine Translated by Google

Sơ đồ dịch địa chỉ MULTICS

8,49

49

Kết thúc

50

25

You might also like