ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:249.38KB ,
资源ID:2987649      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2987649.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统学习课程设计方案之进程调度.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统学习课程设计方案之进程调度.docx

1、操作系统学习课程设计方案之进程调度一 成绩评定表二 任务书三计目的意义、设计内容 四计方案(软硬件环境,开发工具或语言选择及思路) 五程序功能模块设计(程序功能模块划分及层次等)六程序总控流程图七数据结构设计八程序代码结构(函数调用关系或类层次关系)九程序主要代码解读十测试数据及测试结果十一设计过程中遇到的问题及解决方法十二结论(系统实现情况、系统特点、设计体会及收获等)十三.目前资料收集情况(含指定参考资料)二任务书:课程设计题目模拟进程调度功能的设计与实现学院计算机学院专业计算机科学与技术专业年级2006级已知参数和设计要求:运用课堂学习的操作系统理论知识,参考操作系统课程里讲述的文件系统

2、有关算法,用C、C+或JAVA语言编程,模拟实现普通操作系统的进程调度功能。本课程设计目的如下: 1)编程实现模拟操作系统进程调度子系统的基本功能;理解进程调度的概念,通过课程设计深入了解进程控制块的功能、进程的创建、删除以及进程各个状态间的转换过程;实现先来先服务、时间片轮转、多级反馈轮转法对进程进行的调度过程;通过观察有关的队列结构的内容的动态变化过程深入体会各个调度算法的特点;从而能够更好的巩固从书本上学到的知识。2)编程过程中需要建立队列等结构进行各种操作,通过该次实验,可以督促学生从实用的角度对数据结构课程内容进行更深入理解和更熟练的应用。3)实验编程语言要求使用java语言或C+语

3、言。通过对调度功能的编程实现,不但能有效训练学生对编程语言的熟练使用,还能促进学生独立思考解决问题、以及独立查新获取知识的能力。操作系统课程设计报告要求:按要求格式和纸张写出设计报告,报告正文内容如下:1、 设计目的意义、设计内容 2、 设计方案(软硬件环境,开发工具或语言选择及思路等) 3、程序功能模块设计(程序功能模块划分及层次等)4、程序总控流程图4、数据结构设计6、程序代码结构(函数调用关系或类层次关系)7、程序主要代码解读8、测试数据及测试结果9、设计过程中遇到的问题及解决方法10、结论(系统实现情况、系统特点、设计体会及收获等。)报告字数要求:3000评分标准(1)设计报告情况;

4、(2)、运行演示情况;(3)教师质疑回答情况; (4)、算法难易程度; (5)、协作配合情况学生应完成的工作:实现进程调度子系统如下功能模块:1)实现进程相关数据结构(如进程控制块task_struct)的创建和查看功能。2)实现多种进程调度算法:先来先服务算法、优先级调度算法、时间片轮转法、多级反馈轮转法等。3)实现对执行进程的阻塞,对等待进程的唤醒等功能。4)实现相关队列在进程调度中的动态变化过程。分组要求:可按班级自由组合小组成员,一组2-3人组成。 注意: 希望同组同学分工明确,团结协作。每位同学需交课程设计报告(主要写自己负责部分)。小组成员及分工情况:由学生填写目前资料收集情况(含

5、指定参考资料):著作:1 张尧学,史美林.计算机操作系统教程第2版.清华大学出版社2000年著作:2 张尧学.计算机操作系统教程第2版 习题与实验指导.2000年课程设计的工作计划:课程设计的时间为一周,上机时间共20学时。工作计划如下:星期一:准备工作,理解、分析设计要求。总体方案设计,确定组内分工。星期二:程序模块结构设计,模块层次调用关系、模块之间接口约定。星期三:程序设计、模块测试。星期四:程序设计、模块集成;总体测试;写课程设计报告。星期五:完善程序和报告。向老师提交课程设计报告和程序。任务下达日期2009年6月20 日完成日期 2009年 6月26 日指导教师(签名)学生(签名)三

6、设计目的意义、设计内容1 编程实现模拟操作系统进程调度子系统的基本功能;理解进程调度的概念,通过课程设计深入了解进程控制块的功能、进程的创建、删除以及进程各个状态间的转换过程;实现先来先服务、时间片轮转、多级反馈轮转法对进程进行的调度过程;通过观察有关的队列结构的内容的动态变化过程深入体会各个调度算法的特点;从而能够更好的巩固从书本上学到的知识。2 编程过程中需要建立队列等结构进行各种操作,通过该次实验,可以督促学生从实用的角度对数据结构课程内容进行更深入理解和更熟练的应用。3 实验编程语言要求使用java语言或C+语言。通过对调度功能的编程实现,不但能有效训练学生对编程语言的熟练使用,还能促

