Tải bản đầy đủ (.pdf) (4 trang)

hệ điều hành nguyễn văn hiệp bài 8 1 các chiến lược thay thế trangsinhvienzone com

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (118.06 KB, 4 trang )

Trang 1

MÔN : HỆ ĐIỀU HÀNH
Bài thực hành số 8.1 : Các chiến lược thay thế trang
I. Mục tiêu :
ƒ Giúp SV củng cố các kiến thức về các chiến lược tìm và giải phóng trang mỗi khi có
lỗi truy xuất trang.
II. Nội dung :
ƒ Cố gắng trả lời các câu hỏi ₫ề ra về các chiến lược thay thế trang.
III. Chuẩn ₫ầu ra :
ƒ Sinh viên nắm vững kiến thức về các chiến lược thay thế trang.
IV. Qui trình :
1. Nhắc lại lý thuyết :
Việc thực thi một chương trình kéo theo 1 chuỗi các hoạt ₫ộng truy xuất bộ nhớ. Để
thực hiện 1 lệnh, cần nhiều lần truy xuất bộ nhớ ₫ể lấy mã lệnh, lấy dữ liệu bị tác ₫ộng bởi
lệnh... mà chương trình thì gồm rất nhiều lệnh, có khi hàng tỉ lệnh cần thực thi. Mỗi lần truy
xuất 1 ô nhớ có thể dẫn ₫ến lỗi truy xuất trang (page fault) nếu trang này chưa có trong bộ
nhớ RAM, ₫iều này dẫn ₫ến việc tìm trang thật ₫ể nạp trang ảo ₫ang cần vào. Việc tìm trang
thật thường yêu cầu việc giải phóng trang thật ₫ang dùng. Các hoạt ₫ộng thực hành trong bài
này sẽ giúp SV hiểu rõ các cơ chế làm việc của các chiến lược thay thế trang khác nhau.
Tại sao việc thực thi chương trình dẫn ₫ến nhiều lỗi truy xuất trang ? Trong khoảng thời
gian ngắn, chương trình chỉ cần truy xuất 1 vùng rất nhỏ của không gian làm việc tổng thể
của nó, do ₫ó sẽ là rất lãng phí và không cần thiết ₫ể nạp toàn bộ không gian làm việc của
chương trình vào bộ nhớ RAM trước khi chạy, nhưng nếu chỉ nạp từng phần nhỏ (page) thì sẽ
có lúc chương trình cần truy xuất ô nhớ nằm trong trang mà chưa ₫ược nạp, lúc này hệ thống
có thể nạp trang mới ₫è lên vùng RAM mà trang cũ ₫ang chiếm : chiến lược thay thế trang sẽ
xác ₫ịnh trang cũ nào là nạn nhân bị chiếm lại.
Trong trường hợp mỗi process ₫ược cấp phát vùng nhớ RAM cố ₫ịnh (chiếm n trang
thật), ta có thể thêm từng trang mới cần dùng vào vùng nhớ ₫ược cấp phát cho chương trình,
tuy nhiên ₫ến lúc nào ₫ó, vùng nhớ này sẽ hết, lúc này ta phải giải phóng trang cũ khi cần
nạp trang mới vào. Kích thước vùng nhớ cấp phát cho 1 process thay ₫ổi theo yêu cầu của


process ₫ó, ta có thể dùng chiến lược kiểu "Working set" ₫ể giải quyết việc cấp phát hợp lý
cho từng process.
1. Giải thuật tối ưu :
Mỗi khi có lỗi truy xuất trang, nếu ta biết trang nào mà thời ₫iểm truy xuất lại nó xa nhất
so với hiện tại thì ta sẽ giải phóng trang này vì như vậy sẽ gây ít rủi ro nhất. Tuy nhiên, khó
lòng thực hiện ₫ược chính xác ý tưởng trên vì ta không thể tiên ₫oán chính xác cái gì sẽ xảy
ra trong tương lai.
Giả sử process P1 truy xuất bộ nhớ theo thứ tự các trang sau ₫ây :
5 0 1 2 0 3 0 4 2 3 0 3 2 1 2

SinhVienZone.com

/>

Trang 2

1.1 Câu hỏi 1
Giả sử hệ thống không hạn chế số trang thật dành cho process P1, việc truy xuất trang
của process P1 ở trên sẽ gây ra bao nhiêu lỗi truy xuất trang ? Tối thiểu cần phân phối cho
P1 bao nhiêu trang thật ₫ể ₫ạt ₫ược số lỗi truy xuất trang tối thiểu như trên ?
Xét trình tự truy xuất trang ở trên, ta thấy process cần truy xuất 6 trang ảo khác nhau
(chỉ số từ 0 tới 5), do ₫ó tối thiểu là tạo ra 6 lỗi truy xuất trang khác nhau.
Để số lỗi truy xuất trang tối thiểu như trên, ₫ừng bao giờ giải phóng trang mà sau ₫ó ta
cần truy xuất lại. Khi cần nạp trang 0, thay vì nạp vào trang thật mới, ta có thể nạp vào trang
thật ₫ang chứa trang 5 vì trang 5 không bao giờ cần truy xuất lại. Ngược lại khi nạp trang 1
thì không nên ₫è lên trang 0 vì trang 0 sẽ ₫ược truy xuất lại, ta nên dùng thật khác. Tương tự,
khi nạp trang 2 thì nên dùng trang thật mới. Tương tự, khi nạp trang 3 thì nên dùng trang thật
mới. Tương tự, khi nạp trang 4 thì nên dùng trang thật mới. Tóm lại tối thiểu cần cấp phát cho
P1 5 trang thật thì việc nạp trang ảo ₫ể thực thi P1 mới hiệu quả nhất (số lần gây lỗi truy xuất
trang thấp nhất = 6 lần). Ta nói việc cấp phát này là tối ưu, với ₫iều kiện là P1 chỉ tham khảo

trang 5, không ghi nội dung vào trang 5, vì nếu ghi nội dung vào trang 5 thì hệ thống phải tốn
nhiều thời gian ₫ể ghi nội dung trang 5 lên ₫ĩa trước khi dùng lại nó ₫ể chứa trang khác (trang
0), ₫iều này làm chậm việc thi hành P1 lại.
1.2 Câu hỏi 2
Miêu tả qui trình tiến triển của bảng quản lý trang và số lần lỗi truy xuất trang nếu hệ
thống chỉ cấp phát cho P1 3 trang thật.
Có tất cả 8 lần lỗi truy xuất trang như sau :
5
0

0

1

2

0

3

0

4

1

1

1


1

1

1

X

2

2

2

X

0

0

0

0

0

0

0


0

0

2

2

2

2

2

2

2

1

1

1

X

1
2
3
4

5

0

0

0

X

D

D

D

D

D

2

3

D

0

3


2

1

2

1

1

1

1

1

2

2

0

0

0

2

X


D

D

2. Giải thuật thây thế trang FIFO (First in - First out)
Tinh thần của giải thuật này là mỗi lần có lỗi truy xuất trang, hệ thống tìm và giải phóng
trang ₫ược nạp vào bộ nhớ thật cũ nhất (lâu nhất so với hiện tại).
2.1 Câu hỏi 3
Giả sử process P1 truy xuất bộ nhớ theo thứ tự các trang sau ₫ây :
5 0 1 2 0 3 0 4 2 3 0 3 2 1 2
Miêu tả qui trình tiến triển của bảng quản lý trang và số lần lỗi truy xuất trang nếu hệ
thống chỉ cấp phát cho P1 3 trang thật.
Có tất cả 12 lần lỗi truy xuất trang như sau :

SinhVienZone.com

/>

Trang 3

3 PF

5

0

0

1


2

0

3

0

4

2

3

0

3

2

1

2

1

1

1


1

X

2

2

2

X

0

0

0

0

0

2

2

2

2


X

1

1

0

0

0

0

X

1

1

1

1

1

X

2


1

1

1

X

2

2

2

2

2

X

0

0

0

X

D


D

D

D

D

D

1
2
3
4
5

0

0

0

X

D

D

D


D

D

D

