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

Tóm tắt Bài giảng Hệ điều hành - Chương 3: Quản lý bộ nhớ: ...g 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 tr...h 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 tốn mà HĐH sử dụng trong trường hợp này: Best-fit, Worst-fit, First-fit, và Next-fit 41 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í compac...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. 2.4 Kỹ thuật phân đoạn Chuyển đổi địa chỉ:  Mỗi địa chỉ ảo là một bộ  Số hiệu phân đoạn s : được sử dụng như chỉ mục đến bảng phân đoạn (địa chỉ cơ sở của phân...

pdf79 trang | Chia sẻ: havih72 | Lượt xem: 391 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Hệ điều hành - Chương 3: Quản lý bộ nhớ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 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
Phân mảnh nội
operating
system
(used)
yêu cầu kế tiếp là
18,462 bytes !!!
hole kích thước
18,464 bytes
cần quản lý khoảng 
trống 2 bytes !?!
OS sẽ cấp phát hẳn khối 18,464 bytes 
cho process  dư ra 2 bytes không dùng!
21
Phân cấp bộ nhớ
22
– 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)
23
2. KỸ THUẬT CẤP PHÁT BỘ NHỚ
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)
2.1 Kỹ thuật phân vùng cố định
 Khơng gian địa chỉ được chia thành 2 vùng cố
định
 Vùng địa chỉ thấp dùng để chứa HĐH
 Vùng cịn lại cấp cho các tiến trình được nạp vào
