操作系统课程设计时间片轮转算法java实现.docx
- 文档编号:2035302
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:17
- 大小:675.44KB
操作系统课程设计时间片轮转算法java实现.docx
《操作系统课程设计时间片轮转算法java实现.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计时间片轮转算法java实现.docx(17页珍藏版)》请在冰豆网上搜索。
操作系统课程设计时间片轮转算法java实现
学校代码:
10128
学号:
201020205056
课程设计
题目:
处理机管理模拟系统的设计与实现
学生姓名:
学院:
信息工程学院
系别:
软件工程系
专业:
软件工程
班级:
指导教师:
副教授
讲师
2013年1月8日
内蒙古工业大学课程设计任务书(四)
学院(系):
信息学院软件工程系课程名称:
操作系统课程设计指导教师(签名):
专业班级:
学生姓名:
学号:
一、课程设计题目
处理机管理
二、课程设计的目的
学生通过设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。
使学生初步具有研究、设计、编制和调试操作系统模块的能力。
三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)
原始数据:
进程控制块PCB结构体。
技术参数:
WindowsXP系统,VC++6.0开发工具。
设计要求:
1.设计基于时间片轮转法的处理机调度算法;
2.或设计基于先来先服务或基于优先权的处理机调度算法;
3.画出以上算法流程图;
4.编程实现算法功能;
5.编写课程设计说明书。
工作量要求:
完成以上设计要求中的所有算法功能。
四、工作进度安排
周一:
布置、讲解题目,收集资料;
周二:
系统分析,算法设计;
周三:
编制、调试程序;
周四:
测试系统,形成设计结论,编写课设报告;
周五:
系统及材料验收,课设答辩。
五、主要参考文献
[1]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:
清华大学出版社,2006
[2]汤子瀛主编.计算机操作系统(第三版).西安:
西安电子科技大学出版社,2001
[3]张坤等编.操作系统实验教程.北京:
清华大学出版社,2008
审核批准意见
系(教研室)主任(签字)
摘要
操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。
对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业优先调度算法;在分时系统中,为保证系统具有合理的响应时间,采用时间片轮转法进行调度。
采用算法时,则要考虑多方面因素,以便达到最佳效果。
本次课程设计采用时间片轮转调度算法来实现模拟进程调度任务的执行过程。
用Java模拟进程调度过程,可以方便地将运行结果直观地表示出来。
Java语言独有的多线程操作,可以实现许多其他语言不能实现的功能,极大地方便了程序开发人员对程序的开发。
此外,利用JavaGUI编程,可以使系统提供的界面更加友好。
实验中,应用文件I/O操作、线程、AWT、Swing、内部类、接口、异常处理等技术,开发此系统。
关键字:
时间片轮转;Java编程;GUI图形用户界面;文件操作;
Abstract
Theoperatingsystemisakeycomponentofthecomputersystem,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;
第一章问题分析
1.1设计目的
在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个。
也就是说能运行的进程数远远大于处理机个数。
为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占有处理机。
要求设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。
1.2设计目标
1.2.1问题描述
处理机管理是操作系统中非常重要的部分。
为深入理解处理机调度部分的功能,设计一个按时间片轮转调度CPU的算法,模拟实现处理机的调度。
1.2.2基本要求
时间片轮转调度CPU的算法是分时系统采用的典型算法,把CPU的执行时间分成若干个一定大小的时间片轮流的分配给就绪队列的各个进程,让各就绪进程按指定的顺序分别占用CPU的一个时间片轮流执行下去,直至完成。
要求定义进程控制块PCB的结构,并为每个进程任意确定一个要求运行时间和到达时间,按照进程到达的先后顺序排成一个循环队列。
设计按时间片轮转的进程调度算法。
1.3设计思想和运行环境
a.设计思想
(1)假设系统有5个进程,每个进程用一个进程控制块Process来代表。
Process的结构如图1-1所示。
对PCB控制块进行包装,形成循环链表结点ProcessNode,链表结点ProcessNode如图1-2所示。
图1-2进程控制块结点
图1-1进程控制块
Pname:
进程名
runTime:
进程运行时间
arriveTime:
到达时间
State:
进程状态
cpuTime:
运行时间
cpcRound:
已运行次数
startTime:
进程开始时间
每个属性的set,get方法
proecss:
Process类型进程控制块
Next:
ProcessNode类型指针
每个属性的set,get方法
pntmp
head
图1-3循环链表
(2)为每个进程从模拟的系统中指定一个要求运行时间和到达时间。
(3)按照进程到达的先后顺序排成一个循环队列,再设一个队首指针head指向第一个到达进程的首址。
(4)执行处理机调度时,从队列的第一个进程开始,用pntmp指针顺序选择可执行的进程执行。
(5)由于本实践是模拟算法,所以对被选中进程并不实际启动运行,而只是执行:
运行时间加100和输出当前运行进程的相关信息。
用这两个操作来模拟进程的一次运行。
b.运行环境
编程语言:
Java语言
工具:
JDK1.6.0_26、Windows7系统以及MyEclipse6.0.1等
第二章
概要设计
2.1系统结构
2.1.1系统结构层次图
2.1.2系统功能说明
a.创建进程模块:
创建进程模块在输入进程页面输入要创建的进程数,输入后逐个将进程信息录入插入到就绪队列中,完成进程的创建过程。
b.运行程序模块:
此模块实现时间片轮转调度算法,从就绪队列中取出进程结点,并模拟运行该进程,反复循环,直至进程全部运行结束。
每次运行进程后,将运行信息存入到文件中,实现信息的持久化。
方便信息的记录,系统功能的分析和出错时便于检查错误。
c.显示结果模块:
从文件中读入进程运行的结果,在图形界面下操作,提供友好的用户操作方式,方便直观的了解模拟进程的调度过程,便于数据分析和研究。
2.2算法描述
a.在创建进程界面将进程信息录入,将进程控制块进行包装,插入到循环队列中;
b.当运行程序时,每次从就绪队列队首取出一个进程pntmp,判断是pntmp进程否到达。
到达则运行该进程;
c.若pntmp进程为首次运行,则记录进程开始运行时间startTime;
d.运行完pntmp进程后,输出进程运行信息,并将此结点移至队尾;
e.若循环队列长度size>0,则返回执行b;否则结束程序;
第三章详细设计
3.1系统程序流程图
Y
Y
N
开始
显示主界面
输入进程数num
i=0
i 输入进程名pname;运行时间rumtime到达时间arrivetime 插入到循环队列中 从队列首部head取出一个进程pntmp 判断pntmp进程是否到达 当前进程是否已完成 运行pntmp进程,运行时间-100 a b c b N Y N 3.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(){//进程信息输入页面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 时间 轮转 算法 java 实现