3. Giải thuật thay thế trang cho cơ hội lần 2 hay còn gọi là FINUFO (First in Not Used
First Out)
Trong record chứa các thông tin quản lý trang, ta thêm 1 bit R ₫ể miêu tả tình trạng truy
xuất trang theo ý nghĩa sau : mỗi lần nạp trang vào bộ nhớ, bit R của trang ₫ược set lên 1,
mỗi lần process truy xuất trang, bit R của trang ₫ược set lên 1. Các record quản lý trang ₫ược
sắp xếp theo thứ tự nạp : trang ở ₫ầu danh sách là trang ₫ược nạp mới nhất, trang ở ₫uôi là
trang ₫ược nạp cũ nhất. Mỗi khi có lỗi truy xuất trang, trang ₫ược nạp cũ nhất (₫uôi danh
sách) ₫ược xem xét. Nếu bit R của nó là 1, ta xóa R =0 và dời nó lên ₫ầu danh sách chứ
chưa giải phóng nó (cho nó cơ hội lần 2). Như vậy, trang ₫ược chọn giải phóng là trang ₫ược
nạp vào cũ nhất mà có bit R = 0.
3.1 Câu hỏi 4
Giả sử process P1 truy xuất bộ nhớ theo thứ tự các trang sau ₫ây :
5 0 1 2 0 3 0 4 2 3 0 3 2 1 2
Miêu tả qui trình tiến triển của bảng quản lý trang và số lần lỗi truy xuất trang nếu hệ
thống chỉ cấp phát cho P1 3 trang thật.
Có tất cả 11 lần lỗi truy xuất trang như sau :
5

0

1

2


0

3

0

4

2

3

0

3

2

1

2

5,1

0,1
5,1

1,1
0,1
5,1


2,1
1,0
0,0

2,1
1,0
0,1

3,1
0,0
2,1

3,1
0,1
2,1

4,1
3,0
0,0

2,1
4,1
3,0

2,1
4,1
3,1

0,1

2,0
4,0

3,1
0,1
2,0

3,1
0,1
2,1

1,1
3,0
0,0

2,1
1,1
3,0

1

1

1

1

1

1


1

X

2

2

2

2

X

2

2

2

X

1

1

0

0


0

0

X

1

1

1

1

1

X

2

2

2

2

2

2


X

0

0

0

0

0

0

0

0

X

0
1
2
3
4
5

0
D


0
D

0
D

X
D

D

D

D

D

D

D

D

4. Giải thuật thay thế trang LRU (Least Recently Used)
Mỗi khi có lỗi truy xuất trang, ta chọn và giải phóng trang ₫ược sử dụng cũ nhất so với
hiện tại.

SinhVienZone.com


/>

Trang 4

4.1 Câu hỏi 5
Giả sử process P1 truy xuất bộ nhớ theo thứ tự các trang sau ₫ây :
5 0 1 2 0 3 0 4 2 3 0 3 2 1 2
Miêu tả qui trình tiến triển của bảng quản lý trang và số lần lỗi truy xuất trang nếu hệ
thống chỉ cấp phát cho P1 3 trang thật.
Có tất cả 10 lần lỗi truy xuất trang như sau :
5

0

1

2

0

3

0

4

2

3


0

3

2

1

2

5

0

1

2

0

3

0

4

2

3


0

3

2

1

2

5

0

1

2

0

3

0

4

2

3


0

3

2

1

5

0

1

2

2

3

0

4

2

2

0


3

3

D

D

D

D

D

D

D

D

D

D

5. Giải thuật dùng Working set
Working set là 1 chuỗi có thứ tự các hoạt ₫ộng truy xuất trang theo thời gian. Số trang
trong working set thay ₫ổi theo chức năng truy xuất. Định kỳ, working set ₫ược cập nhật ₫ể
chỉ giữ lại các trang ₫ược truy xuất trong khoảng thời gian gần nhất so với hiện tại.
5.1 Câu hỏi 6
Giả sử process P1 truy xuất bộ nhớ theo thứ tự các trang sau ₫ây :

5 0 1 2 0 3 0 4 2 3 0 3 2 1 2
Giả sử working set ₫ược cập nhật theo chu kỳ có 3 lần truy xuất bộ nhớ và ta chỉ giữ lại
các trang ₫ược truy xuất trong 3 lần cuối. Miêu tả qui trình tiến triển của working set và số lần
lỗi truy xuất trang.
Có tất cả 9 lần lỗi truy xuất trang như sau :
5

0

1

2

0

3

0

4

2

3

0

3

2


1

2

5

0

1

2

0

3

0

4

2

3

0

3

2


1

2

5

0

1

2

0

3

0

4

2

3

0

3

2


1

5

0

1

2

3

0

4

2

0

3

3

0

4

5


1
5

2
2

2

0

4

0

5
D

SinhVienZone.com

D

D

D

D

D


D

3

D

/>
D



×