bộ nhớ chính (user program) 
26
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
27
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
2.1 Kỹ thuật phân vùng cố định
(8M)
(8M)
(8M)
(8M)
(8M)
(8M)
(8M)
OS (8M)
2M
4M
6M
8M
8M
12M
16M
OS(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
29
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
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ơn
kích thước của 1 phân vùng hoặc lớn hơn kích
thướ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ớ
31
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ụng
phân vùng cố định cĩ kích thước khơng bằng
nhau
 Cĩ 2 lựa chọn để đưa tiến trình vào dạng phân
vùng này
32
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
33
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
hàng đợi
 Khi cĩ phân vùng trống,
HĐH sẽ chọn tiến trình cĩ
kích thước vừa đủ để đưa
vào phân vùng
 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
2.2 Kỹ thuật phân vùng động
 Vùng nhớ user program khơng được phân chia
trướ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ẽ được
thu hồi để HĐH cấp cho tiến trình khác kể cả tiến
trình mới cĩ kích thước nhỏ hơn vùng nhớ của
tiến trình đã giải phĩng đã giải phĩng
35
2.2 Kỹ thuật phân vùng động
OS- 128k
Process1
64k
Process2
128k
Process3
32k
Process4
128k
Process5
120kProcess6
65k
1. Tiến trình 1,2,3,4 lần lượt được
nạp vào bộ nhớ
2. Tiến trình 2 kết thúc, vùng nhớ
được giải phĩng
3. Tiến trình 5 được nạp vào vùng
nhớ của tiến trình
2 vừa giải phĩng
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
cĩ vùng nhớ trống phù hợp để
nạp trong khi tổng dung lượng
nhớ cịn trống lớn hơn kích thước
mà tiến trình yêu cầu
36
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
37
2.2 Kỹ thuật phân vùng động
Cơ chế bản đồ Bit: Mỗi đơn vị cấp phát được đại
diện bởi một Bit trong bản đồ bit. Đơn vị cấp phát
cịn trống đại diện bằng bit 0, ngược lại đại diện
bằng bit 1.
Bản đồ bit
38
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
Mỗi phần tử gồm 4 trường chính:
 Trường đầu tiên: cho biết khối nhớ đã cấp phát (kí
hiệu P) hay cịn trống (kí hiệu H)
 Trường thứ 2: cho biết thư tự của đơn vị cấp phát
đầu tiên trong khối
 Trường thứ 3: cho biết đơn vị tổng số đơn vị cấp
phát trong khối
 Con trỏ Next
39
2.2 Kỹ thuật phân vùng động
40
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ích
thước lớn hơn kích thước của tiến trình đĩ, HĐH
phải quyết định chọn một khối nhớ phù hợp để nạp
tiế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 tốn mà HĐH sử dụng trong trường hợp này:
Best-fit, Worst-fit, First-fit, và Next-fit
41
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
Bộ nhớ chính được chia thành các phần bằng
nhau 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 được
chia thành các phần cĩ kích thước bằng kích
thướ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 được
nạ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
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 địa
chỉ 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 trang
riêng
Chuyển đổi địa chỉ
45
Mỗi địa chỉ phát sinh bởi CPU được chia thành hai
phầ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à 2m, 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ì
p d
page number page offset
m  n bits
(định vị từ 0  2m  n  1)
n bits
(định vị từ 0  2n  1)
Bảng phân trang sẽ có tổng cộng 2
m
/2
n
= 2
m  n
mục (entry)
2.3 Kỹ thuật phân trang
CPU p d f d
f
p
page table
logical
address 
physical
address 
physical
memory
f 0000
f 1111
f frames
46
VD
47
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.
49
Phân trang đa cấp
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
“valid”: cho biết là trang của process, do đó là một trang
hợp lệ.
“invalid”: cho biết là trang không của process, do đó là
một trang bất hợp lệ.
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 
không.
00000
10468
12287
2 v
3 v
4 v
7 v
8 v
9 v
0 i
0 i
frame
number
valid/
invalid bit
0
1
2
3
4
5
6
7
0
1
2 page 0
3 page 1
4 page 2
5
6
7 page 3
8 page 4
9 page 5
...
page n
16383
14 bit
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 trang
tương ứng cĩ hợp lệ với thuộc tính bảo vệ của nĩ
khơng.
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ười
dù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ỉ logic
thành địa chỉ vật lý. Sự chuyển đổi này là trong suốt
đối với người sử dụng.
2.4 Kỹ thuật phân đoạn
 Bộ nhớ chính được chia thành các phần cố định
cĩ kích thước khơng bằng nhau, được đánh số bắt
đầu từ 0 được gọi là các phân đoạn
 Khơng gian địa chỉ là một tập các phân đoạn
(segments).
 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ị:
.
54
55
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ĩa
thành địa chỉ vật lý một chiều. Sự chuyển đổi
nà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.
2.4 Kỹ thuật phân đoạn
Chuyển đổi địa chỉ:
 Mỗi địa chỉ ảo là một bộ 
 Số hiệu phân đoạn s : được sử dụng như chỉ mục đến
bảng phân đoạn (địa chỉ cơ sở của phân đoạn mà
đoạn chương trình tương ứng được nạp)
 địa chỉ tương đối d : cĩ giá trị trong khoảng từ 0 đến
giới hạn chiều dài của phân đoạn. Nếu địa chỉ
tương đối hợp lệ, nĩ sẽ được cộng với giá trị chứa
trong thanh ghi nền để phát sinh địa chỉ vật lý tương
ứng (cho biết độ dài của phân đoạn)
57
58
9.59
VD
Chia sẻ phân đoạn
60
 Một ưu điểm khác của kỹ thuật phân đoạn là khả
năng chia sẻ ở mức độ phân đoạn. Nhờ khả năng
này, các tiến trình cĩ thể chia sẻ với nhau từng
phần chương trình (ví dụ các thủ tục, hàm), khơng
nhất thiết phải chia sẻ tồn bộ chương trình như
trường hợp phân trang
 Mỗi tiến trình cĩ một bảng phân đoạn riêng, một
phân đoạn được chia sẻ khi các phần tử trong
bảng phân đoạn của hai tiến trình khác nhau cùng
chỉ đến một vị trí vật lý duy nhất
Chia sẻ code trong hệ phân đoạn
61
2.4 Kỹ thuật phân đoạn
 Khi tiến trình được nạp vào bộ nhớ thì tất cả các
đoạn của nĩ được nạp vào các phân đoạn cịn trống
trên bộ nhớ, các phân đoạn này cĩ thể khơng liên tục
nhau
 Để theo dõi các đoạn của các tiến trình khác nhau
trên bộ nhớ HĐH sử dụng các bảng phân đoạn
(SCT), thơng thường mỗi tiến trình cĩ 1 bảng phân
đoạn riêng
62
63
Trong hệ thống sử dụng kỹ thuật phân đoạn , hiện
tượng phân mảnh ngoại vi lại xuất hiện khi các khối
nhớ tự do đều quá nhỏ, khơng đủ để chứa một
phân đoạn.
Tường minh với người sử dụng, cung cấp một sự
thuận lợi để người lập trình tổ chức chương trình
và dữ liệu.
Kỹ thuật này cũng phải giải quyết vấn đề cấp phát
động
Kỹ thuật phân đoạn phải cấp phát các khối nhớ cĩ
kích thước khác nhau cho các phân đoạn trên bộ
nhớ vật lý kết hợp phân trang với phân đoạn.
2.5. Phân đoạn kết hợp phân trang 
(Paged segmentation)
64
Khơng gian địa chỉ là một tập các phân đoạn, mỗi
phân đoạn được chia thành nhiều trang. Khi một tiến
trình được đưa vào hệ thống, hệ điều hành sẽ cấp
phát cho tiến trình các trang cần thiết để chứa đủ
các phân đoạn của tiến trình.
Cơ chế MMU trong kỹ thuật phân đoạn kết 
hợp phân trang
65
Khơng gian địa chỉ là một tập các phân đoạn, mỗi
phân đoạn được chia thành nhiều trang.
Khi một tiến trình được đưa vào hệ thống, hệ điều
hành sẽ cấp phát cho tiến trình các trang cần thiết
để chứa đủ các phân đoạn của tiến trình.
Cơ chế MMU: Để hỗ trợ kỹ thuật phân đoạn, cần cĩ
một bảng phân đoạn, nhưng giờ đây mỗi phân
đoạn cần cĩ một bảng trang phân biệt.
Chuyển đổi địa chỉ
66
Mỗi địa chỉ logic là một bộ ba: 
 số hiệu phân đoạn (s): sử dụng như chỉ
mục đến phần tử tương ứng trong bảng phân
đoạn.
 số hiệu trang (p): sử dụng như chỉ mục đến
phần tử tương ứng trong bảng trang của
phânđoạn.
 địa chỉ tương đối trong trang (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.
Mơ hình phân đoạn kế hợp phân trang
67
68
Tĩm tắt
69
 Cĩ nhiều cách tiếp cận khác nhau để tổ chức quãn lý bộ nhớ, nhưng
tựu chung mong đạt đến các mục tiêu sau :
 Cĩ thể đáp ứng được đầy đủ các nhu cầu bộ nhớ của chương trình
với một bộ nhớ vật lý giới hạn
 Quá trình chuyển đổi địa chỉ, tổ chức cấp phát bộ nhớ là trong suốt
với người dùng, và cĩ khả năng tái định vị.
 Tận dụng hiệu quả bộ nhớ ( ít cĩ vùng nhớ khơng sử dụng được)
 Bộ nhớ được bảo vệ tốt
 Cĩ khả năng chia sẻ bộ nhớ giữa các tiến trình
 Một số cách tiếp cận tổ chức bộ nhớ chính
 Cấp phát liên tục : cĩ thể cấp phát các vùng nhớ liên tục cho các tiến
trình trong những phân vùng cĩ kích thước cố định hay biến động.
Điểm yếu của cách tiếp cận này là kích thước các chương trình cĩ thể
dược xử lý bị giới hạn bởi các kích thước của khối nhớ liên tục cĩ thể
sử dụng. Các hiện tượng phân mảnh ngoại vi, nội vi đều cĩ thể xuất
hiện
 Cấp phát khơng liên tục : cĩ thể cấp phát các vùng nhớ khơng liên tục
cho một tiến trình. Hai kỹ thuật thường được áp dụng là phân trang và
phân đoạn. Kỹ thuật phân trang cho phép loại bõ hiện tượng phân
mảnh ngoại vi, kỹ thuật phân đoạn loại bỏ hiện tượng phân mảnh nội
vi, nhưng phải giải quyết vấn đề cấp phát động.
3. KỸ THUẬT BỘ NHỚ ẢO
3.1 Khái niệm nhớ ảo (virtual memory)
 Để thực thi chương trình cĩ kích thước lớn hơn bộ
nhớ vật lý cấp phát cho nĩ
 cần xây dựng chương trình theo cấu trúc Overlay gây
khĩ khăn cho người lập trình
 Để khắc phục khĩ khăn cho người lập trình, ý
tưởng sử dụng bộ nhớ ảo ra đời
 Kỹ thuật bộ nhớ ảo cho phép xử lý một tiến trình
khơng được nạp tồn bộ vào bộ nhớ vật lý
71
Bộ nhớ ảo là một kỹ thuật hiện đại giúp cho người 
dùng được giải phĩng hồn tồn khỏi mối bận tâm 
về giới hạn bộ nhớ
3.1 Khái niệm nhớ ảo
 Bộ nhớ ảo mơ hình hố bộ nhớ như một bảng
lưu trữ rất lớn và đồng nhất, tách biệt hẳn khái
niệm khơng gian địa chỉ và khơng gian vật lý
Người sử dụng chỉ nhìn thấy và làm việc trong
khơng gian địa chỉ ảo, chuyển đổi sang khơng
gian vật lý do hệ điều hành thực hiện với sự trợ
giúp của các cơ chế phần cứng
72
3.2 Cài đặt bộ nhớ ảo
Cĩ thể cài đặt bộ nhớ ảo theo 2 kỹ thuật
 Phân trang theo yêu cầu (demand paging): Sử dụng
kỹ thuật phân trang kết hợp với kỹ thuật swap
 Phân đoạn theo yêu cầu: sử dụng kỹ thuật phân đoạn
kết hợp với kỹ thuật swap
73
3.2.1 Phân trang theo yêu cầu
Sử dụng kỹ thuật phân trang kết hợp với kỹ thuật
swap
Một chương trình được xem như 1 tập hợp các trang
thường trú trên bộ nhớ ngồi
Khi thực thi hệ thống khơng nạp tồn bộ chương
trình vào bộ nhớ trong mà chỉ nạp những trang cần
thiết trong thời điểm hiện tại
 Một trang chỉ được nạp vào bộ nhớ trong khi cần thiết
74
3.2.1 Phân trang theo yêu cầu
Với mơ hình này, cần cung cấp một cơ chế phần
cứng giúp phân biệt các trang đang ở trong bộ nhớ
chính và các trang trên đĩa. Cĩ thể sử dụng lại
bit valid-invalid nhưng với ngữ nghĩa mới:
 valid : trang tương ứng là hợp lệ và đang ở trong bộ
nhớ chính .
 invalid : hoặc trang bất hợp lệ (khơng thuộc về khơng
gian địa chỉ của tiến trình) hoặc trang hợp lệ
nhưng đang được lưu trên bộ nhớ phụ.
Một phần tử trong bảng trang mộ tả cho một trang
khơng nằm trong bộ nhớ chính, sẽ được đánh dấu
invalid và chứa địa chỉ của trang trên bộ nhớ phụ.
75
Cơ chế phần cứng
76
Cơ chế phần cứng hỗ trợ kỹ thuật phân trang theo
yêu cầu là sự kết hợp của cơ chế hỗ trợ kỹ thuật
phân trang và kỹ thuật swapping:
 Bảng trang: Cấu trúc bảng trang phải cho phép phản
ánh tình trạng của một trang là đang nằm trong bộ nhớ
chính hay bộ nhớ phụ.
 Bộ nhớ phụ: Bộ nhớ phụ lưu trữ những trang
khơng được nạp vào bộ nhớ chính. Bộ nhớ phụ
thường được sử dụng là đĩa, và vùng khơng gian đĩa
dùng để lưu trữ tạm các trang trong kỹ thuật
swapping được gọi là khơng gian swapping.
Thay thế trang
Thuật tốn thay thế trang: Thuật tốn lựa một trang
“nạn nhân” để chuyển ra bộ nhớ phụ với chung một
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.
Chúng ta đánh giá một giải thuật bằng cách chạy nĩ
trên một chuỗi các tham chiếu bộ nhớ cụ thể và tính
số lượng lỗi trang.
 Giải thuật thay thế tối ưu.
 Giải thuật thay thế NRU (Not-Recently-Used).
 Giải thuật thay thế FIFO.
 Giải thuật thay thế Second Chance.
 Giải thuật thay thế vịng trịn.
 Giải thuật thay thế LRU (Least Recently Used).
77
3.2.2 Phân đoạn đoạn theo yêu cầu
Bộ nhớ ảo bao gồm các đoạn (segment)
cĩ kích thuớc khơng cố định
Khi nạp đoạn vào bộ nhớ thì hệ điều
hành tìm khoảng trống đủ để nạp đoạn
Cĩ bảng đoạn quản lý các đoạn
78
3.2.3 Phân đoạn kết hợp phân trang
 Kết hợp các ưu điểm của phân đoạn và
phân trang
 Bộ nhớ ảo bao gồm các đoạn
 Trong mỗi đoạn thực hiện phân trang
79

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_3_quan_ly_bo_nho.pdf