Professional Documents
Culture Documents
IT007.N25.2 Lab6 HoMinhTri 21522701
IT007.N25.2 Lab6 HoMinhTri 21522701
----------------------------------------------------
2|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
int vt = 0;
for (int i = 0; i < page; i++) {
for (int j = pivot; j >= 0; j--) {
if (preArray[i] == ref[j]) {
flag[i] = j;
break;
}
if (j == 0)
flag[i] = -1;
}
}
int x = 100;
for (int i = 0; i < page; i++) {
if (flag[i] < x) {
x = flag[i];
vt = i;
}
}
return vt;
}
3|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
int current_page = 0;
for (int i = 0; i < page; i++) {
if (i == 0) { total_page[i][0] = ref[0]; }
else {
total_page[i][0] = -1;
}
}
page_fault[0] = 1;
for (int j = 1; j < n; j++) {
for (int i = 0; i < page; i++) {
total_page[i][j] = total_page[i][j-1];
preArray[i] = total_page[i][j - 1];
}
if (IsinpreArray(page, ref[j]) != -1) {
page_fault[j] = -1;
}
else {
current_page++;
if (current_page == page) current_page = 0;
total_page[current_page][j] = ref[j];
page_fault[j] = 1;
number_page_fault++;
}
}
PrintResult(total_page, n, page, ref);
}
4|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
current_page++;
total_page[current_page][j] = ref[j];
}
else {
5|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
number_page_fault++;
}
}
PrintResult(total_page, n, page, ref);
}
6|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
7|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
- Manual input:
-Input: 2 6 0 1 1 1 0 3 1 7 0 9 & 3 (page frame).
-FIFO:
OPT:
8|Page
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
LRU:
1. Nghịch lý Belady là gì? Sử dụng chương trình đã viết trên để chứng minh
nghịch lý này.
. Nghịch lý Belady là một hiện tượng trong đó tỉ lệ lỗi trang của một giải thuật thay thế
trang có thể tăng khi số lượng khung được cấp phát tăng. Điều này có nghĩa là việc cung
cấp nhiều bộ nhớ hơn cho một chương trình có thể làm cho nó chạy chậm hơn. Nghịch lý
Belady chỉ xảy ra với một số giải thuật thay thế trang, chẳng hạn như FIFO, Second
Chance hay Clock. Các giải thuật khác, như LRU (Least Recently Used), LFU (Least
Frequently Used) hay OPT (Optimal) không bị ảnh hưởng bởi nghịch lý Belady.
9 page fault.
10 | P a g e
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
10 page fault.
2. Nhận xét về mức độ hiệu quả và tính khả thi của các giải thuật FIFO, OPT, LRU.
❖ Giải thuật nào là bất khả thi nhất? Vì sao?
❖ Giải thuật nào là phức tạp nhất? Vì sao?
.Các giải thuật FIFO, OPT, LRU là các giải thuật thay thế trang trong bộ nhớ ảo,
có nhiệm vụ chọn trang nào sẽ bị đẩy ra khỏi bộ nhớ chính khi cần nạp một trang
mới vào. Các giải thuật này có những đặc điểm và hiệu quả khác nhau:
Giải thuật FIFO (First In First Out) là giải thuật đơn giản nhất, dựa trên
nguyên tắc trang nào được nạp vào bộ nhớ chính trước sẽ bị đẩy ra
trước. Giải thuật này có thể gây ra nhiều lỗi trang và bị ảnh hưởng bởi
nghịch lý Belady. Giải thuật này là khả thi nhưng không hiệu quả.
Giải thuật OPT (Optimal) là giải thuật tối ưu, dựa trên nguyên tắc thay thế
trang nào sẽ không được sử dụng trong khoảng thời gian dài nhất trong
tương lai. Giải thuật này có tỉ lệ lỗi trang thấp nhất và không bị nghịch lý
Belady. Tuy nhiên, giải thuật này là bất khả thi vì nó yêu cầu biết trước
chuỗi tham chiếu của các trang.
11 | P a g e
SV - MSSV: HỒ MINH TRÍ - 21522701
L A B 0 6 – Q U Ả N LÝ B Ộ N H Ớ
Giải thuật LRU (Least Recently Used) là giải thuật xấp xỉ giải thuật OPT,
dựa trên nguyên tắc thay thế trang nào đã không được sử dụng gần đây
nhất. Giải thuật này có hiệu quả cao và không bị nghịch lý Belady. Tuy
nhiên, giải thuật này là phức tạp vì nó yêu cầu theo dõi thời gian sử dụng của
các trang.
Vậy, có thể kết luận:
Giải thuật OPT là bất khả thi nhất vì nó yêu cầu biết trước chuỗi tham chiếu
của các trang.
Giải thuật LRU là phức tạp nhất vì nó yêu cầu theo dõi thời gian sử dụng
của các trang.
12 | P a g e
SV - MSSV: HỒ MINH TRÍ - 21522701