#include <stdio.h>
void fifo(int chuoi_tham_chieu[], int size, int so_khung_trang)
{
int z;
for(z = 0; z < size; z++) {
printf("%d ", chuoi_tham_chieu[z]);
}
printf("\n%d\n", size);
printf("%d\n", so_khung_trang);
// int i, j, n, a[50], frames[5], frame, k, available, count = 0;
// printf(" \nNhập số phần tử chuỗi tham chiếu: \n");
// scanf("%d", &n);
// printf(" \nNhập vào chuỗi tham chiếu: \n");
// for (i = 1; i <= n; i++)
// scanf("%d", &a[i]);
// printf("\nNhập vào số khung trang :\n");
// scanf("%d", &frame);
// for (i = 0; i < frame; i++)
// frames[i] = -1; // Giả sử ban đầu các frame trống
// j = 0;
// printf("\t|Chuỗi|\t|Khung trang");
// for (k = 0; k < frame - 1; k++)
// printf("\t");
// printf("|\n");
// for (i = 1; i <= n; i++)
// {
// printf("\t| %d |\t", a[i]);
// available = 0; // trang không có sẵn
// for (k = 0; k < frame; k++)
// if (frames[k] == a[i]) // kiểm tra trang có sẵn
// available = 1; // trang có sẵn
// if (available == 0) // thay thế trang nếu không có sẵn
// {
// frames[j] = a[i];
// j = (j + 1) % frame;
// count++;
// printf("|");
// for (k = 0; k < frame; k++)
// printf("%d\t", frames[k]);
// printf("| F"); // Dấu hiệu nhận biết xảy ra lỗi trang
// }
// else
// {
// printf("|");
// for (k = 0; k < frame; k++)
// printf("%d\t", frames[k]);
// printf("|");
// }
// printf("\n");
// }
// printf("Số trang lỗi là: %d\n", count);
// return 0;
}
void otp(int chuoi_tham_chieu[], int size, int so_khung_trang) {
}
void lru(int chuoi_tham_chieu[], int size, int so_khung_trang) {
}
void chon_giai_thuat(int chuoi_tham_chieu[], int size, int so_khung_trang) {
int choice;
do
{
printf("-----Page Replacement algorithm-----\n");
printf("1. Giải thuật FIFO\n");
printf("2. Giải thuật OTP(optimal)\n");
printf("3. Giải thuật LRU\n");
printf("4. Exit\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
fifo(chuoi_tham_chieu, size, so_khung_trang);
break;
case 2: /*Call function here to do the required operation*/
otp(chuoi_tham_chieu, size, so_khung_trang);
break;
case 3: /*Call function here to do the required operation*/
lru(chuoi_tham_chieu, size, so_khung_trang);
break;
case 4:
break;
default:
printf("Wrong Choice. Enter again\n");
break;
}
} while (choice != 4);
}
void nhap_so_khung_trang(int chuoi_tham_chieu[], int size) {
printf("Nhập số khung trang\n");
int so_khung_trang;
scanf("%d", &so_khung_trang);
chon_giai_thuat(chuoi_tham_chieu, size, so_khung_trang);
}
void nhap_chuoi_tham_chieu() {
printf("Nhâp số lượng phần từ của chuỗi tham chiếu:\n");
int size;
int array[100];
scanf("%d", &size);
int a;
for( a = 0; a < size; a = a + 1 ){
scanf("%d", &array[a]);
}
nhap_so_khung_trang(array, size);
}
void printmenu()
{
int choice;
int size = 12;
int chuoi_tham_chieu[] = {0, 2, 1, 6, 4, 0, 1, 0, 3, 1, 2, 1};
do
{
printf("-----Page Replacement algorithm-----\n");
printf("1. Chuỗi tham chiếu mặc định.\n");
printf("2. Nhập chuỗi tham chiếu bằng tay\n");
printf("3. Exit\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
nhap_so_khung_trang(chuoi_tham_chieu, 12);
break;
case 2:
nhap_chuoi_tham_chieu();
break;
case 3:
break;
default:
printf("Wrong Choice. Enter again\n");
break;
}
} while (choice != 3);
}
void main()
{
printmenu();
}
Created
May 30, 2017 15:41
-
-
Save buixuanhai/934dc0e30c849af385112da7fc51df01 to your computer and use it in GitHub Desktop.
Hoang Trieu Lab6
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment