操作系统算法设计操作系统课程设计大学论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
题 目 操作系统算法设计
课 程 名 称 操作系统课程设计
院 部 名 称 计算机工程学院
专 业 计算机科学与技术
班 级 14计算机科学与技术单
学 生 姓 名 邵佳楠
学 号 141320100
课程设计地点 A107
课程设计学时 20学时
指 导 教 师 潘
金陵科技学院教务处制 成绩
目录
摘要 (2)
一、课程设计的目的和要求 (3)
二、系统需求分析 (3)
三、总体设计 (3)
四、详细设计 (4)
五、测试、调试过程 (7)
六、结论与体会 (16)
附录:源程序 (17)
摘要 (32)
一、课程设计的目的和要求 (33)
二、系统需求分析 (33)
三、总体设计 (33)
四、详细设计 (33)
五、测试、调试过程 (34)
六、结论与体会 (38)
附录:源程序 (39)
摘要 (47)
一、设计的目的和要求 (47)
二、系统需求分析 (48)
三、总体设计 (48)
四、详细设计 (48)
五、测试、调试过程 (50)
六、结论与体会 (54)
附录:源程序 (55)
操作系统算法设计-进程调度程序
摘要
随着计算机的普及,人们生活得到极大改善,人们在精神方面也同样需要提高,所以越来越多的人进行着各种各样的学习。操作系统是计算机中最重要的环节之一,也是计算机专业学生的一门重要的专业课程。操作系统的好坏,直接影响整个计算机系统的性能和用户对计算机的使用。一个精心设计的操作系统能极大的扩展计算机的功能,充分发挥系统中的各种设备的使用效率,提高系统的可靠性。由于操作系统中各种软硬件资源的管理,内容比较繁琐,具有很强的实践性,要学好这门课程,必须把理论和时间紧密结合,才能取得较好的学习效果。
本次课程设计师在学习完《操作系统教程》后,进行的一次全面的综合训练,通过课程设计,让学生更好的掌握操作系统的原理以及实现方法,加深对操作系统基础理论和重要算法的理解,加强对学生的动手能力。
熟悉“最高优先级优先调度算法”、“基于时间片轮转法”、“多级反馈队列调度算法”、“最高优先级优先算法”,虽然不用全部每一个都弄清楚,但是了解其中的算法思想也是有好处的。
关键词:最高优先级优先调度算法、基于时间片轮转法、多级反馈队列调度算法、最高优先级优先算法
一、课程设计的目的和要求
程序能够完成以下操作:创建进程:先输入进程的数目,再一次输入每个进程的进程名、运行总时间和优先级,先到达的先输入;进程调度:进程创建完成后就选择进程调度算法,并单步执行,每次执行的结果都从屏幕上输出来。
二、系统需求分析
在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对于批量型作业而言,通常需要经历作业调度(又称高级调度或长程调度)和进程调度(又称低级调度或短程调度)两个过程后方能获得处理机;对于终端型作业,则通常只需经过进程调度即可获得处理机。在较完善的操作系统中,为提高内存的利用率,往往还设置了中级调度(又称中程调度)。对于上述的每一级调度,又都可采用不同的调度方式和调度算法。
三、总体设计
编写进程调度程序,“最高优先级优先”算法常用语批处理系统中,在进程调度中,每次调度时,系统把处理机给就绪队列中优先级最高的进程。在非抢占式优先级算法下系统一旦把处理机分配给就绪队列中优先级最高的进程后,这个进程就会一直运行,直到完成或发生某事件使它放弃处理机,这时系统才能重新将处理机分配给就绪队列中的理你个优先级最高的进程。静态优先级是在创建进程时确定的,并在整个运行期间不再改变。动态优先级是指进程的优先级在创建进程时可以给定一个初始值,并且可以按一定原则修改优先级。
“轮转法”算法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间。
“多级反馈队列调度”算法中,进程在进入待调度的队列等待时,首先进入优先级最高的队列等待。先调度优先级高的队列中的进程,若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。对于同一个队列中的各个进程,按照时间片轮转法调度。在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。
最高优先级优先算法:从键盘输入若干个进程,进程包括进程名,进程优先级,进程运行时间。就绪队列按照优先级从高到低排列,进程调度中,获取就绪队列队首进程,即优先级最高的进程,在进程获得一次CPU后,就将该进程的优先级减1。重新排列就绪队列,获取就绪队列队首进程进行调度。
四、详细设计
进程调度程序中,静态优先级算法的基本原理与简单轮转调度的算法还有多级反馈调度算法相似,都是先用户输入进程信息、对用户输入的进程按优先级排序,然后输出就绪队列中的进程、输出正在运行的进程、输出已完成的进程、静态优先级算法,区别在于简单轮转调度算法多一个对用户输入的进程按FCFS排序。动态优先级算法是根据静态优先级算法进行更改,总体差不多只是相对灵活性更加灵活。而多级反馈调度算法是按优先级排序,整体上差不多。
下面是各个算法的程序流程图: