计算机操作系统启发式教学研究

计算机操作系统启发式教学研究

ID:9564896

大小:56.00 KB

页数:5页

时间:2018-05-02

计算机操作系统启发式教学研究_第1页
计算机操作系统启发式教学研究_第2页
计算机操作系统启发式教学研究_第3页
计算机操作系统启发式教学研究_第4页
计算机操作系统启发式教学研究_第5页
资源描述:

《计算机操作系统启发式教学研究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、计算机操作系统启发式教学研究计算机操作系统启发式教学研究  操作系统是计算机相关专业的一门核心专业课,而实时调度算法是操作系统课程中的一个重要内容,在多数的操作系统教科书中主要介绍了两种实时调度算法,即最早截止时间优先算法(EarliestDeadlineFirst,EDF)和最低松弛度优先算法(LeastLaxityFirst,LLF)。这两个算法看上去并不难理解,然而问题往往并不像看起来那样简单。事实上,在操作系统的教学中有一个很大的困难,即操作系统的教学不易落到实处,即原理容易讲,但要让学生体验这些原理却并不容易。操作系统课程中涉及大量算法,如进程

2、调度算法、死锁避免算法、页面置换算法等。表面上这些算法看起来比较容易,但要让学生理解算法后面蕴含的深刻道理,并从这些算法中发现一些问题就绝非易事了。  对于这个困难,我们希望通过一些启发式的教学设计,引导学生从程序员、从算法设计者的角度去分析和思考算法中的一些问题,从而将抽象的原理转化为具体的问题和解决方案,加深对这些原理的理解。下面结合实时调度算法的例子来阐述对于启发式教学设计的思考。  1实时调度算法的启发式教学设计  1.1调度算法问题定义  很多操作系统教科书中都介绍了两个重要的实时调度算法,一个是EDF,另一个是LLF。这两个实时调度算法的调度

3、准则都很简单,课堂讲授时本文由.L.收集整理学生并不难理解。然而,这两个不同的调度算法在应用中的效果如何,教科书中并没有给出进一步的分析和讨论。事实上,这是一个很好的启发式教学的切入点,我们就从这里出发来设计问题。首先来看一看EDF算法和LLF算法的思想。  EDF算法是根据任务的开始截止时间来确定任务的优先级。截止时间愈早,其优先级愈高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的早晚排序;当然,具有最早截止时间的任务排在队列的最前面。调度程序在选择任务时,总是选择就绪队列中的第一个任务,为之分配处理机,使之投入运行。截止时间可

4、以是开始截止时间,也可以是完成截止时间。一般来说,完成截止时间等于开始截止时间加上任务处理时间。  LLF算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度越高,越优先执行。例如,一个任务在200ms时必须完成,而它本身所需的运行时间就有100ms,因此,该任务的紧急程度(松弛程度)为100ms。又如,另一任务在400ms时必须完成,它本身需要运行150ms,则其松弛程度为250ms。调度程序总是选择就绪队列中松弛度最小的任务执行。LLF算法主要采用抢占调度方式。  1.2发现问题  按照教科书的描述和给出的示例,在LLF算法中,当有

5、新任务到达时,并不马上比较当前所有任务的松弛度(包括正在执行的任务),而是等到某个在等待的任务的松弛度降为零才进行切换,即选择这个松弛度已经降为零的任务运行。按照这个原则,我们在启发式教学设计中提出的第一个问题。  第一个问题:按照教科书给出的LLF算法调度原则,是否会存在不可调度的情况?  经过分析,很容易找出问题,如图1中给出的示例。  通过上面的示例可知,在某些情况下,当某个任务在执行过程中,若某个(或某些)正在等待的任务的松弛度减至0s,则可能会导致任务无法成功调度,而实际上系统能力是允许成功调度的。  1.3提出改进  针对前面提出的问题,可以

6、引导学生对LLF算法的调度准则进行改进。通常比较容易想到的改进是,修正松弛度的计算和任务切换时机,即松弛度不需要随时计算,而在如下两种情况时进行计算:  1)当前任务正在执行时新任务到达,可能会引起抢占和任务切换,此时需要计算并比较松弛度;  2)当前任务完成时可能会引起新的任务调度和切换,此时计算松弛度。  进程在执行时松弛度会不断变化,但是不用进行跟踪计算和比较。  修正后,可以对学生提出第二个问题。  第二个问题:修正后的LLF算法,是否存在着不可调度的情况?  回答依然是存在问题,可以看一看图2中给出的另一个示例。  1.4证明猜想  若发现改进

7、后的LLF算法还是存在问题,这时可以引导学生再作改进,并进行讨论。事实上,无论如何改进LLF的调度和切换时机,都无法解决问题。那么我们可以引导学生逐步转到EDF算法上来,即EDF算法也会存在类似问题吗?因此我们提出的第三个问题如下。  第三个问题:按照完成截至时间调度的EDF算法,是否存在不可调度的情况?  通过启发学生寻找反例会发现无法找到反例,这时学生也许会想到,EDF是一个最优的算法,即可以得出以下的猜想。  猜想:给定一系列的任务,只要这些任务是可调度的,即存在某种序列使得所有任务都在完成截至时间之前完成,则使用EDF算法一定能成功调度这些任务。

8、  有了猜想,如何证明呢?这显然要比设计反例困难得多。我们可以引导学生深入研究这

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。