资源描述:
《操作系统实验三.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件学院上机实验报告课程名称:计算机操作系统试验实验项目:虚拟内存页面置换算法实验室:耘慧402姓名:学号:专业班级:实验时间:实验成绩评阅教师一、实验目的及要求给出本次实验所涉及并要求掌握的知识点二、实验性质设计性三、实验学时2学时四、实验环境C与C++程序设计学习与实验系统五、实验内容及步骤①实验内容假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。②实验步骤通过已知最小物理块数、
2、页面个数、页面访问序列、及采用置换方式可以得出页面置换的缺页次数和缺页率,及每次缺页时物理块中存储。1.输入的形式intPageOrder[MaxNumber];//页面序列intPageNum,LackNum=0,BlockNum;//页面个数,缺页次数,最小物理块数2.输出的形式doubleLackPageRate//缺页率缺页个数每次缺页时物理块中存储模拟先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1,…,Pn,分别利用不同的页面置换算法调度进程的
3、页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。intPageOrder[MaxNumber];//页面序列intPageCount[MaxNumber]={0};//计算内存内数据离下一次出现的距离intPageNum,LackNum=0,BlockNum;//页面个数,缺页次数,最小物理块数doubleLackPageRate=0;boolfound=false;五、实验数据及结果分析1.FCFS算法图1.
4、12.时间片轮换算法图2.1图2.23.优先级调度算法图3.1图3.23.最短作业调度算法图4.1图4.2图4.3图4.45.最短剩余时间优先算法图5.1图5.2图5.3七、实验总结通过二次编程,又一次加深了对先进先出(FIFO)页面置换算法,最佳(OPI)置换算法,最近最久未使用(LRU)置换算法的理解。同时,也掌握了一些使界面输出看起来更工整的办法。还有,在平时做作业的时候,总是默认为物理块数是3,其实只是比较常用而已,并不是每次都是3.这个在编程中有体现,在今后做题中会更注意。附录源程序清单importjava.util.ArrayList;importjava.util.Sc
5、anner;classProcess{publicStringProcessName;//进程名字publicintTime;//进程需要时间publicintleval;//进程优先级publicintLeftTime;//进程运行一段时间后还需要的时间}publicclassaa{/**staticvoidCopy(Processproc1,Processproc2);//把proc2赋值给proc1*staticvoidSort(Processpr[],intsize);//此排序后按优先级从大到小排列staticvoid*sort1(Processpr[],intsize);
6、//此排序后按需要的cpu时间从小到大排列staticvoidFcfs(*Processpr[],intnum,intTimepice);//先来先服务算法staticvoidTimeTurn(*Processprocess[],intnum,intTimepice);//时间片轮转算法staticvoid*Priority(Processprocess[],intnum,intTimepice);//优先级算法*/publicstaticvoidcout(Objecta){if(a==null){System.out.println();}else{System.out.print
7、ln(a);}}publicstaticintcin(){Scannercin=newScanner(System.in);returncin.nextInt();}publicstaticStringcinString(){Scannercin=newScanner(System.in);returncin.next();@SuppressWarnings("null")publicstaticvoidmain(String[]args){inta;co