操作系统课程设计报告_第1页
操作系统课程设计报告_第2页
操作系统课程设计报告_第3页
操作系统课程设计报告_第4页
操作系统课程设计报告_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

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

文档简介

1、华南农业大学数学与信息学院(软件部分)操作系统分析与设计实习抄本开放时间:2015学年第一学期小组成员、小组内的分工、工作量比率以及每个成员的个人成就学生身份证201330320618名字林劳动力的分工需求分析文档、设计报告、UML图设计、代码集成工作量比率23成就学生身份证201330320620名字卢宏军劳动力的分工文件管理模块的代码编写工作量比率17成就学生身份证201330320619名字林明健劳动力的分工UML图设计,内存管理模块代码编写工作量比率17成就学生身份证201330320607名字国子航劳动力的分工界面设计和帮助代码集成工作量比率17成就学生身份证201330320629

2、名字地志伟劳动力的分工过程管理模块的代码编写工作量比率13成就学生身份证201330320631名字周卓斌劳动力的分工设备管理模块的代码编写工作量比率13成就实用测试项目模拟操作系统自我评估林:我是整个项目的负责人。在完成这个项目的过程中,我学到了很多。不仅有技术改进,还有对人事管理的深入了解。技术方面:在项目的初始规划中,我需要知道整个项目的目的和最终结果,项目的结构和水平,甚至写需求分析和概要设计。我根据老师给我的实习指导写了需求分析,然后根据需求分析写了项目流程图,然后和另一个成员林明健一起完成了UML类图设计。然后,根据UML类图,将整个项目分为五个模块,每个成员选择一个模块。在每个成

3、员的代码完成之后,作为团队的领导者,我将把每个模块的代码集成在一起,消除错误,达到预期的目标。这个过程让我对软件工程的设计有了更深的理解。人事管理:在项目完成的过程中,对我这个组长来说,对人员的工作安排和进度监督是一个严格的要求。每个成员的级别不同。虽然它分为五个模块,每个模块的难度不同,但最简单的模块对最弱的成员来说是一个挑战。此时,我们将测试我们自己的努力和团队合作。作为团队领导,我需要督促成员随时完成代码,与成员讨论解决方案,甚至为成员完成部分工作,以避免进度延迟。在不断的磨合中,成员们可以学到一些东西并按时完成任务。完成另一个课程设计后,我知道如何让整个团队走上正轨,高效地完成既定任务

4、。团队中的人有不同的能力,所以有必要根据他们的能力给他们相应的任务,避免他们无所事事。林明健:在编写代码之前,团队领导首先让我根据需求分析制作一个整个项目的UML类图。因为我必须先了解整个模拟系统的过程,所以花了几天时间才找出各种类之间的关系,比如随机过程和手动创建的过程,以及文件管理和内存分配之间的关系。写完代码后,我负责内存管理模块。第一种解决方案是内存分配和回收这两种算法。我整合了整个模拟系统,并决定使用最快的适应方法。毕竟,模拟过程并不像现在这样多,所以它可以提高效率;在内存恢复和合并方面,由于我使用双链表的方法来模拟内存,并且恢复和合并是同时进行的,所以恢复操作非常简单,主要是合并片

5、段,需要考虑几个情况:在头中插入判断是否可以与第二个块合并;2将其插入表中,以判断其是否可以与前一个块或下一个块,或第一个、中间的和最后的三个块合并;在末尾插入,判断是否可以与前一个合并。在整个过程之后,最深刻的体会是,当你遇到复杂的事情要理解时,你必须保持耐心和专注,从表面开始,一步一步地理解它们,然后在编写代码时要小心,否则会出现许多不必要的错误。郭子航:我在这个操作系统中负责的工作实际上是制作整个程序界面,并协助集成代码,包括制作和美化启动屏幕、整个界面的所有可见组件,以及接收来自其他团队成员的信号,为每个组件添加监听器。整个制作过程遇到了一些困难,比如:如何使用JWindow、界面布局

6、、如何与其他团队成员的代码连接通过上网和了解其他团队成员的代码,我学到了更多关于java和操作系统的操作。在功能上,我认为作为一个模拟的操作系统,接口应该具备的所有功能都已经具备,而且接口非常自然,最值得注意的是显示内存占用的环形图,以环形方式显示四种“内存”占用情况,这样就可以直观地看到进程分配和进程分配。在美化方面,因为它是一个模拟操作系统,属于欣赏程序,所以我选择了巧克力风格,主要是从启动屏幕到每个界面的巧克力颜色。给用户一个享受的空间。总的来说,我在这个实验中的一些功能和美化相当不错。整个过程让我了解了整个操作系统的具体操作,受益匪浅。翟志伟:在组长的帮助和指导下,我终于完成了我负责的

7、部分;因为我已经很长时间没有输入java代码了,所以当我第一次编写代码的时候,我有点生疏了。流程管理仍然很难实现,它需要调用其他模块的许多功能,这有点麻烦,但是它仍然很容易实现,并且大部分工作可以用队列来完成;此外,团队领导的分工非常好,MUL图很早就已经确定了,而且整个项目都是在git网站上做的,我们只需要从那里git下来,完成我们自己的部分;合作真的很重要。每次我做课程设计,我都有这样的经历。例如,在这项工作中,我需要经常与其他模块中的人讨论,因为我需要使用他们的东西,他们也需要使用我的东西,所以我们需要讨论和讨论如何很好地完成这个项目。而且,它让我意识到,当我有时间的时候,我必须键入更多

