12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
操作系统课程设计报告模板 操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。以下是小编整理的操作系统课程设计报告模板,欢迎阅读。 一、课程设计任...
以下为本文的正文内容,请查阅,本站为公益性网站,复制本文以及下载DOC文档全部免费。
操作系统课程设计报告模板
操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。以下是小编整理的操作系统课程设计报告模板,欢迎阅读。
一、课程设计任务划分
二、基本原理
(一)页面置换算法定义
在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内 存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。
(二)所使用的算法
1) 最佳置换算法(OPT):将以后永不使用的或许是在最
长(未来)时间内 不再被访问的页面换出。
2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即 选择在内存中驻留时间最久的页面予以淘汰。
3) 最近最久未使用算法(LRU):淘汰最近最久未被使用 的页面。
(三)设计思想
选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换:
OPT基本思想:
是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组next[mSIZE]记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。 FIFO基本思想:
是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数组time[mSIZE]记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。 LRU基本思想:
是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组flag[10]标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。
三、基本思路
实验环境:vc++,编程语言:c语言 #include #include /*全局变量*/
int mSIZE; /*物理块数*/
int pSIZE; /*页面号引用串个数*/
static int memery[10]={0}; /*物理块中的页号*/ static int page[100]={0}; /*页面号引用串*/ static int temp[100][10]={0}; /*辅助数组*/ /*置换算法函数*/ void FIFO(); void LRU(); void OPT(); /*辅助函数*/
void print(unsigned int t); void designBy(); void download();
void mDelay(unsigned int Delay); /*主函数*/ void main() {
int i,k,code; system("color 0A"); designBy(); printf("┃请按任意键进行初始化操作... ┃ "); printf("┗━━━━━━━━━━━━━━━━━━━━━┛ "); printf(" >>>"); getch(); system("cls"); system("color 0B"); printf("请输入物理块的个数(M<=10):"); scanf("%d",&mSIZE); printf("请输入页面号引用串的个数(P<=100):"); scanf("%d",&pSIZE); puts("请依次输入页面号引用串(连续输入,无需隔开):"); for(i=0;i
scanf("%1d",&page[i]); download(); system("cls"); system("color 0E"); do{ puts("输入的页面号引用串为:"); for(k=0;k<=(pSIZE-1)/20;k++)
{ for(i=20*k;(i
(i==pSIZE-1))) printf("%d ",page[i]); else printf("%d ",page[i]); } } printf("* * * * * * * * * * * * * * * * * * * * * * * "); printf("* 请选择页面置换算法: * "); printf("* ----------------------------------------- * ");
printf("* 1.先进先出(FIFO) 2.最近最久未使用(LRU) * "); printf("* 3.最佳(OPT) 4.退出 * "); printf("* * * * * * * * * * * * * * * * * * * * * * * "); printf("请选择操作:[ ]"); scanf("%d",&code); switch(code) {
case 1:
FIFO(); break; case 2:
LRU(); break; case 3:
OPT(); break; case 4: system("cls"); system("color 0A"); designBy(); /*显示设计者信息后退出*/ printf("┃谢谢使用页面置换算法演示器!
┃ "); printf("┗━━━━━━━━━━━━━━━━━━┛ "); exit(0); default: printf("输入错误,请重新输入:"); } printf("按任意键重新选择置换算法:>>>"); getch();
system("cls"); }while (code!=4); getch(); }
/*载入数据*/ void download() { int i; system("color 0D"); printf("╔════════════╗ "); printf("║正在载入数据,请稍候 !!!║ "); printf("╚════════════╝ "); printf("Loading... "); printf(" for(i=0;i<51;i++) printf(""); for(i=0;i<50;i++) { mDelay((pSIZE+mSIZE)/2); printf(">"); } printf(" Finish. 载入成功,按任意键进入置换算法选择界面:
>>>"); getch(); }
/*设置延迟*/
void mDelay(unsigned int Delay) {
unsigned int i;
for(;Delay>0;Delay--) { for(i=0;i<124;i++) { printf(" "); } } }
/*显示设计者信息*/ void designBy() { printf("┏━━━━━━━━━━━━━━━━━━━━┓ "); printf("┃ 页面置换算法 ┃ "); printf("┃ 12级1班 ┃ ");
O");
printf("┃ 姓名:张海洋,李奔 ┃ "); printf("┣━━━━━━━━━━━━━━━━━━━━┫ "); }
void print(unsigned int t) { int i,j,k,l; int flag; for(k=0;k<=(pSIZE-1)/20;k++) { for(i=20*k;(i
printf("置换次数:%d ",t); printf("访问命中率:%d%% ",(pSIZE-(t+mSIZE))*100/pSIZE); printf("---------------------------------------- "); }
/*计算过程延迟*/ void compute() { int i; printf("正在进行相关计算,请稍候"); for(i=1;i<20;i++) { mDelay(15); if(i%4==0) printf(" "); else printf("Θ"); } for(i=0;i++<30;printf("")); for(i=0;i++<30;printf(" ")); for(i=0;i++<30;printf("")); }
/*先进先出页面置换算法*/ void FIFO() {
int memery[10]={0};
int time[10]={0}; /*记录进入物理块的时间*/ int i,j,k,m;
int max=0; /*记录换出页*/ int count=0; /*记录置换次数*/ /*前mSIZE个数直接放入*/ for(i=0;i
memery[i]=page[i]; time[i]=i;
for(j=0;j
for(i=mSIZE;i
if(memery[j]!=page[i]) k++;
}
if(k==mSIZE) /*如果不在物理块中*/ {
count++; /*计算换出页*/
max=time[0]
02-12
02-12
02-13
02-13
02-13
02-13
02-13
02-13
02-14
02-14
02-14
2024年物流行业的工作总结与感想 物流行业半年工作总结(五篇)
02-15
2024年社区道路防护安全工作计划 社区道路交通安全工作总结(八篇)
02-15
最新如何与父母沟通作文 父母沟通作文800字高中作文(6篇)
02-15
大学生实践心得感悟作文题目 大学生实践心得体会500字(3篇)
02-15
2024年肖申克的救赎观后感50字 肖申克的救赎观后感300字(十篇)
02-15