欢迎来到天天文库
浏览记录
ID:19682529
大小:194.35 KB
页数:28页
时间:2018-10-05
《操作系统课程设计 113302班+杨天+梁小龙+豆全胜+杨国浩》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统课程设计报告113302班20093541梁小龙20113851杨天20113849杨国浩20113824豆全胜2013年12月31日第1章目录第1章课程设计目的、要求11.1课程设计目的11.2本次所选题目11.3课程设计要求11.3.1功能要求11.3.2界面要求2第2章课程设计分析及内容32.1进程调度的思想32.2算法介绍32.2.1先来先服务进程调度算法32.2.2优先数进程调度算法42.2.3多级反馈队列进程调度算法42.2.4时间片轮转进程调度算法5第3章课程设计的实现63.1算法数据结构63.2主要函数
2、功能定义63.3算法流程图73.4系统界面9心得体会11附录程序清单1226第1章第1章课程设计目的、要求1.1课程设计目的操作系统课程是软件工程专业以及相关专业的必修课,在课程体系中占有重要地位。操作系统本身具有概念抽象、结构复杂和难于掌握的特点,要想掌握操作系统精髓,不仅要做适量的习题,更重要的是动手能力。通过课程设计,可以加深对基本原理的理解,激发学习兴趣,增强自信心。1.2本次所选题目本次所选题目为进程调度算法。进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CP
3、U的方法。在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的进程调度,目的是加深对进程调度工作的理解,掌握不同调度算法的优缺点。无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。1.3课程设计要求1.3.1功
4、能要求实验应该包括以下功能:1.运行先来先服务进程调度算法;26第1章1.运行时间片轮转进程调度算法;2.运行优先数进程调度算法;3.运行多级反馈队列进程调度算法;4.显示就绪进程队列;5.显示运行进程队列;6.显示阻塞进程队列;7.创建新进程;8.阻塞进程;9.唤醒进程;10.删除进程;11.退出程序。1.3.2界面要求实验要求采用简单的控制台界面,包括一级功能菜单,如图1-1所示。图1-1界面要求26第2章第2章课程设计分析及内容2.1进程调度的思想(1)当系统空闲(就绪队列为空)时,系统运行闲逛进程,否则运行其他进程,发
5、生变迁1(就绪→运行)。(2)在运行进程(包括闲逛进程)的过程中,可能发生变迁2(运行→阻塞),即将运行进程插入到阻塞队列(闲逛进程不能被阻塞),可能有其他新的进程创建PCB,还可能唤醒阻塞队列中的某些进程PCB,发生变迁3(阻塞→就绪),即从阻塞队列中移出并插入就绪队列中。(3)时间片运行结束后,若进程累计占用CPU时间大于等于进程需要运行的时间,则进程执行结束,释放其PCB。若进程累计占用CPU时间小于进程需要运行时间,发生变迁4(运行→就绪),即将当前运行的进程插入就绪队列中。2.2算法介绍2.2.1先来先服务进程调度算
6、法最简单的调度算法就是先来先服务,也可以称为先进先出(FirstInFirstOut)或严格排队方式。对于进程调度算法来说,先来先服务调度算法就是从就绪队列中选择一个最先进入队列的进程,将CPU分配于它,让其运行。该进程一直运行下去直到完成或由于某事件而被阻塞入放弃CPU.这样,当一个进程进入就绪队列时,它的PCB就链入了该就绪队列的末尾,排队等待分配CPU。一般来说,先来先服务调度算法对于长任务来说比较短任务要好一些。FCFS算法不考虑作业运行时间的长短,仅按作业进入输入井时间的先后进行调26第2章度,因此对所有的作业是公平
7、合理的。总体来说先到先服务算法是一个比较费时间的算法。2.2.2优先数进程调度算法在每一个进程的PCB中可有一个数字用来表示该进程的优先级。当需要进行处理机分配时,系统就在就绪进程集中选择优先级最高的进程投入运行。进程优先级的高低应与进程所对应的事件的紧迫程度相关。对于比较紧迫的进程,优先级应当高,反之亦然。算法的主要问题是如何确定进程的优先级。关于优先级的确定有以下两种方法。(1)静态优先级。每个进程在进入系统时被赋予一个优先级,该优先级在进程的整个生命周期一起不变。这种方法简单,开销较小。其缺点就是公平性比较差,可能会造成
8、低优先级的进程长期等待。(2)动态优先级。每个进程在创建时被赋予一个优先级,该优先级在进程的整个生命周期中可以动态改变。例如,在进程获得某种资源后,对应它的优先级应当提高,以便尽快投入运行,避免资源的浪费。又如,在进程就绪状态时,进程的优先级应随着等待时间的增长而增高,以便各
此文档下载收益归作者所有