OS实验报告(打印版).doc_第1页
OS实验报告(打印版).doc_第2页
OS实验报告(打印版).doc_第3页
OS实验报告(打印版).doc_第4页
OS实验报告(打印版).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统实验报告学 院 计算机 专 业 软件工程 班 级 2008级2班 学 号 姓 名 指导教师 (2010年9 月) 计算机 学院 软件工程 专业 2 班 学号: 姓名: 协作者:_ 教师评定: 考勤情况程序运行情况程序质量实验技能创新精神实验报告设计文档实验_一_题目_ 进程调度_ _ 第 八 周星期 三 实验_二_题目_ 作业调度_ 第 九 周星期 五 实验_三(综合性)题目_主存空间的分配与回收_ 第 十 周星期 五 实验_四 _题目_ 文件系统实验 第十六 周星期 四 实验平台:(宋体5号字)1、 计算机及操作系统:X86兼容台式电脑,Windows XP2、 编程环境:Mcrosoft Visual C+ 6.0源程序名和可执行程序名:实验一:调度算法.c 调度算法.exe实验二:作业调度.cpp 作业调度.exe实验三:主存空间的分配与回收.cpp 主存空间的分配与回收.exe实验四:文件系统实验.c 文件系统实验.exe备注:(宋体5号字)学号: 姓名: 协作者:_实验_一_题目_ 进程调度_第 8 周星期_ 三 _1、 实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。2、 实验内容与要求设计一个有N个进程并发的进程调度程序。要求采用时间片轮转算法,多级反馈队列调度算法这三种算法。3、 实验主要仪器设备和材料硬件环境:X86兼容机软件环境:Mcrosoft Visual C+ 6.04、 实验原理及设计方案1、 实验原理简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还未完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直到所有的进程运行完毕。2、 设计方案进程进入就绪队列时,可自然地按FCFS排成一个队列,故读入进程只需一个input()函数;定义disp()函数,输出进程;定义running()函数,运行处理。时间片的大小由用户自己确定。若当前进程在时间片内完成,调用destroy函数销毁当前进程,并输出成功运行信息,否则把其标记为等待状态,放到队尾。3、 相关数据结构的说明在pcb(进程控制块)中,定义了进程名、进程状态、到达时间、完成时间、分配到的时间片、已运行的时间(前一轮中没有完成,从队尾再次回来)、是否重复运行标示等结构元素变量。数据结构中,采用了链表形式,每个进程用一个结构体链项表示,并通过尾指针连在一起,最终形成一完成的就绪进程队列。4、 程序流程图开始初始化PCB,输入进程信息各进程到达先后顺序排列空队列?结束就绪队列首进程运行时间片内完成?该进程到队尾,标记为运行过一次进程完成,销毁5、 给出程序中源程序名和可执行程序名。源程序名:调度算法.c可执行程序名:调度算法.exe5、 实验结果及分析输入了三个进程(dd 、ff 、gg),它们的时间片都定义为2,其中最右边的“死亡时间”为进程完成所需的时间。第一次运行,运行第一个进程dd。当dd超时后,将被放到最后,程度接着运行第二个进程ff。6、 调试总结及心得体会这是第一个计算机操作系统的实验,而且有实验指导书的例子参考,所以难度并不算大。我在实验的过程中,遇到最大的困难是考虑如何处理在时间片内超时回到队尾然后重新被运行的进程。因为这些进程之前已经被运行了,所以在程序实现时,要在相关数据处理方面注意它们的运行总时间。7、 思考题“最高优先调度算法”照顾紧迫型作业,用于实时系统中,有利于短作业。但进行调度前,要做响应比的计算,增加系统开销。“时间片轮转法”,能及时响应用户的请求,多用于分时系统中。“多级反馈队列调度”,不必事先各种进程所需的执行时间,而且还可以满足各种类型进程的需要,是目前公认的一种较好的进程调度算法。偏重于处理机型的最适合于此调度算法。学号: 姓名: 协作者:_实验_二_题目_ 作业调度_第 9 周星期_ 五 _1、 实验目的 本实验要求模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操件系统中的作用,以加深对作业调度算法的理解。2、 实验内容与要求为单道批处理系统设计一个作业调度程序(1) 编写并调试一个单道处理系统的作业调度模拟程序(2) 作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)的调度算法3、 实验主要仪器设备和材料硬件环境:X86兼容机软件环境:Mcrosoft Visual C+ 6.04、 实验原理及设计方案1、 实验原理FCFS:是一种最简单的算法。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。SJF:是指对作业或短进程优先调度的算法,从后备队列中选择一个或多个估计运行时间最短的作业,将它们调入内存运行。2、 设计方案1 实验中,要求用户自定义输入每个作业名、作业到达时间、所需运行的服务时间。2 每个作业的默认状态为W(等待),完成后为F(完成)3 在主函数中,先要求用户输入作业初始化作业信息;然后自动调用FCFS调度算法运行并输出运行信息表,接着等待用户按任意键确认继续自动调用SJF调度算法运行;在SJF时,需要把所有作业的状态重置为W,并把各个作业按FCFS排序打印输出(方便用户查阅)。3、 相关数据结构的说明1 每个作业都用一个作业信息控制块JCB表示,为结构体数据,包含作业名、到达时间、运行时间、作业状态、是否完成、周转时间等等。2 每次从键盘接收一个作业信息后,自动把其连接到后备队列中。3 对应两个调度算法,设置了两个排序函数FCFSsort和SJFsort,它们分别按其到达时间、运行时间的大小进行递增的排序。两个排序函数采用了递归思想。4、 给出程序中源程序名和可执行程序名。源程序名:作业调度.cpp可执行程序名:作业调度.exe5、 程序流程图开始初始化PCB,输入进程信息FCFS调度排序,把各作业按到达时间递增排序;FCFS运行,队首作业投入,记住每个作业的实际完成时间,并据此得到下一作业的开始时间;最后打印各作业时间。重置所有作业状态SJF排序;SJF运行完成后,进行FCFS排列后打印时间表。结束5、 实验结果及分析先后输入了三个进程gg, ff, dd,到达时间分别为2、1、8,运行所需时间为6、3、9。FCFS中,到达时间128,故先运行了ff,再运行gg,最后运行dd;SJF中,所需运行时间36addr=m-addr+m-room;/不是第一个分区,地址=前一分区地址+前一分区空间大小当然,第一个分区的起始地址就是40KB。由于程序的数据结构为链式,在进行相关操作时,用到了new、delete等进行模拟程序内存空间的管理。4、 给出程序中源程序名和可执行程序名。源程序名:主存空间的分配与回收.cpp可执行程序名:主存空间的分配与回收.exe开始5、 程序流程图初始化主存空间,打印信息0用户选择?2释放并回收内存结束1失败则返回;成功则检查可否合并;打印申请内存空间提示空间不足,请释放内存满足?分配一分区给作业,并打印内存信息表5、 实验结果及分析1) 程序启动时界面如右:2) 连续选择1功能,三次申请作业内存空间,可见,它们的地址是自动递增的,主存空闲,剩下160KB:3) 此时再进行作业申请,大小为200,提示空间不足,请释放部分内存空间。进行释放后,相应的第一块分区状态标示为0(空闲)可用:4) 当反复进行释放、申请时,系统自动检测分区链中是否有相邻的空闲区,并提示是否进行合并。接y,把第一和第二分区合并成一个140KB的可用空闲区了:5) 对于上面提到的运行操作,因为是用程序模拟计算机系统的处理运行,故作业的完成撤离用手动选择功能2(释放并回收内存)来代替实现。此功能在完成撤离的同时,自动进行相关相邻空闲区的合并。不过,用户也可以在提示是否进行合并时拒绝合并,最后选择功能3进行手动合并。6、 调试总结及心得体会实验中的链接指针变化复杂,而且要考虑到多种因素和特殊情况,是对编程的一次好好的锻炼。根据实验要求,设计一个实用友好的用户界面,因为还是采用命令行界面,故我力求在命令行界面满足用户的各种操作需求。尽管如此,但还是不能和图形界面相比较的,希望自己能尽快完成向图形界面的过渡。7、 思考题内存的主要分配方式有:单一连续分配固定分区分配、动态分区分配、可重定位分区分配等。动态分区管理的常用内存分配算法有5种:1. 首次适应算法2. 循环首次适应算法3. 最佳适应算法4. 最坏适应算法5. 快速适应算法学号: 姓名: 协作者:_实验_四_题目_ 文件系统实验_第 16 周星期_ 四 _1、 实验目的 模拟文件系统实现的基本功能,了解文件系统的基本结构和文件的各种管理方法,加深理解文件系统的内部功能及内部实现。通过用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。2、 实验内容与要求模拟一个简单的文件系统,实现文件系统的管理和控制功能。要求本文件系统采用两级目录,即设置主文件目录【MFD】和用户文件目录【UED】。另外,为打开文件设置运行文件目录【AFD】。并设计一个n个用户的文件系统,每次用户可保存m个文件,并可对每个文件进行相应的操作。3、 实验主要仪器设备和材料硬件环境:X86兼容机软件环境:Mcrosoft Visual C+ 6.04、 实验原理及设计方案1、 实验原理M D F用户名文件目录指针用户名文件目录指针U F D文件名保护码文件长度文件名A F D打开文件名打开保护码读写指针程序中采用两级目录结构,第一级为设置文件目录【MFD】,第二级为用户文件目录【UFD】;另外,为打开文件设置运行文件目录【AFD】。2、 设计方案1) 设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。2) 为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。3、 相关数据结构的说明文件目录的检索使用了简单的线性搜索。文件保护简单使用了三位保护码:允许读、写、执行的对应位为 1;对应位为0,则表示不允许读写、执行。4、 给出程序中源程序名和可执行程序名。源程序名:文件系统实验.c可执行程序名:文件系统实验.exe5、 程序流程图5、 实验结果及分析1) 程序运行时,首先提示输入一个用户名(字母表示,az):2) 输入的用户名不存在时,提示;否则,打开相应用户的文件列表:3) 每个用户最多可以保存10个文件,超出时将提示出错。当进行删除文件操作时,运行结果如下:6、 调试总结及心得体会由于是在期末复习时间,最后一个实验没能独立用心地完成,很大程度上参考了别的同学的实验思路。但我还是体会到这个实验的难度,是对前面所学知识的综合运用。特别是在“目录”数据结构方面,得采用多级分法,即多维数组。这个实验的设计有很大的待改进,因为操作界面中很多信息是不能让操作人员定义的。如用户名的输入,只能盲目地输入一个,直到正确为止。7、 思考题1 文件系统要求方便用户安全而有效地管理自己的数据文件,在不熟悉计算机内外存的情况下,能对自己的数据进行读写。文件系统通常要解决两个问题:用户与文件系统交互的接口,用户程序与文件系统的接口。2 文件目录是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。目录中通常包含基本信息类(文件名、文件物理位置、文件逻辑结构、文件的物理结构等),存取控制信息类,使用信息类共三种。目前广泛使用的目录结构形式为多级目录结构。综合性、设计性实验效果反馈表学院(中心):计算机学院 班级:软件2班实验名称主存空间的分配与回收实验项目性质综合性 设计性实验所属(涉及)课程名称操作系统计划学时2开设学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论