操作系统课程设计 113302班+杨天+梁小龙+豆全胜+杨国浩供参习.docxVIP

  • 2
  • 0
  • 约9.81千字
  • 约 28页
  • 2017-02-09 发布于江苏
  • 举报

操作系统课程设计 113302班+杨天+梁小龙+豆全胜+杨国浩供参习.docx

操作系统课程设计报告113302梁小杨杨国豆全胜2013年12月31日课程设计目的、要求1.1课程设计目的操作系统课程是软件工程专业以及相关专业的必修课,在课程体系中占有重要地位。操作系统本身具有概念抽象、结构复杂和难于掌握的特点,要想掌握操作系统精髓,不仅要做适量的习题,更重要的是动手能力。通过课程设计,可以加深对基本原理的理解,激发学习兴趣,增强自信心。1.2 本次所选题目本次所选题目为进程调度算法。进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CPU的方法。在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的进程调度,目的是加深对进程调度工作的理解,掌握不同调度算法的优缺点。无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。1.3课程设计要求1.3.1功能要求实验应该包括以下功能:运行先来先服务进程调度算法;运行时间片轮转进程调度算法;运行优先数进程调度算法;运行多级反馈队列进程调度算法;显示就绪进程队列;显示运行进程队列;显示阻塞进程队列;创建新进程;阻塞进程;唤醒进程;删除进程;退出程序。1.3.2界面要求实验要求采用简单的控制台界面,包括一级功能菜单,如图1-1所示。图1-1 界面要求第2章课程设计分析及内容2.1进程调度的思想(1)当系统空闲(就绪队列为空)时,系统运行闲逛进程,否则运行其他进程,发生变迁1(就绪→运行)。(2)在运行进程(包括闲逛进程)的过程中,可能发生变迁2(运行→阻塞),即将运行进程插入到阻塞队列(闲逛进程不能被阻塞),可能有其他新的进程创建PCB,还可能唤醒阻塞队列中的某些进程PCB,发生变迁3(阻塞→就绪),即从阻塞队列中移出并插入就绪队列中。(3)时间片运行结束后,若进程累计占用CPU时间大于等于进程需要运行的时间,则进程执行结束,释放其PCB。若进程累计占用CPU时间小于进程需要运行时间,发生变迁4(运行→就绪),即将当前运行的进程插入就绪队列中。2.2算法介绍2.2.1先来先服务进程调度算法最简单的调度算法就是先来先服务,也可以称为先进先出(First In First Out)或严格排队方式。对于进程调度算法来说,先来先服务调度算法就是从就绪队列中选择一个最先进入队列的进程,将CPU分配于它,让其运行。该进程一直运行下去直到完成或由于某事件而被阻塞入放弃CPU.这样,当一个进程进入就绪队列时,它的PCB就链入了该就绪队列的末尾,排队等待分配CPU。一般来说,先来先服务调度算法对于长任务来说比较短任务要好一些。FCFS算法不考虑作业运行时间的长短,仅按作业进入输入井时间的先后进行调度,因此对所有的作业是公平合理的。总体来说先到先服务算法是一个比较费时间的算法。2.2.2优先数进程调度算法在每一个进程的PCB中可有一个数字用来表示该进程的优先级。当需要进行处理机分配时,系统就在就绪进程集中选择优先级最高的进程投入运行。进程优先级的高低应与进程所对应的事件的紧迫程度相关。对于比较紧迫的进程,优先级应当高,反之亦然。算法的主要问题是如何确定进程的优先级。关于优先级的确定有以下两种方法。(1)静态优先级。每个进程在进入系统时被赋予一个优先级,该优先级在进程的整个生命周期一起不变。这种方法简单,开销较小。其缺点就是公平性比较差,可能会造成低优先级的进程长期等待。(2)动态优先级。每个进程在创建时被赋予一个优先级,该优先级在进程的整个生命周期中可以动态改变。例如,在进程获得某种资源后,对应它的优先级应当提高,以便尽快投入运行,避免资源的浪费。又如,在进程就绪状态时,进程的优先级应随着等待时间的增长而增高,以便各个进程都能有机会投入运行,这种方法的优点是可使资源利用率得以提高,公平性比较好。缺点是系统开销大,实现比较复杂。2.2.3多级反馈队列进程调度算法多级反馈队列调度算法是一种CPU处理机调度算法,UNIX操作系统采取的便是这种调度算法。多级反馈队列调度算法既能使高优先级的作业得到响应又能使短作业(进程)迅速完成。1、进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。2、首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,只有在Q1中没有进程等待时才去调

文档评论(0)

1亿VIP精品文档

相关文档