嵌入式系统中操作系统调度算法讲解的探讨.doc
文本预览下载声明
嵌入式系统中操作系统调度算法讲解的探讨
摘要:嵌入式软件系统的核心就是嵌入式操作系统,学生在完成嵌入式系统设计过程中,操作系统的选择和设计至关重要,前提条件是学生对操作系统中进程的调度算法足够了解,进而进行调度算法的设计以适应嵌入式系统设计的专用性。该文旨在给出操作系统的普通调度算法和嵌入式实时操作系统的不同调度算法,对算法进行讲解和区分,以便于学生学习和掌握。
关键词:嵌入式系统;实时系统;进程调度;操作系统;优先级
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)01-0013-02
嵌入式系统包括硬件系统和软件系统。嵌入式软件系统是由嵌入式操作系统和嵌入式应用程序组成。嵌入式操作系统通常是实时操作系统,尽管不是所有的嵌入式系统都是实时系统,但是实时性是多数嵌入式系统最重要的特性之一。嵌入式系统当中一个很重要的思想就是嵌入式系统当中如果面对的是复杂多任务系统 ,如工业智能控制系统,银行ATM终端等,这些情况下通常需要安装嵌入式操作系统,且多数情况下是嵌入式实时操作系统。教学的难点是让学生理解什么样的系统需要安装嵌入式操作系统,不同的应用需要的操作系统差别很大,核心的思想不同的应用会需要特定类型的操作系统,而不同的操作系统会有不同的进程调度算法。实时操作系统中最重要的就是进程调度算法是实时性的,能够保证较好的响应时间。普通操作系统和实时操作系统的区别就是系统进程调度算法的差别。在课程的讲解上,为了增加学生对实时性的认知,需要讲解操作系统的调度算法。通过进程调度算法的讲解让学生在完成嵌入式系统设计的过程中,能够根据实际应用是否实时性进行有效地进行操作系统进程调度算法的选取,进而决定操作系统的类型。
1 实时系统介绍
所谓实时系统就是系统的输出在时间上至关重要的系统。这样的系统不但要求系统输出结果的正确性还要求输出结果的时间,在给定输入之后,一定要在有效的时限内产生系统输出。衡量实时系统很重要的指标是就是响应时间,是指计算机从识别一个外部时间到做出响应的时间。依据输出结果的时间的长短,实时系统分为强实时系统(响应时间在毫秒或者微秒),弱实时系统(响应时间为数十秒说着更长),一般实时系统(前两者的折中)。在航空航天,工业控制系统中多要求强实时系统,民用多媒体电子产品对实时性要求一般不高,多数是一般实时系统,比如智能手机。
2 普通系统的调度算法
普通系统和实时系统采用不同的调度算法。不同的算法决定了统实时性能的。调度算法主要是针对系统当中的进程执行的先后顺序来进行调度的算法。对于一个普通系统,进程的调度算法常用的主要有:先来先服务,短进程优先,最高响应比优先。三种这三种算法各有优劣,但是这三种算法都不利于系统当中的紧迫性高的实时任务。对于普通系统,这三种调度算法有较好的性能。
2.1 先来先服务调度算法
这是一种最简单的进程调度算法,在这种进程调度中,进程严格依照进入内存的时间先后顺序排成一个队列,处理器每次从就绪队列中选择队首的进程来占据CPU执行,这个队首的进程一定是系统当前状态下最先进入内存的进程。
FCFS调度算法属于不可抢占算法,算法简单。从表面上看,它对所有进程都是公平的,但若一??长进程先到达系统,就会使后面许多短进程等待很长时间,对长进程比较有利,但会造成短作业等待时间和占据CPU运行的时间比值过大,故而降低系统的吞吐量(系统单位时间内完成的任务总数),导致很多短作业队系统不满意。所以可以将这种算法和其他算法结合起来使用。
2.2 短进程优先调度算法
短进程优先调度算法是指对短进程优先调度的算法这是从就绪队列中选择一个估计占据CPU执行时间最短的进程,将处理机分配给它,使之立即执行。短进程算法对长进程不利,短作业多的情况下,长进程的等待使用CPU的时间会增加。严重的将导致长进程长期不被调度而出现“饿死”,即CPU依照这个算法总是调度短作业运行,长作业始终处于等待状态而得不到CPU的使用权。该算法会提高系统的吞吐量,因为系统总是调度耗时少的短进程执行,故而吞吐量一定上升,但是整体而言,这个算法对长进程很不公平。
2.3 最高响应比优先调度算法
先来先服务算法会导致系统吞吐量下降,不满意的短进程数量增加,短进程优先会提高吞吐量但是导致长作业饿死,基于上述两种算法的综合,给出了最高响应比优先调度算法。最高响应比优先是响应比高的进程优先调度运行。
该算法需要系统记录每个进程的等待时间和要求占据CPU的执行时间。进程调度时,先计算后备进程队列中每个进程的响应比,从中选出响应比最高的进程投入运行。缺点是每一次执行该调度算法时都要重新计算系统当中所有就绪队列的每一个进程的响应比,这个计算当系统任务量大
显示全部