首页 > 知识点讲解
       多任务调度机制
知识路径: > 计算机系统综合知识 > 操作系统 > 网络操作系统与嵌入式操作系统 > 嵌入式系统 > 嵌入式操作系统 > 
相关知识点:18个      
        首先,我们介绍几个基本概念:
        (1)任务。任务是独立执行的线程,线程中包含着独立的可调度的指令序列。实时应用程序的设计过程包括如何把问题分割成多个任务,每个任务是整个应用的一个组成部分,每个任务被赋予一定的优先级,有自己的一套寄存器和栈空间。在大多数典型的抢占式调度内核中,在任何时候,无论是系统任务还是应用任务,其状态都会处于就绪、运行、阻塞三个状态之一。另外,某些商业内核还定义了挂起、延迟等颗粒更细的状态。
        (2)任务对象。任务是由不同的参数集合和支持的数据结构定义。在创建任务时,每个任务都拥有一个相关的名字、一个唯一的标识号ID、一个优先级、一个任务控制块、一个堆栈和一个任务的执行例程,这些部件一起组成一个任务对象。
        (3)多任务。多任务是操作系统在预定的死线内处理多个活动的能力。多任务的运行使CPU的利用率得到最大地发挥,并使应用程序模块化。随着调度的任务数量的增加,对CPU的性能需求也随之增加,主要是由于线程运行的上下文切换增加的缘故。
        (4)调度器。调度器是每个内核的心脏,调度器提供决定何时哪个任务运行的算法。多数实时内核是基于优先级调度的。
        (5)可调度实体。可调度实体是一个可以根据预定义的调度算法,竞争到系统执行时间的内核对象。
        (6)上下文切换。每个任务都有自己的上下文,它是每次被调度运行时所要求的寄存器状态,当多任务内核决定运行另外的任务时,它保存正在运行的任务的上下文,恢复将要运行下一任务的上下文,并运行下一任务,这个过程称为上下文切换。在任务运行时,其上下文是高度动态的。调度器从一个任务切换到另一个任务所需要的时间称为上下文切换开销。
        (7)可重入性。指一段代码被一个以上的任务调用,而不必担心数据的破坏。具有可重入性的函数任何时候都可以被中断,一段时间以后继续运行,相应数据不会遭到破坏。
        (8)分发器。分发器是调度器的一部分,执行上下文切换并改变执行的流程。分发器完成上下文切换的实际工作并传递控制。任何时候,执行的流程通过三个区域之一:应用任务、ISR(Interrupt Service Routines,中断服务程序)或内核。
        根据如何进入内核的情况,分发的情况也有所不同。当一个任务是用系统调用时,分发器通常在每个任务的系统调用完成后退出内核。在这种情况下,分发器通常以调用一调用为基础的,因此,它可以协调由此引起的任何系统调用的任务状态转移。另一方面,如果一个ISR做系统调用,则分发器将被越过,直到ISR全部完成它的执行。
        当前,大多数内核支持两种普遍的调度算法,即基于优先级的抢占调度算法和时间轮转调度算法。
               基于优先级的抢占调度
               基于优先级的抢占调度又可以分为静态优先级和动态优先级。静态优先级是指应用程序在执行的过程中各任务的优先级固定不变。在静态优先级系统中,各任务以及它们的时间约束在程序编译时是已知的;动态优先级是指应用程序在执行的过程中各任务的优先级可以动态改变。这种类型的调度,在任何时候运行的任务是所有就绪任务中具有最高优先级的任务,任务在创建时被赋予了优先级,任务的优先级可以由内核的系统调用动态而更改,这使得嵌入式应用对于外部事件的响应更加灵活,从而建立真正的实时响应系统。
               一般情况下,可以采用单调执行速率调度法(Rate Monotonic Scheduling, RMS)来给任务分配优先级,基本原则是执行最频繁的任务优先级最高。RMS做了如下假设:
               (1)所有的任务都是周期性的。
               (2)任务间不需要同步,没有共享资源,没有任务间的数据交换等问题。
               (3)系统采用抢占式调度,总是优先级最高且就绪的任务被执行。
               (4)任务的死线是其下一周期的开始。
               (5)每个任务具有不随时间变化的定长时间。
               (6)所有的任务具有同等重要的关键性级别。
               (7)非周期性任务不具有硬死线。
               要使一个具有n个任务的实时系统中的所有任务都满足硬实时条件,必须使下述定理成立(RSM定理)。
               
               式中,Ei是任务i最长执行时间,Ti是任务i的执行周期,Ei/Ti是任务i所需的CPU时间。
               基于RSM定理,要所有的任务满足硬实时条件,则所有有时间要求的任务总的CPU利用时间(或利用率)应当小于70%。通常,作为实时系统设计的一条原则,CPU利用率应当在60%~70%之间。
               时间轮转调度
               时间轮转调度算法为每个任务提供确定份额的CPU执行时间。显然,纯粹的时间轮转调度是不能满足实时系统的要求的。取而代之的是,基于优先级抢占式扩充时间轮转调度,对于优先级相同的任务使用时间片获得相等的CPU执行时间。内核在满足以下条件时,把CPU控制权转交给下一个就绪态的任务:
               (1)当前任务已无事可做。
               (2)当前任务的时间片还没用完任务就已经结束了。
               如下图所示,任务Task1、Task2、Task3具有相同的优先级,它们按照时间片运行,任务Task2被更高优先级的任务Task4抢占,当Task4执行完毕后恢复Task2的执行。
               
               时间轮转调度
               任务操作
               内核提供任务管理服务,也提供一个允许开发者操作任务的系统调用,典型的任务操作有任务创建和删除、任务调度控制、任务信息获取。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2022年上半年
   系统分析师
   上午试卷 综合知识
第18题
选择题
嵌入式实时系统存在许多调度算法。如果调度程序根据任务的紧急程度确定该任务的优先级,任务紧急程度高,被赋予的优先级就高,可被优先执行。这种调度算法称之为()。

33%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有