版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./学校代码:10128学校代码:10128学号:201020205056课程设计题目:处理机管理模拟系统的设计与 实现学生:学院:信息工程学院系别:软件工程系专业:软件工程班级:指导教师:副教授讲师20XX1月8日
工业大学课程设计任务书〔四学院〔系:信息学院软件工程系课程名称:操作系统课程设计指导教师〔签名:专业班级:学生:学号:一、课程设计题目处理机管理二、课程设计的目的学生通过设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。使学生初步具有研究、设计、编制和调试操作系统模块的能力。三、课程设计的主要容和要求〔包括原始数据、技术参数、设计要求、工作量要求等原始数据:进程控制块PCB结构体。技术参数:WindowsXP系统,VC++6.0开发工具。设计要求:设计基于时间片轮转法的处理机调度算法;或设计基于先来先服务或基于优先权的处理机调度算法;画出以上算法流程图;编程实现算法功能;5.编写课程设计说明书。工作量要求:完成以上设计要求中的所有算法功能。四、工作进度安排周一:布置、讲解题目,收集资料;周二:系统分析,算法设计;周三:编制、调试程序;周四:测试系统,形成设计结论,编写课设报告;周五:系统及材料验收,课设答辩。五、主要参考文献[1]尧学编.计算机操作系统教程〔第三版习题解答与实验指导.:清华大学,2006[2]汤子瀛主编.计算机操作系统〔第三版.:电子科技大学,2001[3]坤等编.操作系统实验教程.:清华大学,2008审核批准意见系〔教研室主任〔签字摘要操作系统是计算机系统的关键组成部分,负责管理与配置存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业优先调度算法;在分时系统中,为保证系统具有合理的响应时间,采用时间片轮转法进行调度。采用算法时,则要考虑多方面因素,以便达到最佳效果。本次课程设计采用时间片轮转调度算法来实现模拟进程调度任务的执行过程。用Java模拟进程调度过程,可以方便地将运行结果直观地表示出来。Java语言独有的多线程操作,可以实现许多其他语言不能实现的功能,极方便了程序开发人员对程序的开发。此外,利用JavaGUI编程,可以使系统提供的界面更加友好。实验中,应用文件I/O操作、线程、AWT、Swing、部类、接口、异常处理等技术,开发此系统。关键字:时间片轮转;Java编程;GUI图形用户界面;文件操作;AbstractTheoperatingsystemisakeycomponentofthecomputersystem,responsibleforthemanagementandconfigurationmemory,decidedtosystemresourcessupplyanddemandpriority,controlinputandoutputequipment,operationandmanagementofnetworkfilesystem,andotherbasictasks.Fordifferentsystemsandsystemtarget,computersusuallyusedifferentschedulingalgorithm,suchasinaBatchProcessingSystem,inordertotakecareofalotofshortoperation,usingShortJobFirstalgorithm;Insystemswithtimesharing,toensurethesystemhasreasonableresponsetime,needtimesliceRoundRobinalgorithmforscheduling.Thealgorithm,weshouldconsidervariousfactors,inordertoachievethebesteffect.ThisCourseDesignusestimesliceRoundRobinalgorithmtosimulatetheprocessschedulingtaskexecutionprocess.WithJavasimulationprocessschedulingprocess,whichcanbeconvenientlywillrunresultsintuitivelysaidout.Inaddition,theuseofJavaGUIprogramming,canmakethesystemtoprovidetheinterfacemorefriendly.Experiments,applicationfileI/Ooperation,threads,AWT,Swing,internalclass,interface,abnormalprocessingtechnology,thedevelopmentofthissystem.Keywords:timesliceRoundRobin;JavaProgramming;GraphicalUserInterface;FileOperation;
目录TOC\o"1-3"\h\u18820第一章问题分析 155661.1设计目的1232791.2设计目标1102181.2.1问题描述1237471.2.2基本要求1221621.3设计思想和运行环境17428第二章概要设计 3305242.1系统结构3174962.1.1系统结构层次图3236552.1.2系统功能说明376872.2算法描述425584第三章详细设计 5146593.1系统程序流程图5117273.2部接口设计7300973.2.1系统框架接口run〔7259333.2.3创建进程接口createFrame<>8234233.2.4运行程序接口runFrame<> 865073.2.5显示结果接口resultFrame<>9276643.3用户接口917689第四章系统实现 1193494.1编码实现11282544.2单元测试1185544.2.1创建进程模块11152804.2.2运行程序模块13253614.2.3结果显示模块1464024.3遇到的问题151763第五章自我评价与总结 164695参考文献 17.问题分析1.1设计目的在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个。也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占有处理机。要求设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。1.2设计目标问题描述处理机管理是操作系统中非常重要的部分。为深入理解处理机调度部分的功能,设计一个按时间片轮转调度CPU的算法,模拟实现处理机的调度。基本要求时间片轮转调度CPU的算法是分时系统采用的典型算法,把CPU的执行时间分成若干个一定大小的时间片轮流的分配给就绪队列的各个进程,让各就绪进程按指定的顺序分别占用CPU的一个时间片轮流执行下去,直至完成。要求定义进程控制块PCB的结构,并为每个进程任意确定一个要求运行时间和到达时间,按照进程到达的先后顺序排成一个循环队列。设计按时间片轮转的进程调度算法。1.3设计思想和运行环境设计思想<1>假设系统有5个进程,每个进程用一个进程控制块Process来代表。Process的结构如图1-1所示。对PCB控制块进行包装,形成循环链表结点ProcessNode,链表结点ProcessNode如图1-2所示。图1-2进程控制块结点图1-2进程控制块结点图1-1进程控制块Pname:进程名runTime:进程运行时间arriveTime:到达时间State:进程状态cpuTime:运行时间cpcRound:已运行次数startTime:进程开始时间每个属性的set,get方法proecss:Process类型进程控制块Next:ProcessNode类型指针每个属性的set,get方法pntmphead图1-3循环链表<2>为每个进程从模拟的系统中指定一个要求运行时间和到达时间。<3>按照进程到达的先后顺序排成一个循环队列,再设一个队首指针head指向第一个到达进程的首址。<4>执行处理机调度时,从队列的第一个进程开始,用pntmp指针顺序选择可执行的进程执行。<5>由于本实践是模拟算法,所以对被选中进程并不实际启动运行,而只是执行:运行时间加100和输出当前运行进程的相关信息。用这两个操作来模拟进程的一次运行。运行环境编程语言:Java语言工具:JDK1.6.0_26、Windows7系统以及MyEclipse6.0.1等概要设计2.1系统结构系统结构层次图输入进程信息创建结点插入接点输入进程信息输入进程信息创建结点插入接点输入进程信息创建结点插入接点处理机管理模拟系统运行程序显示结果创建进程输入进程信息创建结点插入接点图2-1处理机管理系统层次图创建进程模块:创建进程模块在输入进程页面输入要创建的进程数,输入后逐个将进程信息录入插入到就绪队列中,完成进程的创建过程。运行程序模块:此模块实现时间片轮转调度算法,从就绪队列中取出进程结点,并模拟运行该进程,反复循环,直至进程全部运行结束。每次运行进程后,将运行信息存入到文件中,实现信息的持久化。方便信息的记录,系统功能的分析和出错时便于检查错误。显示结果模块:从文件中读入进程运行的结果,在图形界面下操作,提供友好的用户操作方式,方便直观的了解模拟进程的调度过程,便于数据分析和研究。2.2算法描述 在创建进程界面将进程信息录入,将进程控制块进行包装,插入到循环队列中;当运行程序时,每次从就绪队列队首取出一个进程pntmp,判断是pntmp进程否到达。到达则运行该进程;若pntmp进程为首次运行,则记录进程开始运行时间startTime;运行完pntmp进程后,输出进程运行信息,并将此结点移至队尾;若循环队列长度size>0,则返回执行b;否则结束程序;详细设计3.1系统程序流程图YYYN开始显示主界面输入进程数numi=0i<num输入进程名pname;运行时间rumtime到达时间arrivetime插入到循环队列中从队列首部head取出一个进程pntmp判断pntmp进程是否到达当前进程是否已完成运行pntmp进程,运行时间-100abcbNYN图3-1程序流程图图3-1程序流程图运行结束a查找下一个进程b当前进程是否已完成置当前进程状态为falseNc是否有下一个进程YY显示运行结果N3.2部接口设计3.2.1系统框架接口run〔publicvoidrun<>{//创建系统主页的框架 //1.创建框架frame//2.设置相关属性}3.2.2增加面板组件接口addComponentsTpPane<>publicstaticvoidaddComponentsTpPane<Containerpane>{ //1.设置布局方式 //2.创建系统功能按钮 //3.注册按钮 //4.监听按钮动作,并产生相应操作,执行对应的功能 }3.2.3创建进程接口createFrame<>publicstaticvoidcreateFrame<>{classcreateInputFrameextendsFrameimplementsActionListener{ //局部部类实现创建进程的界面//窗体按钮等属性的定义publiccreateInputFrame<Stringstr>{ //创建进程输入窗口 }voidpanelCreateProIndex<>{ //进程输入首页面 }voidpanelCreateProInput<>{ //进程信息输入页面 }publicvoidactionPerformed<ActionEvente>{//监听器 } } createInputFramecf=newcreateInputFrame<"进程创建">;//实例 化 }3.2.4运行程序接口runFrame<>publicstaticvoidrunFrame<>{ //1.创建运行窗口界面intcurrenttime=0; //记录系统当前时间while<size!=0>{//2.运行时间片轮转调度算法,并记录信息 } try{ //3将运行信息存入文件 Stringfile="D:\\Java\\Processor\\myfile.txt"; }catch<IOExceptione1>{ } }3.2.5显示结果接口resultFrame<>publicstaticvoidresultFrame<>{//1.创建显示结果窗体 JFramejf=newJFrame<"显示运行结果">;//2.打开文件finalJTextAreajta=newJTextArea<16,50>; openbutton.addActionListener<newActionListener<>{publicvoidactionPerformed<ActionEvente>{ //3.将文件容读到文本框中 } }>; }3.3用户接口用户启动此处理机管理模拟系统后,即可方便的进行操作。以下为用户使用此软件时的图形接口:系统主界面<图3-2>:图3-2图3-2图3-3进程创建页面〔图3-3:图3-3系统实现4.1编码实现系统采用高级语言Java设计实现,程序容易阅读,易于测试,容易调试,方便维护。并且Java为当今最流行的编程语言,有其独到的优点;程序代码符合基本编程规,方法,属性命名能体现程序的功能。4.2单元测试4.2.1创建进程模块测试数据进程数num:2进程名 进程运行时间 进程到达时间神舟1号 800 0神舟2号 300 100预期输出 无输出结果,但创建进程模块将输入数据存入存,并结束输入返回主界面。运行结果进程数输入界面〔图4-1:图4-1图4-1进程信息输入界面〔图4-2:图4-2图4-24.2.2运行程序模块测试数据进程数num:2进程名 进程运行时间 进程到达时间神舟1号 800 0神舟2号 300 100预期输出系统时间 进程名 剩余时间 已运行次数 进程状态 周转时间0 神舟1号 700 1 true 100 200 神舟1号 600 2 true 300 神州2号 200 1 true 400 神舟1号 500 3 true 500 神州2号 100 2 true 600 神舟1号 400 4 true 700 神州2号 100 3 false 700800 神舟1号 300 5 true 900 神舟1号 200 6 true 1000 神舟1号 100 7 true 1100 神舟1号 100 8 false 1200运行结果〔图4-3图4-3图4-34.2.3结果显示模块测试数据无需测试数据 预期输出文件正常打开,在终端显示相关控制信息及容;在用户界面显示文件进程运行时的信息容及运行的结果;合法的输出;运行结果〔图4-4图4-4图4-44.3遇到的问题布局管理器实现页面布局时,不能很好的显示在桌面上。对GridLayout,FlowLayout,BorderLayout,CradLyaout等布局管理器还不是很熟悉。对系统结构的划分不当,没有实现界面和数据处理的分离;对用户的非法操作做了处理,但并没有完全找出处理错误操作的方法;没有充分理解将要设计的系统结构,系统层次结构不够清晰;自我评价与总结通过本次课程设计,我对操作系统中的处理机的调度算法有了进一步的理解。在对时间片轮转算法进行设计实现的过程中,自己同时也自学了JavaGUI编程,对图形用户界面编程从理论上的认识走向了亲身实践。只有亲自动手编程才能对所学到的容有深刻的理解,所谓"实践出真知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 搪瓷花版饰花工变革管理知识考核试卷含答案
- 营养师岗前评优考核试卷含答案
- 砖瓦成型工岗前技能考核试卷含答案
- 筑路及道路养护机械维修工安全生产能力知识考核试卷含答案
- 地质样品制备工安全意识测试考核试卷含答案
- 湖盐采掘工常识知识考核试卷含答案
- 酱油酱类制作工岗前岗位考核试卷含答案
- 平版制版员基础晋升强化考核试卷含答案
- 营造林技术员跨界整合考核试卷含答案
- 耐火纤维制品工岗前理论评估考核试卷含答案
- 2026年重庆市从“五方面人员”中选拔乡镇领导班子成员考试试卷(含完整答案解析)
- GB/T 8334-2026液化石油气和液化二甲醚钢瓶定期检验与评定
- 建筑工程管理专业中级职称理论考试题及答案(2026年)
- 2025电梯安全管理员考试试题及答案
- 2026年排污许可证自行监测试题(含答案)
- 2026年贵州省中考数学试题【含答案】
- GA/T 1999.3-2025道路交通事故车辆速度鉴定方法第3部分:基于视频图像
- 地理试卷江苏南京市六校联合体2025-2026学年2026届高三上学期8月学情调研测试(8.27-8.29)
- 2026及未来5年中国化纤加弹机行业发展市场调查数据研究报告
- 2026年湖北省路桥工程专业技术职务水平能力(桥梁工程正高级)测试经典试题及答案
- 2026年国有企业新员工转正综合评估及企业文化认同与岗位技能达标测试
评论
0/150
提交评论