8、的代码,否则我真的会忘记如何编写java代码。最后,在团队领导和其他成员的帮助下,我成功地完成了这部分工作,尤其是团队领导。谢谢你的指导和帮助!周卓斌:在这个分工中,我负责设备管理,我的主要工作是分发和回收设备。首先,存储设备名称和设备数量,建立设备表和设备分配表来分配设备,并建立队列来存储正在使用和等待的设备。设备使用后,应该回收它们,未使用的设备可以通过设备名称返回。这一部分的难点是解决死锁问题,我已经尝试了几次,但没有找到好的解决方案。在与团队领导讨论并帮助团队成员之后,我终于完成了这个内容。我还查阅了大量信息,学习了不同的方法。通过这次课程设计,我对操作系统有了更深的了解。加深对操作系

9、统工作原理和操作系统实现方法的理解;同时,在操作系统模拟的过程中,我也大大提高了我的编程能力。独立思考是必要的,不要依赖团队领导。团队合作也是一个非常重要的环节。团队成员分工明确,团队领导安排合理,团队之间相互配合。以前,我对JAVA语言接触不多,在系统实现的过程中遇到了很多困难。经过自学和与他人的讨论,我掌握了一些使用JAVA的方法和技巧,问题一个一个地解决了。卢宏军:在整个操作系统的设计中,我负责文件管理。文件管理是一项繁重的工作,其难点在于如何设计一个合理的数据结构来表示文件结构的树形结构。然后模仿树型数据结构记录所有文件。首先,创建磁盘类,它包含文件分配表和子目录文件夹。在每个子目录文

10、件夹中,设置我的文件的链表,以保存目录下的所有文件和目录。然而,随着设计的深入,发现当在磁盘的第一个目录中创建一个txt文件时,没有在树形结构中定义,采用了一种折衷:如果在根列表中创建一个txt文件,它可以被认为是在根列表中创建一个根目录并将其添加到数组列表中,但是大小被设置为0,然后在根目录下的数组列表中添加一个文件类型MyFile, 大小设置为1(表示占用的磁盘块数为1)。在这种情况下,每次遍历文件时,必须首先找到根目录的链表,然后必须判断每个链表元素中的size属性是否为0,这意味着它是一个文件; 1是目录。其次,难点在于与界面的交互。无论是做这个课程实验还是做网页,前后的交互都很麻烦。

11、当然,这个实验相对简单,并且可以在没有框架的情况下构建。然而,只有从大处着眼,小处着眼,我们才能彻底理解这个问题。对每个项目来说,前期规划越合理、组织越严密,后期的整合和修改越简单,这样就不会影响到整体。我的java基础很差。通过这个实验设计,我可以与我的团队成员不断沟通和合作,共同进步。当我遇到困难时,我学会了很多解决上网问题的方法。有些事情在细节上不知道有多难,直到它们真正完成,也就是说,当计划付诸行动的时候。这门课程让我的设计受益匪浅。教师的评论评价指标:l标题内容和要求优秀良好中等差l算法原理理解优秀良好中等差l编程水平优秀良好中等差程序运行效果和正确性优秀良好中等差课程设计报告的结构

12、清晰、优秀、良好、中等和较差l报告中的详细总结和分析:优良中差。老师的签名一、需求分析1、课程的目的通过模拟操作系统的实现,可以加深我们对操作系统工作原理的理解,进一步了解操作系统的实现方法,实践团队合作完成系统,提高编程能力。2.编程语言和工具用Java和网络豆完成3.设计内容用多通道编程方法模拟单用户操作系统,包括四个部分:进程管理、存储管理、设备管理、文件管理和用户界面。二、概要设计1.模块划分:(1)、文件管理模块(2)过程管理模块(3)设备管理模块(4)内存管理模块(5)界面管理模块2.程序流程图:3.程序的统一建模语言类图:4.项目目录:其中:设备管理器包:设备管理模块的代码文件;

13、文件管理器包:文件管理模块的代码文件;内存管理器包:内存管理模块的代码文件;ProcessManager包:流程管理模块代码文件;界面包:界面管理模块的代码文件;奥西姆套餐:节目主入口;照片包:项目资源文件Util包:工具类第三,详细设计内存管理:(林明健)在本模块中,我分为三个班:1使用两个静态链表来模拟进程在内存中的占用情况,即ProcessList和emptyList它还提供了一个计算剩余内存空间的函数:公共类MemList 公共静态数组列表进程列表;公共静态数组列表emptyList公共静态int sumOfEmptySize() int sum=0;对于(int I=0;I MemL

14、ist . ProcessList . size();i ) sum=MemLcessList.get(i).getSize();返回512-sum;2.每个内存块则包含编号和大小两个属性,表示内存地址和大小:公共类成员锁私有int id私有int大小;public MemberLock(int id,int size) this.id=idthis.size=大小;id,大小的作曲者和吸气剂;3.所以在内存管理的类,就只需要提供有关内存分配和回收的方法了:公共类内存管理器公共内存管理器()initLiST();/*获取内存占用百分比* 返回*/公共静态双getPercentage() System.out.println(内存比“(1 -(双)MemList。SumoFemptSize()/512);返回1 -(双)MemList。SumoFemptSize()/512;/*初始化函数*/public void initList() /初始化函数成员锁定块=新成员锁定(0,512);MemList.emptyList=新数组列表();MemList.emptyList.add

温馨提示

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

评论

0/150

提交评论