7、进学生独立思考解决问题、以及独立查新获取知识的能力。四设计方案(软硬件环境,开发工具或语言选择及思路等)设计环境平台:该软件在Windows XP,JDK1.6开发工具:eclipse+designer设计思路 :1、 进程概念:进程是被独立分配资源的最小单位。进程是动态概念,必须程序运行才有进程的产生。2、 进程的状态模型:(1)运行:进程已获得处理机,当前处于运行状态。(2)就绪:进程已经准备好,一旦有处理器就可运行。(3)阻塞:进程因为发生某事件而暂停执行,亦即进程的执行受到阻塞。3、处理机调度:在多道程序设计系统中,内存中有多道程序运行,他们相互争夺处理机这一重要的资源。处理机调度就是

8、从就绪队列中,按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。4、 进程调度算法的功能记录系统中所有进程的执行情况选择占有处理机的进程进行进程的上下文切换5、进程调度的算法:(1)先来先服务算法:最先进入等待队列的进程先执行,进程结束后执行下一个进程。这是最简单的处理机调度算法,其基本思想是按照进程进入就绪队列的先后顺序调度并分配处理机执行。先来先服务调度算法是一种不可抢占的算法,先进入就绪队列的进程,先费培处理机运行。一旦一个进程占有了处理机,它就一直运行下去,知道该进程完成工作或者因为等待某事件而不能继续运行时才释放处理机(2)优先数算法:即进程的执行顺序由高优先级

9、到低优先级。系统或用户按某种原则为进程指定一个优先级来表示该进程所享有的确调度优先权。该算法核心是确定进程的优先级。(3)时间片轮转算法:固定时间片,每个进程在执行一个时间片后,轮到下一进程执行,知道所有的进程执行完毕。处理器同一个时间只能处理一个任务。处理器在处理多任务的时候,就要看请求的时间顺序,如果时间一致,就要进行预测。挑到一个任务后,需要若干步骤才能做完,这些步骤中有些需要处理器参与,有些不需要(如磁盘控制器的存储过程)。不需要处理器处理的时候,这部分时间就要分配给其他的进程。原来的进程就要处于等待的时间段上。经过周密分配时间,宏观上就象是多个任务一起运行一样,但微观上是有先后的,就

10、是时间片轮换。 (4) 多级反馈轮转法: 把系统中的所有进程分成若干个具有不同优先级别的组,同一组的进程都具有与所在组同样的优先级别,并且把每组进程组织成一个先进先出的队列。在设计时,按优先级别越高的组中的进程应得时间片越短的原则分配时间片。在调度时,调度器每次都从优先级别高的就绪队列中队首选择就绪进程。当在高优先级别的队列中找不到就绪进程时,才到低优先级别的就绪进程队列中选取。注:优先数算法时间片轮转法多级反馈队列调度法五程序功能模块设计1模拟进程调度算法模块界面模块进程调度模块事件模块先来先服务算法模块优先数算法模块时间片轮转算法模块多级反馈队列调度法模块六程序总控流程图七数据结构设计 本

11、组在实现进程调度算法时采用了一个有特色的模拟方式线程模拟进程。数据结构设计如下:创建JAVA中的thread对象,并将创建好的各个对象放入数据容器Vector()中,各个调度算法对个进程的排序,其实就是对vector中的thread对象排序,决定其执行顺序。八程序代码结构(函数调用关系或类层次关系)开始执行:public class MainThread弹出程序运行窗口选择进程调度算法comboBox.getSelectedItem()=Pri;comboBox.getSelectedItem() = T_Slice;comboBox.getSelectedItem() = M_FB_Slic

12、e创建进程:从窗体控件获取相应参数创建进程new RefreshList(list_3, list_1, list_2, textField_3).run()对进程进行控制:阻塞(首先判断有无进程在执行:JOptionPane.showMessageDialog(null, 已经无进程处于运行状态,请创建进程!),若有,则终止执,行将执行进程从就绪队列调入等待队列:v1.addElement(v2.get(0)。v11.addElement(v0.get(0)。v2.remove(0)。v0.remove(0)。list_2.setListData(v11)。list_1.setListDat

13、a(v0)。)。唤醒:将等待队列中的进程重新调入就绪队列的对尾九程序主要代码解读publicvoid run() if (MainForm.algorithm.equals(T_Slice) / System.out.println(T_Slice)。 execute_T_Slice()。 refresh()。 elseif (MainForm.algorithm.equals(M_FB_Slice) /System.out.println(M_FB_Slice)。 executeM_T_Slice()。 refresh()。 else execute()。 refresh()。 public

14、void refresh() / 刷新列表,并且执行下一个进程 MainForm.list_1.setListData(MainForm.v0)。if (MainForm.v0.size() 0) MainForm.textField_3.setText(String) MainForm.v0.get(0)。 else MainForm.textField_3.setText(无进程)。if (k MainForm.n) ShowInfo show = new ShowInfo()。 show.setVisible(true)。 Thread t = new Thread(show)。 t.start()。 / 进程执行过程publicvoid execute() /FCFS和优先级调度算法int maximum = progressBar.getMaximum()。progress = (CrtProcess) MainForm.v2.get(0).getProgress()。/ System.out.println(progress+sfsdf+MainForm.v2.size()。label_3.setText(Crt

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1