操作系统实验报告专业计算机及应用(本)姓名考号指导老师实验一DOS/Windows用户接口与进程管理一.实验目的了解和掌握DOS/Windows有关用户接口和进程管理的特点二.实验内容1.MS-DOS的命令接口(1)再当前目录下建立子目录MYTEMP和MYTEMP2,将当前目录设定为MYTEMP;解:c:\mdMYTEMPMYTEMP2c:\cdMYTEMP(2)再当前目录下创建新文件B.BAT,其内容为:清除屏幕内容,显示当前DOS版本;解:c:\MYTEMPeditclsver(3)使用type命令显示B.BAT的内容,执行他;解:C:\MYTEMPtypeb.batC:\MYTEMPb.bat(4)拷贝B.BAT到路径MYTEMP2中;解:c:\MYTEMPcopyb.batc:\MYTEMP2(5)删除MYTEMP2中的文件B.BAT,删除目录MYTEMP2;解:c:\MYTEMPdelc:\MYTEMP2\B.BATc:\MYTEMPrdc:\MYTEMP2(6)使用deltree命令删除MYTEMP.解:c:\MYTEMPcd\c:\deltreeMYTEMP2.MS-DOS的进程管理(1)运行编辑程序EDIT,可以同时再运行其它命令吗?答:不可以再运行其他命令。(2)执行如下管道和换向命令:C:\dirdir.lst答:dir命令生成的C:\盘下的目录和文件列表重定向到dir.lst文件:如果dir.lst文件不存在,将创建该文件。如果dir.lst存在,将使用dir命令的输出替换文件中的信息。C:\typedir.lst|more答:显示dir.lst文件内容。C:\dir|FIND“DIR”答:在C盘下查找和显示包含字符串“DIR”的文件名,并使用管道号(|)将dir命令的结果重新定向到find中,dir命令的输出是通过find筛选器命令进行发送的C:\dir*.*|SORT/+14答:列出C盘下的所有目录和文件,并按照一定的排序规则输出结果,排序规则为:使用/+n命令行时,/+14表示每个比较应该在每行的第14个字符开始。少于14个字符的那些行在其他行之前排序。默认情况下,比较在每行的第1个字符开始。C:\dir|SORTSORT.DIR答:将C盘下的所有目录和文件列出,进行默认排序,并将最终的结果输出到C盘下的SORT.DIR文件中。4回答问题(1)MS-DOS属于什么类型的操作答:MS-DOS属于单用户单任务操作系统。(2)MS-DOS的用户界面属于哪中?其进程管理有何特点?答:MS-DOS是采用字符界面的操作系统;其进程管理的特点:不具有进程并发执行的能力,但允许多个进程同时驻留再内存中,允许进程创建子进程,父子进程采用串行方式执行。(3)Windows属于何种类型的操作系统?答:Windows属于单用户多任务操作系统。(4)Windows的用户界面属于哪种操作系统?具有什么特点?答:Windows的用户界面为GUI(图形用户界面);特点:使用图形图像和鼠标、键盘作为计算机和人之间的信息交流手段,用户无需记忆大量命令及格式,使用方便。(5)Win95/98的进程/线程管理具有什么特点?进程/线程具有哪几种优先级?答:Win95/98具有多进程并发执行能力,在内核级直接支持线程,可实现线程的并发执行。实验二页式虚拟存储管理:页面调度算法一.实验目的通过编程实现几种常见的页面调度算法,加深对页面调度思想的理解。二.实验步骤假设系统分配给进程4个内存块,下面以先进先出算法为例,编写程序。程序的代码为:#includestdio.h#includeiostream.h#includestdlib.h#includemalloc.h#definemaxsize5//假设分配给进程4个内存块typedefintdatatype;//顺序队列结构体的定义typedefstruct{datatypedata[maxsize];intfront;intrear;}SeqQueue;//构造一个空的顺序队列SeqQueue*InitQueue(){SeqQueue*p;p=(SeqQueue*)malloc(sizeof(SeqQueue));p-front=p-rear=0;returnp;}intnumber=0;//缺页计数//入队voidEnQueue(SeqQueue*p,datatypex){number++;cout缺页计数numberendl;p-data[p-rear]=x;p-rear=(p-rear+1)%maxsize;}//出队voidDeQueue(SeqQueue*p){intx;x=p-data[p-front];cout页面x被调出!endl;p-front=(p-front+1)%maxsize;}//输出顺序队列的内容voiddisplay(SeqQueue*p){intx,s;s=p-front;cout内存块中的页面情况为endl;while(s!=p-rear){x=p-data[s];coutx;s=(s+1)%maxsize;}}intjustif(SeqQueue*p,datatypex){inttem,s;s=p-front;while(s!=p-rear){tem=p-data[s];if(tem==x){cout数已在内存块中,请输入下一个endl;returnfalse;}s=(s+1)%maxsize;}returntrue;}voidmain(){SeqQueue*Q;inti,total=0;intx;floatf;Q=InitQueue();cout请输入maxsize-1个页面访问顺序数endl;for(i=0;imaxsize-1;i++){cinx;total++;EnQueue(Q,x);}display(Q);while(1){coutendl请输入下一个要进入的页面(输入0时结束)endl;cinx;if(!x)break;total++;if(justif(Q,x)){DeQueue(Q);EnQueue(Q,x);}display(Q);}coutendl页面总数为totalendl;cout缺页计数为numberendl;f=((float)number/(float)total)*100;cout缺页中断率f=number/total=f%endl;}运行程序,输入:8767150运行结果: