实时系统的进程调度策略
- 格式:doc
- 大小:43.50 KB
- 文档页数:4
1.操作系统的主要功能是处理机管理、存储器管理、设备管理、文件管理和用户接口管理。
2.进程由程序、相关的数据段、PCB(或进程控制块)组成。
3、对于分时系统和实时系统,从可靠性上看实时系统更强;若从交互性来看分时系统更强。
4、产生死锁的原因主要是竞争资源和进程间推进次序非法。
5、一台计算机有10台磁带机被m个进程竞争,每个进程最多需要三台磁带机,那么m为 4 时,系统没有死锁的危险。
6、实现SPOOL系统时必须在磁盘上辟出称为输入井和输出井的专门区域,以存放作业信息和作业执行结果。
7、虚拟存储器具有的主要特征为多次性、对换性和虚拟性。
8、按用途可以把文件分为系统文件、用户文件和库文件三类。
9、为文件分配外存空间时,常用的分配方法有连续分配、链接分配、索引分配三类10、操作系统的主要设计目标是方便性和有效性11、进程的特征为:动态性、独立性、并发性和异步性。
12、进程运行满一个时间片后让出中央处理器,它的状态应变为就绪状态。
13、进程间的高级通信机制分为共享存储器系统、消息传递系统和管道通信系统三类。
14、处理机调度包括高级调度、低级调度(或进程调度,或短程调度)、中级调度(或中程调度)15、处理死锁的方法有预防死锁、避免死锁、检测死锁和解除死锁四种。
16、在存储器管理中,页面是信息的物理单位,分段是信息的逻辑单位。
页面的大小由机器硬件确定,分段大小由用户程序确定。
17、按设备的共享属性可将设备分成独占设备、共享设备和虚拟设备18、文件的逻辑结构可分为有结构文件(或记录式文件)和无结构文件(或流式文件二类19、操作系统与用户的接口通常分为命令接口、程序接口和图形接口这三种主要类型。
、20、当一个进程完成了特定的任务后,系统收回这个进程所占的资源和取消该进程的PCB(或进程控制块)就撤消了该进程。
21、现有二道作业,一道单纯计算15分钟,另一道先计算4分钟,再打印12分钟。
在单道程序系统中,二道作业的执行总时间至少为31分钟;而在多道程序系统中,二道作业的执行总时间至少为19分钟。
操作系统rr算法1.引言1.1 概述操作系统中的调度算法是为了合理地分配和利用计算机资源,提高系统的性能和效率。
RR(Round Robin)算法是一种常见的调度算法之一,它采用了轮转的方式,将每个任务平均分配CPU时间片,按照先来先服务的原则进行调度。
RR算法的特点是简单且公平,适用于多任务环境下。
它通过设定一个固定的时间片,当任务执行的时间小于时间片时,任务会主动释放CPU 资源,然后将CPU分配给下一个任务,这样就实现了多任务之间的轮转执行。
由于每个任务都能够获得相同的CPU时间片,所以各个任务的响应时间相对均衡,避免了某个任务长时间占用CPU而导致其他任务的无响应情况。
RR算法在实际应用中也有一些限制。
首先,任务的运行时间会对系统性能产生影响,如果任务运行时间远大于时间片的长度,会造成较大的切换开销。
其次,RR算法无法适应某些特殊任务的需求,例如实时任务或对响应时间要求较高的任务。
总的来说,RR算法在实际应用中具有一定的优势和不足。
我们需要根据具体的应用场景和任务特点来选择合适的调度算法,以达到更好的系统性能和任务响应时间。
在接下来的部分中,我们将详细介绍RR算法的原理与应用,以及它所具有的优缺点。
1.2文章结构文章结构部分主要介绍了本文的章节组织和内容安排。
本文分为引言、正文和结论三个部分。
引言部分主要介绍了文章的开篇,包括概述、文章结构和目的。
在概述中,将简要介绍操作系统RR算法的背景和意义。
在文章结构中,可以明确指出本文将从RR算法的原理和应用两个方面进行介绍。
在目的中,可以说明本文的目的是为读者提供对RR算法的全面了解和应用指导。
正文部分主要包括RR算法的原理和应用。
在2.1节中,将详细阐述RR算法的原理,包括时间片轮转和进程调度的过程。
在2.2节中,将介绍RR算法的具体应用场景,如多任务处理、服务器负载均衡等,并针对每个应用场景进行详细的说明和分析。
结论部分主要总结和评价RR算法的优势和不足。
线程继承进程调度策略概述说明以及解释1. 引言1.1 概述本文旨在探讨线程继承进程调度策略的概念和作用。
线程和进程是操作系统中的重要概念,线程是进程中的执行单元,而进程则代表了程序在操作系统中的一个运行实例。
进程调度策略决定了操作系统如何分配有限的处理器资源给各个进程和线程,以实现高效的任务完成。
1.2 文章结构本文分为五个主要部分:引言、线程继承进程调度策略、解释线程继承进程调度策略的作用、实际示例及案例分析、结论。
在引言部分,我们将对文章进行整体概述,并明确目标和文章结构。
1.3 目的本文目的在于介绍和解释线程继承进程调度策略的重要性和优势。
首先,我们将阐明线程和进程的基本概念,并探讨进程调度策略在多任务环境下起到的关键作用。
接着,我们将详细介绍线程继承进程调度策略的基本原理,并说明其对系统性能和任务响应速度等方面产生积极影响。
随后,我们将以实际示例和案例分析的方式,揭示线程继承进程调度策略在网络服务器设计和操作系统多线程编程模型选择等方面的应用与效果。
最后,我们将总结线程继承进程调度策略的重要性和优点,并提出未来发展方向和潜在改进措施。
通过本文的阐述与论证,读者将能够全面了解线程继承进程调度策略的概念、作用与意义,以及其在实际应用中所带来的优势与挑战。
此外,读者还能够对该策略的未来发展趋势有所预测,并有可能找到改进现有系统中线程调度问题的切实方法。
以上是“1. 引言”部分的内容介绍,后续部分会依次展开阐述。
2. 线程继承进程调度策略:2.1 线程和进程的概念:在操作系统中,线程是程序执行的最小单位,代表着一个独立的执行路径。
每个进程可以包含多个线程,这些线程共享同一个地址空间和资源,并且能够并发执行不同的任务。
而进程则是指运行中的程序实例,具有独立的内存空间和资源。
2.2 进程调度策略的意义:在多任务环境下,操作系统需要合理地管理和调度各种进程和线程以确保系统资源的高效利用和任务的正常执行。
《操作系统》专业课练习题一、选择题1.操作系统是一种A.通用软件B.系统软件C.应用软件D.软件包[解析]系统软件包括操作系统、数据库管理系统、语言处理程序、服务性程序、标准库程序等。
2.批处理系统的主要缺点是A.系统吞吐量小B.CPU利用率不高C.资源利用率低D.无交互能力[解析]批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,也因此才有了分时系统的出现。
3.实时操作系统必须在()内处理来自外部的事件。
A.一个机器周期B.被控制对象规定时间C.周转时间D.时间片[解析]实时系统要求能实时处理外部事件,即在规定的时间内完成对外部事件的处理。
4.下列选项中,在用户态执行的是A.命令解释程序B.缺页处理程序C.进程调度程序D.时钟中断处理程序[解析]缺页处理和时钟中断都属于中断,在核心态执行;进程调度是操作系统内核进程,无需用户干预,在核心态执行;命令解释程序属于命令接口,是四个选项中唯一能面对用户的,它在用户态执行。
5.实时系统的进程调度,通常采用()算法。
A.先来先服务B.时间片轮转C.抢占式的优先级高者优先D.高响应比优先[解析]实时系统必须能够足够及时的处理某些紧急的外部事件,故普遍用高优先级,并且用“可抢占”来确保实时处理。
6.当CPU处于管态时,它可以执行的指令是A.计算机系统中的全部指令B.仅限于非特权指令C.仅限于访管指令D.仅限于特权指令7.一个作业8:00到达系统,估计运行时间为1h,若10:00开始执行该作业,其响应比是A.2B.1C.3D.0.5[解析]响应比=响应时间/要求服务时间=(等待时间+要求服务时间)/要求服务时间=(2+1)/1=3。
8.进程与程序的根本区别是A.静态和动态的特点B.是不是被调入到内存中C.是不是具有就绪、运行和等待三种状态D.是不是占有处理器[解析]动态性是进程最重要的特性,以此来区分文件形式的静态的程序。
操作系统常⽤调度算法在操作系统中存在多种调度算法,其中有的调度算法适⽤于作业调度,有的调度算法适⽤于进程调度,有的调度算法两者都适⽤。
下⾯介绍⼏种常⽤的调度算法。
先来先服务(FCFS)调度算法FCFS调度算法是⼀种最简单的调度算法,该调度算法既可以⽤于作业调度也可以⽤于进程调度。
在作业调度中,算法每次从后备作业队列中选择最先进⼊该队列的⼀个或⼏个作业,将它们调⼊内存,分配必要的资源,创建进程并放⼊就绪队列。
在进程调度中,FCFS调度算法每次从就绪队列中选择最先进⼊该队列的进程,将处理机分配给它,使之投⼊运⾏,直到完成或因某种原因⽽阻塞时才释放处理机。
下⾯通过⼀个实例来说明FCFS调度算法的性能。
假设系统中有4个作业,它们的提交时间分别是8、8.4、8.8、9,运⾏时间依次是2、1、0.5、0.2,系统⾤⽤FCFS调度算法,这组作业的平均等待时间、平均周转时间和平均带权周转时间见表2-3。
表2-3 FCFS调度算法的性能作业号提交时间运⾏时间开始时间等待时间完成时间周转时间带权周转时间18280102128.4110 1.611 2.6 2.638.80.511 2.211.5 2.7 5.4490.211.5 2.511.7 2.713.5平均等待时间 t = (0+1.6+2.2+2.5)/4=1.575平均周转时间 T = (2+2.6+2.7+2.7)/4=2.5平均带权周转时间 W = (1+2.6+5.牡13.5)/4=5.625FCFS调度算法属于不可剥夺算法。
从表⾯上看,它对所有作业都是公平的,但若⼀个长作业先到达系统,就会使后⾯许多短作业等待很长时间,因此它不能作为分时系统和实时系统的主要调度策略。
但它常被结合在其他调度策略中使⽤。
例如,在使⽤优先级作为调度策略的系统中,往往对多个具有相同优先级的进程按FCFS原则处理。
FCFS调度算法的特点是算法简单,但效率低;对长作业⽐较有利,但对短作业不利(相对SJF和⾼响应⽐);有利于CPU繁忙型作业,⽽不利于I/O繁忙型作业。
引起进程调度的主要因素有:(1)一个进程运行完毕。
(2)一个正在运行的进程被阻塞。
(3)在抢占式调度中,一个高优先级的进程被创建。
(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。
(5)在轮转式调度中,正垢进程运行完进程调度的概念无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。
另外,系统进程也同样需要使用处理机。
这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
进程有四个基本属性1.多态性从诞生、运行,直至消灭。
2.多个不同的进程可以包括相同的程序3.三种基本状态它们之间可进行转换4.并发性并发执行的进程轮流占用处理器进程的三种基本状态:1.等待态:等待某个事件的完成;2.就绪态:等待系统分配处理器以便运行;3.运行态:占有处理器正在运行。
运行态→等待态往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
等待态→就绪态则是等待的条件已满足,只需分配到处理器后就能运行。
运行态→就绪态不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。
例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态→运行态系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态进程调度的分级高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
进程调度的方式进程调度有以下两种基本方式:非剥夺方式分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
Linux命令行使用技巧如何查看和管理系统进程优先级在Linux操作系统中,进程优先级是指操作系统对运行中的进程进行调度和分配资源的重要参数之一。
通过合理地设置进程优先级,能够有效地提高系统的性能和稳定性。
本文将介绍一些Linux命令行使用技巧,帮助你查看和管理系统进程优先级。
一、查看系统进程1. top命令:top命令是Linux下常用的查看系统进程的命令。
通过top命令,你可以实时地查看各个进程的运行情况、进程ID、CPU使用率等信息。
2. ps命令:ps命令也是查看系统进程的常用命令。
通过ps命令,你可以查看当前用户的进程情况、各个进程的状态、进程ID等信息。
二、了解进程优先级在Linux系统中,进程的优先级用一个范围为-20到19的数值表示,其中-20表示最高优先级,19表示最低优先级。
默认情况下,普通用户创建的进程的优先级为0,系统进程的优先级通常较高。
三、修改进程优先级1. renice命令:renice命令用于修改已经运行的进程的优先级。
通过renice命令,你可以提高或降低进程的优先级。
假设你想将进程ID为12345的进程的优先级提高到10,你可以使用以下命令:```renice 10 12345```2. nice命令:nice命令用于在启动进程时指定进程的优先级。
通过nice命令,你可以创建一个具有较高或较低优先级的进程。
假设你想在运行一个新的进程时将其优先级设置为5,你可以使用以下命令:```nice -n 5 command```其中,command表示你要运行的命令或程序。
四、管理系统进程优先级1. taskset命令:taskset命令用于将进程绑定到指定的CPU或CPU 集。
通过taskset命令,你可以管理进程的调度情况。
假设你想将进程ID为12345的进程绑定到CPU 0上,你可以使用以下命令:```taskset -p 0x1 12345```2. chrt命令:chrt命令用于修改进程的调度策略和优先级。
cpu分配策略CPU分配策略在计算机系统中,CPU(Central Processing Unit,中央处理器)是核心组件之一,负责执行计算机程序的指令。
为了高效利用CPU 资源,提高计算机系统的性能,需要制定合理的CPU分配策略。
本文将介绍几种常见的CPU分配策略,并分析它们的优缺点。
一、抢占式调度策略抢占式调度策略是指在CPU分配过程中,操作系统可以根据一定的优先级规则,及时地将CPU从当前运行的进程中夺取,分配给优先级更高的进程。
这种策略可以保证高优先级进程的快速响应,提高系统的整体性能。
然而,频繁的抢占操作会增加系统开销,降低系统的实时性。
二、时间片轮转策略时间片轮转策略是一种公平的CPU分配策略。
操作系统将CPU的使用时间划分为若干个时间片,每个进程在一个时间片内执行。
当时间片用完后,操作系统将CPU分配给下一个等待执行的进程。
这种策略可以保证每个进程都能够获得一定的CPU时间,避免某个进程长时间占用CPU而导致其他进程无法执行。
然而,如果时间片设置过小,会增加进程切换的开销;如果设置过大,会降低系统的响应速度。
三、多级反馈队列策略多级反馈队列策略是一种综合考虑进程优先级和时间片的CPU分配策略。
操作系统维护多个优先级队列,每个队列拥有不同的时间片大小。
当一个进程被分配到某个队列后,如果它的执行时间超过了该队列的时间片,它将被移到下一个优先级更低的队列中。
这种策略可以根据进程的执行情况进行动态调整,既能够保证高优先级进程的及时响应,又能够充分利用CPU资源。
然而,多级反馈队列策略的实现较为复杂,需要更多的系统开销。
四、优先级调度策略优先级调度策略是一种根据进程优先级分配CPU的策略。
每个进程都有一个优先级值,优先级高的进程将优先获得CPU的分配。
这种策略可以根据进程的重要性和紧急程度进行灵活的调整,但如果优先级设置不当,可能导致低优先级进程长时间无法获得CPU资源。
五、最短作业优先策略最短作业优先策略是一种根据进程执行时间长短分配CPU的策略。
常用进程调度算法的分析与评价袁飞1(黄石理工学院数理学院湖北黄石435003)摘要:调度也称dispatcher 这是内核的主要职责之一就是决定该轮到哪个任务运行了多数实时内核是基于优先级调算法的每个任务根据其重要程度的不同被赋予一定的优先级基于优先级的调度法指CPU 总是让处在就绪态的优先级最高的任务先运行然而究竟何时让高优先级任务掌握CPU 的使用权有两种不同的情况这要看用的是什么类型的内核是非占先式还是占先式的内核本文详细地讨论了四种常用进程调度算法的基本思想,并对其进行了分析和评价。
关键词进程调度算法,分析,评价1 引言进程调度是系统内部的低级调度,进程调度的策略通常有先来先服务算法、时间片轮转算法、最高优先权优先调度算法、最短进程优先调度算法等。
衡量进程调度性能通常需要从定性和定量两个方面来综合考虑。
2 进程调度算法评价依据进程调度性能的衡量方法可以分为定性和定量两种,在定性衡量方面,首先是调度的安全性。
比如,一次进程调度是否可能引起数据结构的破坏等。
这要求对调度时机的选择和保存CPU现场十分小心。
另外,系统开销也是衡量进程调度的一个重要指标,由于调度程序的执行涉及到多个进程的上下文切换,如果调度策略过于繁琐和复杂,将会耗去较大的系统开销。
这在用户进程调度系统调用较多的情况下,将会造成响应时间大幅度增加。
进程调度的定量评价包括CPU的利用率评价、进程在就绪队列中的等待时间与执行时间之比等。
实际上,由于进程进入就绪队列的随机模型很难确定,而且进程上下文切换等也将影响进程的执行效率,从而对进程调度进行解析是很困难的,一般情况下,大多利用模拟或测试系统响应时间的方法来评价进程调度的性能。
3 四种常用进程调度算法的分析与评价3.1 先来先服务算法3.1.1 算法思想该算法思想是按照进入就绪队列的先后次序来分配处理机。
FCFS采用非剥夺调度方式,即一旦某个进程占有处理机,就一直运行下去,直到该进程完成其工作或因等待某一事件而不能继续执行时才释放处理机。
实时系统的进程调度策略
摘要:本文说明实时系统的定义及分类。对各种实时系统进程调度策略进行了讨论,他们
是基于优先级,基于比例共享,基于时间的进程调度算法,其中第一种是大多数实时系统采
用的。再就四种实时操作系统采用的调度策略进行了分析比较,他们采用的策略是各种因素
的折中。
1实时系统概述
1.1实时系统定义
POSIX标准对实时系统作了这样的定义:指系统能够在限定的响应时间内提供所需水平的
服务。而一个更为大家接受的定义是:一个实时系统是指计算的正确性不仅取决于程序的逻
辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统
出错。
1.2实时系统分类
实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型。硬实时系统就
是系统必须及时地对事件做出反应,绝对不能发生错过事件处理或超出截止期的情况。例如
控制火箭发射的系统;而在软实时系统中,当系统负载较高时允许发生少数事件处理错过截
止期的情况,像实时多媒体系统就是一种软实时系统。
目前世界上比较有影响力的实时操作系统主要有Lynx实时系统公司的LynxOS、QNX软件
系统有限公司的QNX以及两种具有代表性的实时Linux--新墨西哥工学院的RT-Linux和
堪萨斯大学的KURT-Linux。
2实时系统调度策略
一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于 CPU 和其他资源进行
有效的调度和管理。调度算法实际上就是系统所采取的调度策略。下面将先从分类的角度对
各种实时任务调度算法进行讨论,再就以上提及的四种实时操作系统采用的调度策略分析比
较。
各种实时操作系统的实时调度算法可以分为如下三种类别:基于优先级的调度算法
(Priority-driven scheduling-PD)、基于CPU使用比例的共享式的调度算法(Share-driven
scheduling-SD)、以及基于时间的进程调度算法(Time-driven scheduling-TD),其中第一种
算法是大多数实时系统所采用的。下面对这三种调度算法逐一进行介绍。
2.1. 基于优先级的调度算法
基于优先级的调度算法给每个进程分配一个优先级,在每次进程调度时,调度器总是调度那
个具有最高优先级的任务来执行。根据不同的优先级分配方法,基于优先级的调度算法可以
分为如下两种类型:
静态优先级调度算法:
这种调度算法给那些系统中得到运行的所有进程都静态地分配一个优先级。它是在系统开始
运行前进行调度的,严格的静态调度在系统运行时无法对任务进行重新调度.静态优先级的分
配可以根据应用的属性来进行,比如任务的周期,用户优先级,或者其它的预先确定的策略。
静态调度算法实现简单,调度的额外开销小,在系统超载时可预测性好. 但也具有很大的局限
性,例如资源利用率低、受系统支持的优先级个数限制以及灵活性和自适应性差等. 下面介绍
两种常见的静态调度算法.
速率单调调度( Rate Monotonic Scheduling)
RMS算法将最高优先级赋予最高执行频率的任务,以单调的顺序对剩余的任务分配优
先级. 由于采用抢占式的调度方式,高优先级的任务就绪后立即抢占正在运行的任务.
RMS 算法的优点是开销小,灵活性好,可调度性测试简单. 在任务的截至时间等于其
周期的条件下,速率单调算法已被证明是静态最优的调度算法 .
截止时间单调调度( Deadline Monotonic Scheduling)
DMS算法是在速率单调调度的基础上发展起来的.不同的是任务的优先级按截止时间
来分配. 截止时间短的任务优先级高,截止时间长的任务优先级低.截止时间调度具有
与速率单调算法相同的优点. 但DMS 算法放松了对任务的周期必须等于其截止时间
的限制. 在任务的截止时间小于或等于其周期的情况下,DMS 已被证明是静态最优
的调度算法.
动态优先级调度算法:
这种调度算法根据任务的资源需求来动态地分配任务的优先级,其目的就是在资源分配和调
度时有更大的灵活性。非实时系统中就有很多这种调度算法,比如短作业优先的调度算法。
下面介绍两种常见的动态调度算法
最早截止时间优先算法( Earliest Deadline First)
抢占式EDF 调度算法是一个动态优先级驱动的调度算法,其中分配给每个任务的优先
级根据它们当前对最终期限的要求而定. 当前请求的最终期限最近的任务具有最高的
优先级,而请求最终期限最远的任务被分配最低优先级. 这个算法能够保证在出现某
个任务的最终期限不能满足之前,不存在处理器的空闲时间 .
抢占式EDF 调度算法最大的优势在于,对于任何给定的任务集,只要处理器的利用率
不超过100 % ,就能够保证它的可调度性. EDF 算法在系统的负载相对较低时非常有
效. 但在系统负载较重时,系统性能急剧下降,引起大量任务错过截止期,甚至可能导致
CPU 时间大量花费在调度上, 在这时系统的性能还不如FIFO方法.
最小松弛时间算法(Least Slack Time First)
LSF 算法计算任务的松弛时间,其中松弛时间为任务截止时间与剩余执行时间之差.
该算法在任意时刻把最高优先级分配给具有最小松弛时间的任务,以此来保证紧急任
务的优先执行. 然而,由于等待任务的松弛时间是严格递减的,其等待执行的缓急程度
也随时间越来越紧迫,因此在系统执行过程中,等待任务随时可能会抢占当前执行的任
务.LSF 算法造成抖动现象较为严重. 抖动现象增大了系统开销,并限制了LSF 算法的
应用.
2.2. 基于比例共享调度算法
前面所述算法是硬实时操作系统的调度,对于软实时应用,使用的是比例共享式的资源
调度算法(SD 算法)。
比例共享调度算法指基于 CPU 使用比例的共享式的调度算法,其基本思想就是按照一
定的权重(比例)对一组需要调度的任务进行调度,让它们的执行时间与它们的权重完全成
正比。
比例共享调度算法可以分为以下几个类别:轮转法、公平共享、公平队列、彩票调度法
(Lottery)等。
比例共享调度算法的一个问题就是它没有定义任何优先级的概念;所有的任务都根据它
们申请的比例共享 CPU 资源,当系统处于过载状态时,所有的任务的执行都会按比例地变
慢。所以为了保证系统中实时进程能够获得一定的 CPU 处理时间,一般采用一种动态调节
进程权重的方法。
2.3. 基于时间的进程调度算法
对于那些具有稳定、已知输入的简单系统,可以使用时间驱动(Time-driven:TD)的调
度算法,它能够为数据处理提供很好的预测性。这种调度算法本质上是一种设计时就确定下
来的离线的静态调度方法。在系统的设计阶段,在明确系统中所有的处理情况下,对于各个
任务的开始、切换、以及结束时间等就事先做出明确的安排和设计。这种调度算法适合于那
些很小的嵌入式系统、自控系统、传感器等应用环境。
这种调度算法的优点是任务的执行有很好的可预测性,但最大的缺点是缺乏灵活性,并
且会出现有任务需要被执行而 CPU 却保持空闲的情况。
应用举例
以上算法都有各自适应的场合,也存在一定的局限性,在商业产品中采用的实际策略常常是
各种因素的折中。以下列举上文提及的四种操作系统的调度策略
QNX 提供POSIX.1b标准进程调度:
32个进程优先级;
抢占式的、基于优先级的正文切换;
可选调度策略:FIFO、轮转策略、适应性策略。
LynxOS 其调度策略为:
LynxOS支持线程概念,提供256个全局用户线程优先级;
硬实时优先级调度:在每个优先级上实现了轮转调度、定量调度和FIFO调度策略;
快速正文切换和阻塞时间短;
抢占式的RTOS核心。
RT-Linux
在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内
运行,优先级最低,随时会被高优先级任务抢占。
用户可自行编写调度程序,它们可实现为可加载的核心模块;
已实现的调度程序有:基于优先级的抢占式调度和EDF调度;
基于优先级的调度使用"单调率算法",它直接支持周期任务。
KURT-Linux
可运行在两种状态之下:通常状态和实时状态。在通常状态下,所有进程都可以运行,
但某些核心服务将带来中断屏蔽的不可预期性。实时模式只允许实时进程运行。
支持FIFO调度策略、轮转调度策略和UNIX分时调度策略;
增加了SCHED-KURT调度策略,这是一种静态调度策略,使用一个特殊的调度文件
记录预先定义好的待调度进程的参数。
结语
本文先说明实时系统的定义,列举目前有影响力的实施操作系统。再从分类的角度对各种
实时系统进程调度策略进行了讨论,他们是基于优先级,基于比例共享,基于时间的进程调
度算法,第一种是大多数实时系统采用的。再就四种实时操作系统采用的调度策略进行了分
析比较,他们采用的策略是各种因素的折中。