07 MM
07 MM
Quản lý bộ nhớ
Quản lý bộ nhớ
Lý lịch
Trao đổi
Phân trang
Phân đoạn
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
Đị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ã
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í
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ỉ 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
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
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 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
8.11
11
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
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ã
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
8.14
14
7
Machine Translated by Google
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
8.15
15
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
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
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 độ
8.16
16
8
Machine Translated by Google
Phân mảnh
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.
Để 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ý
8.18
18
9
Machine Translated by Google
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
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
8.23
23
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
Trang # Khung #
Nếu A´ nằm trong thanh ghi kết hợp, hãy lấy khung # ra
8,25
25
8,26
26
13
Machine Translated by Google
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 =
Ă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
8 giờ 30
30
15
Machine Translated by Google
Chia không gian địa chỉ logic thành nhiều bảng trang
8.31
31
Địa chỉ logic (trên máy 32 bit có kích thước trang 4K) được chia thành:
Vì bảng trang được phân trang nên số trang được chia thành:
số trang 10 bit độ
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
8,33
33
8,34
34
17
Machine Translated by Google
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
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
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
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,
ngăn
8.39
39
8,40
40
20
Machine Translated by Google
4
1
3 2
4
8.41
41
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ỉ
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;
8,42
42
21
Machine Translated by Google
Di dời.
bảng động
Chia sẻ.
cùng số đoạn
Phân bổ.
8.43
43
Bảo vệ. Với mỗi mục trong bảng phân đoạn liên kết:
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
8,44
44
22
Machine Translated by Google
8,45
45
Ví dụ về phân đoạn
8,46
46
23
Machine Translated by Google
8,47
47
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
8,49
49
Kết thúc
50
25