操作系统实验报告包括实验内容.doc

上传人:自*** 文档编号:124174099 上传时间:2020-03-11 格式:DOC 页数:23 大小:749.50KB
返回 下载 相关 举报
操作系统实验报告包括实验内容.doc_第1页
第1页 / 共23页
操作系统实验报告包括实验内容.doc_第2页
第2页 / 共23页
操作系统实验报告包括实验内容.doc_第3页
第3页 / 共23页
操作系统实验报告包括实验内容.doc_第4页
第4页 / 共23页
操作系统实验报告包括实验内容.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《操作系统实验报告包括实验内容.doc》由会员分享,可在线阅读,更多相关《操作系统实验报告包括实验内容.doc(23页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告实验课程: 计算机操作系统 学生姓名: 学 号: 专业班级: 电气类班 2011年 12月 15日目 录一、 实验一 编程实现银行家安全算法3二、 实验二 存储管理的模拟实现6三、 实验三 磁盘调度算法的模拟实现15南昌大学实验报告 -(1)编程实现银行家安全算法学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期:10.25,11.1 实验成绩: 一、实验目的通过实验加强对银行家安全算法的理解和掌握。二、实验内容熟悉避免死锁发生的方法,死锁与安全序列的关系,编程实现银行家算法,要求输出进程的安全序列。三、实验要求1、需写出设计说明;2、设计实现代码及说

2、明3、运行结果;四、主要实验步骤根据实验要求设计本次实验流程图,并根据实验流程图编写出实验程序。上机运用C语言进行程序输入,并进行程序检查,找出编程错误,直到程序运行成功为止。分析本次实验所获得的收获。五、实验数据及处理结果六、实验体会或对改进实验的建议程序基本实现了银行家算法的功能,并在其基础上考虑了输出显示的格式的美观性、输入错误要求重新输入等几个方面,尽可能的使程序完整一些。这段程序算是三个试验中最困难最复杂的一个,由于能力有限,所以在紧张的的编写和调试过程中遇到了许多的问题,通过查询资料、翻阅课本、向同学请教、多次调试等方法逐渐解决了大部分问题,编写的过程中也有比较一些算法的优劣性,找

3、出比较好的算法,收获非常大。七、参考资料计算机操作系统 汤子瀛等 西安电子科技大学出版社南昌大学实验报告 -(2)存储管理的模拟实现学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期:11.8,11.15,11.22 实验成绩: 一、实验目的存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。二、实验内容编程实现页面置换算法,要求输出页面的置换过程,具体可以编程实现OPT、FIFO和LRU算法。三、实验要求1、需写出设计说明

4、;2、设计实现代码及说明3、运行结果;四、主要实验步骤根据实验要求设计出程序图。根据程序图编写出实验程序。上机进行程序调试,并找出错误,直至程序通过。分析本次实验所得到的收获。五、实验数据及处理结果#include #include #include #include #define overflow -2#define null 0#define codenum 220 /指令数#define pagenum 20 /页数int n=pagenum,m=3; /n为提供的页流数,m为用户可用的物理块数typedef struct linkint data;int sign; /访问位stru

5、ct link *next;struct link *rear;/总是指向链表的最后一个元素qnode,*qlink;void menu(int *str);int *creatstr() /创建页流,并保存在strn中int *str;time_t t; intcount=0,m1,m2,m3;str=(int*)malloc(sizeof(int)*(pagenum+10);if(!str)exit(overflow);srand(unsigned)time(&t);while(count=pagenum)m1=rand()%codenum;str+count=m1/10;/str+cou

6、nt=(m1+1)/10;m2=rand()%(m1+1);str+count=m2/10;/str+count=(m2+1)/10;m3=(codenum-1)-rand()%(m1+2);str+count=m3/10;/str+count=(m3+1)/10;return str;/*FIFO算法*int *initstring() /初始化保存每个页面进行时的结果的二维数组anm int *a,i,j;a=(int *)malloc(sizeof(int*)*(n+1);if(!a) exit(overflow);for(i=0;i=n;i+) ai=(int*)malloc(size

7、of(int)*(m+1);if(!ai) exit(overflow);for(i=1;i=n;i+) /初始化保存结果的数组,使得一开始都为空for(j=1;j=m;j+)aij=-1;return a;void printresult(int *a,int *str)int i,j;printf(*the orders of pages*n);for(i=1;i=n;i+)printf(%3d,stri);putchar(n);for(i=1;i=m;i+)for(j=1;j=n;j+)if(aji=-1) printf( );else printf(%3d,aji);putchar(n

8、);putchar(n);int search(int *b,int x) /从物理块中找现在要执行的页面是否已经存在内存中,找到返回1int i;for(i=1;i=m;i+)if(bi=x) return i;return 0;void fifo(int *str) /先进先出置换算法int i,j=0,flag,k;int *a;int count=0; /用来计算缺页次数的a=initstring();for(i=1;i=n;i+)flag=search(ai,stri);/如果没有找到,情况一是没有满,二是当物理块满了就得置换if(!flag) count+;if(!flag) ai

9、j+%m+1=stri;/else 如果找到什么也不做if(i!=n)for(k=1;k=m;k+)ai+1k=aik;printresult(a,str);/输出结果;printf(short of pages:%dn,count);/*LRU算法*qlink initlink() /初始化链表,其有M个节点,即可以存放m个页面qlink l,q,s;int i;l=(qlink)malloc(sizeof(qnode);if(!l) exit(overflow);q=l;for(i=1;idata=-1;q-next=s;q=s;l-rear=q; /指向尾部,方便操作l-rear-nex

10、t=null;return l;qlink lsearch(int *a,qlink l,int x,int *pagnum) qlink static k=l; /k-next始终指向下一个空的物理块qlink q=l,temp,p;int flag=0,tempx,findid,j,reardata,flag2=0;int static i=1;int static k1=m;int static count=0; /用来计算缺页数reardata=l-rear-data;while(q-next)temp=q;q=q-next;if(q-data=x) /如果新来的页面内存中已有,则将它

11、压入栈顶,即链表的最后一位if(q!=l-rear) /如果找到的不是最后一个节点 /这个循环仅仅在已满的环境下有用if(l-rear-data=-1) flag=1;break; /如果没有满且新的页面已存在内存中temp-next=q-next;l-rear-next=q;q-next=null;l-rear=q;flag2=2;/else 如果已存在的页面在链尾, 则不动/end whileif(flag2!=2)/情况一物理块未填满,情况二满了要置换新的if(l-rear-data=-1) /物理块没有放满if(flag) /新的页面已存在内存中temp-next=q-next;q-next=k-next;k-next=q;k=k-next;elsek=k-next;k-data=x;count+;else /如果满了,且新来的页面在内存中也没有,就置换出栈底的元

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号