文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式实时操作系统中实时调度算法综述

嵌入式实时操作系统中实时调度算法综述

嵌入式实时操作系统中实时调度算法综述
嵌入式实时操作系统中实时调度算法综述

嵌入式实时操作系统中实时调度算法综述

摘要:实时调度是指在有限的系统资源下,为一系列任务决定何时运行,并分配任务运

行除CPU之外的资源,以保证其时间约束、时序约束和资源约束得到满足。一个实时系统可以由单处理器系统来实现,也可以用多处理器系统来实现。实时调度算法是保障实时系统时限性和高可靠性的最重要手段之一。

关键词:嵌入式;实时操作系统;实时调度算法;RTOS;RMS

引言

嵌入式系统在当今的生产和生活中得到了广泛的应用,鉴于嵌入式实时系统的特点,要求任务调度等实时内核功能精简和高效。综合了EDF 和RM调度策略的CSD 调度策略,更加适合嵌入式系统的特点,满足其内核的要求。任务调度策略是实时系统内核的关键部分,如何进行任务调度,使得各个任务能在其期限之内得以完成是实时操作系统的一个重要的研究领域。它的精简和高效,对提高低处理能力,小内存系统整体性能具有重大的意义。

RTOS概述

RTOS,即:实时系统(Real-time operating system),实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。它的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。因此实时系统应该在事先先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。对一般的程序来说,大多数是考虑指令执行的逻辑顺序,指令何时执行并不重要。而对实时应用系统的程序就不一样,当外部某激励出现时,系统必须以一定的方式和在限定的时间内响应它,如果已超时,那怕执行结果是正确的,系统也认为是失效的。实时操作系统通常被分为软实时操作系统和硬实时操作系统。前者意味着偶尔错过时限是可以容忍的;后者意味着执行过程不但必须正确而且必须准时。在实时操作系统中,系统将程序分成许多任务(或进程),而每个任务的行为都预先可知,或者是有明确的功能,系统根据一定的调度原则,决定谁可取得执行权,这就是RTOS的核心所在。

实时调度算法

实时调度算法可以分为4类:单处理器静态调度算法、多处理器静态调度算法、单处理器动态调度算法、多处理器动态调度算法。下面分别分析嵌入式操作系统中采用的各种调度方法,以及这些调度方法是如何满足实时性应用的实时要求的。

1 速率单调算法

速率单调算法是一个经典的算法,它是针对那些响应和处理周期性事件的实时任务的,它事先为每个这样的实时任务分配一个与事件频率成正比的优先级。

实现时,就绪队列中的所有任务按照优先级Priority排队,优先级最高的任务排在队首,当处于运行态的任务,由于某种原因挂起时,只要把就绪队列的首元素从就绪队列中取下,使运行任务指针pRunTask指向该元素即可,如果是处于其他状态的任务变为就绪状态,而挂

于就绪队列时,则必须对运行任务和就绪队列首元素的任务进行比较,优先级高的任务占有

CPU。

2 截止期最早优先算法

截止期最早的任务优先级最高,对于周期任务,其截止期即为下一周期开始的时间,

有时,把这种算法称为期限驱动算法,就绪队列中的任务,按截止期排序,截止期早的任务

排在队首,这个算法的处理,与速率单调算法类似,不同的是,现在是对截止期进行判断,

按截止期最早优先策略处理。

3 可达截止期最早优先算法

这个算法是对截止期最早优先策略的改进,就绪队列的任务,仍然按照截止期顺序排队,

但是在调度时超过截止期的不予调度,如果记为t 为系统当前时间,E为任务估算执行时间,

p 为任务实际执行时间,d 为截止期。则

表示该任务的截止期是当前可达到的,于是,只要在调度时,按照上式计算被调度就绪

任务的d1,若大于0,就进行调度,否则,就夭折它。

这种算法里,系统时钟管理部分中的时钟滴答中断处理程序,必须对运行任务的运行

时间进行累计。空闲任务IDLE 的截止期DeadTime 应置为无限大,而估算时间PredictedTiem

可为0,从而在进行任务调度时,可以保证就绪队列中至少有一个就绪任务,满足调度要求。

4 最小裕度算法

在上述算法中,优先性由截止期时间的早晚而定,可能使一些不可达截止期的任务,因

来不及处理而夭折,另外一种算法是:计算任务的富裕时间,称为裕度,裕度小的,优先级

高,以弥补上述情况的不足。

在这种算法里,时钟的滴答中断,不但要累计运行任务的执行时间,还要对就绪队列上

的任务的裕度进行累减,实际上(3.1)式中的d1,便是这里所谓的裕度,由于正在运行的任

务,其裕度不变,而就绪队列上的任务,其裕度随着时间的推移而减少,从而使得它们的优

先权,动态地发生变化。

5 其他的实时调度算法

1、价值最高优先算法

在这种算法里,每一个任务有一个价值函数,价值最大,优先级最高。

2、价值比最大优先算法 在这种算法里,定义一个价值比函数:

其中,v 为类似上面所定义的价值函数,t 为当前时间,E 为估算执行时间,p 为已执行时

间。这时,VD 值越大,优先级越高。

下面具体介绍单调速率算法:

单调速率调度算法RMS (Rate Monotonic Scheduling )为每个周期进程指定一个固定不

变的优先级,周期最短的进程优先级最高。周期越短,进程的到达频率越高,优先级也越高,

这正是此策略被称为速率单调算法的原因。RMS 算法也可用于多CPU 环境,用于分配任务优先

级。这种方法基于哪个任务执行的次数最频繁,执行最频繁的任务优先级最高。

RMS 的由来是从硬实时环境的初始定义开始的:

1,所有的任务都是周期性的,各个任务请求的deadline 呈周期性,同时具有恒定的时间

间隔;

2,所有任务都必须在下一次任务请求(即deadline )到来之前完成;

3,所有的任务都是独立的,每一次任务请求不依赖于其他任务的执行或者初始化;

)(1≥-+-=p E t d d p E p E t v VD --+=)(

4,每个任务都存在一个恒定且非时变的执行时间,即CPU不间断地执行该任务的时间;

5,任何非周期的任务属于特殊任务,它们属于初始化或者是恢复错误的事件,仅当它们自身执行的时候才能取代周期性任务,同时非周期性任务不存在有deadline.

RMS算法的实现(C++模板元程序实现示例)

1,声明任务my_task的结构体变量:

struct my_task {

enum { cost = 100,

period = 600,

phasing = 50,

droppable = 0,

importance = 1000 };

static void do_task(const context& c) {

cout << "my_task::do_task()" << endl;

}

};

period表示任务的响应周期;

phasing 表示任务的逻辑定向;

droppable 为布尔变量,表示是否该任务可以被挂起以保证其之后可以被调度;

importance为整形变量,具体指定了CPU执行该任务的情愿度,具有低importance在执行较高优先级的任务之前被挂起;

do_task 为功能性函子,具体指定即将被执行的具体任务;

2,使用RMA_Feasible函数(已被Schedule函数调用)循环查询判断任务是否可以被调度

template

struct check_i;

template

struct check_i, m, i> {

enum { task_result =

task_feasible,i>::Result,

Result = check_i,m,i+1>::Result

&& task_result };

};

template

struct check_i, m, m> {

enum { Result = task_feasible,

m>::Result };

};

template

struct RMA_Feasible {

enum { m = Length::value,

Result = check_i::Result };

};

3,判断可调度的充要条件不等式3)是否成立(核心算法实现)

template

struct sum_j { //初始化结构体变量sum_j,表示

typedef typename TypeAt::Result J;

enum { Cj = J::cost, //定义Cj为任务的开销,即CPU执行时间

Tj = J::period, //定义Tj为任务的执行周期

my_result = Cj * ((t%Tj > 0 ? 1 : 0) + (t / Tj)),

//定义my_result为

Result = sum_j::Result + my_result };

}; // 迭代求出的值,存入Result变量中

template

struct get_t { // 计算t值

enum { Ti = TypeAt::Result::period,

Tk = TypeAt::Result::period,

//分别读取任务i-1,k的周期,并存入Ti,Tk变量

num_l = Ti/Tk,

Result = (t_ix >= num_l) ? get_t::Result : (t_ix + 1) * Tk };

};//判断l是否取到了可能的最大值,若是则求出t的值,否则t_ix减去num_l,再判断下一个k是否能使l取到最大值

template

struct task_feasible {

typedef get_t t_type;

enum { t = t_type::Result,

Result = (t > 0) && ( sum_j::Result <= t|| task_feasible::Result ) };

}; //判断该任务是否满足不等式[2],即是否sum_j<=t,返回Result

4,算法查错

RMS算法在查错的时候,使用的C++的库的宏定义STATISTIC_CHECK,我们就能很容易地使特定的任务在声明的时候都是可行的。

typedef Schedule

my_schedule;

STATIC_CHECK(my_schedule::feasible,Schedule_Infeasible);

Schedule_Infeasible宏定义定义的为字符串,通过编译器输出显示错误声明和提示:‘Loki::CompileTimeError<0> ERROR_Schedule_Infeasible’has incomplete type and cannot be defined

将STATIC_CHECK宏定义放在Schedule::schedule()函数中,可以确保在CPU运行的时间调度任务都是可行的。

各任务参数初始化含,

总而言之,算法实现的核心在于RMA分析(Rate Monotonic Analysis),通过对每个任务实现不等式3)的判定,对已知就绪的优先级最高的任务查询来它确定是否可以调度,从而实现算法。

此算法优缺点分析:

优点:

1,RMS算法在静态调度中属于最优算法,任意的固定优先级算法能够实现的调度,在RMS 算法中也能实现。尽管RMS算法的CPU利用率最小上确界为0.693,实际上的平均CPU利用率可达0.88。

2,RMS算法可在运行前“离线”确定周期进程的执行顺序,运行时不必保留很多信息,同时可调度件测试简单,因此易于实现,运行时的调度开销相对较小,这是静态优先级调度算法对动态优先级调度算法的普遍优势。

3,另外,优先级的预先确定也使系统过载的现象比较好控制。即使系统出现了暂时的过载,也能够确保最重要的任务的调度需求。

4,在满足周期性任务的同时,仍有余力(约30%左右的CPU使用率)致力于对非周期性任务(例如系统和参数的初始化,错误处理)快速响应。同时支持扩展和固件升级,这对消费类产品而言意义重大。

缺点:

1,它的潜在CPU利用率小于动态优先级策略,在动态优先级的最优算法EDF(Earliest Deadline First)中最坏情况下的可调度CPU使用率为1.000。

2,执行频率最高的任务并非最重要的任务。且较长周期的任务相对于较短周期的任务,更加容易错过deadline。

3,由于RMS算法的静态调度属性,它运行时灵活性较差,自适应性弱。现今常用的实时性的操作任务,常常具有较灵活的使用率需求,但同时具有严格RMS算法完全建立在硬实时的条件下,主张所有被调度的周期性任务具有固定的优先级,这就显得强调在deadline之前的必须完成任务的思想超出了必要限度。具体而言,在特殊场合,一些任务的deadline是可以被错过的,只要在deadline前完成任务的要求能在一定百分率下得到满足。这种高灵活性使得RMS的最小上界理论毫无提出之必要了。具体而言,在实时多媒体应用的调度之中,特点经常是:

a,单个应用的执行次数常常是不定的;

b,错过deadline尽管是不愿意出现的情况,但它确实是非致命的错误,这样在实时多媒体系统中使用过分强调在deadline之前任务的RMS算法就多少显得有些不合时宜了,会导致较低的CPU使用率,从而浪费原本稀缺的资源;

目前,已证明动态调度算法不存在最优算法。如果实时任务只要求在截止期之前完成的条件下,EDF算法已被证明是单处理器静态调度算法中最优的;如果调度算法中的任务的属性要求任务必须在一个时间段内开始和结束,这类算法无论在单处理器或多处理器环境下仍然是一个难点,也是一个研究的热点。另外,前面提到的算法都是将一个个独立的任务分派到不同的处理器上运行,如果一个任务分割成若干个子任务在不同的处理器上运行,这一类算法的研究也是一个研究的难点和热点,因为这里还涉及到多个子任务间的同步关系。

单调速率优先级算法是基于硬实时条件需求下提出的,它的初衷是保证所有的周期性任务均能在截止期限之前完成。经证明,其在所有的静态优先级调度算法之中为最优算法。但是由于嵌入式系统硬实时和软实时兼备的特性,过分强调截止期限的重要性会削弱算法的灵活性,浪费系统资源。未来需要探讨将随机过程与概率统计思想与单调速率调度思想形成一个连续统一体,以满足当今嵌入式系统任务调度之需求。

参考文献:

【1】孙旭祥浅析实时操作系统的任务调度通信对抗 2005年第二期

【2】杨立身,王中海嵌入式实时操作系统任务调度算法改进

【3】徐端全嵌入式系统原理与设计北京航空航天大学出版社

【4】张莉莉,张峰实时调度算法综述软件导刊第7卷第10期2008年10 月

【5】王知学:嵌入式操作系统调度算法研究.[J]中国科学院自动化研究所2003

电网经济调度方法研究与应用

电网经济调度方法研究与应用 发表时间:2019-09-11T09:45:53.767Z 来源:《中国电业》2019年第10期作者:沈宗宝 [导读] 电能因具有瞬时性而难以保存,但作为现代工业社会的支柱性能源,必须对其进行有效调度,才能较好地加以利用。 四川西昌电力股份有限公司四川省 615000 摘要:电能因具有瞬时性而难以保存,但作为现代工业社会的支柱性能源,必须对其进行有效调度,才能较好地加以利用。 关键词:电网经济;调度方法;研究;应用 1电网经济调度概述 1.1基本概念 电网经济调度是根据电网运行的基本原理,在保证安全、可靠运行和满足用电需要、电能质量的前提下,通过调整电网运行方式,制定各站(厂)或线路之间的最优负荷分配方案等多种技术方法和管理手段,对电网资源进行优化配置,以降低运行成本。近年来,随着用电量的逐年增加,电力系统也在快速发展。在保障电网安全、稳定运行的条件下,增强电网的经济运行能力,即是调度运行人员的重要工作,也是电力企业经营行为的关键内容。 1.2经济调度一般采取的措施 1.2.1根据电网传输需要,采取实时经济调度在保证电力供应量与实际相符的情况下,调度部门应尽可能降低能量损失,提高电网的经济性,如在用电低谷时期减少电网的电力供应量,在用电高峰时期增加电网的电力供应量。 1.2.2根据电网运行状况,采取运转备用调度在满足电力传输高峰要求的情况下,主要选用运转备用调度的形式增强电网的经济性。在保证电力线路正常运行、维护、维修的同时,适时关闭某些电力线路,可以减少电网自身产生的损失。 1.2.3根据对环境的污染状况,采取环境保护调度在生产及传输电能的过程中,为了减少其对环境的污染,需要参考电网的实际污染状况进行环境保护调度,以增强电网的经济性,同时降低电能损失。 1.2.4根据电网负荷状况,采取稳定约束调度在确保电网安全运转的条件下,需要根据电网的负荷情况,对电网进行负荷预测和安全控制。可采取安全约束调度的方式,减小电网负荷,降低电能损失,提高电网的经济性。 1.3存在的问题 随着电力工业的发展,手工管理方式已不再适应电力生产的需要,信息的收集、存储、传输、查询、加工及决策等工作量越来越大。这就要求我们必须提高管理水平,通过建立计算机信息系统,改变原有的管理方式、体制和手段,以增加经济和社会效益。因此,安康供电分公司充分利用现有的PAS高级应用软件,研究开发了经济调度软件系统。 2PAS高级应用简介 PAS高级应用软件利用电网的各类实时数据进行在线分析,如开关状态、有功功率、无功功率等信息,辅助调度员通过制定最优的电网运行方式。安康供电分公司PAS高级应用软件是东方电子有限公司开发的系统,主要由调度员潮流、状态估计、网络拓扑和负荷预测四部分组成。 2.1网络拓扑 网络拓扑是PAS高级应用软件中的最基本功能,主要用于网络分析。它根据电网的遥信信息和多种元件的关系,确定地区电网的电气连接状态,产生调度员处理数据所需要的网络模型。为了保证计算结果的正确性,必须使所建的模型和实际的运行方式相一致。 2.2状态估计 状态估计是调度员潮流功能的基础。利用SCADA实时遥测遥信数据进行计算、分析和校验,可辩识出不良数据。不但能估计开关的功率、母线电压等,而且能计算出某些无法量测的电气量,对准确的运行方式。最终得到一个完整且相对准确的运行方式。自动化运维人员根据状态估计提供的可疑数据功能,能及时发现并处理系统缺陷。调度运行值班人员则通过状态估计掌握电网的实时运行状态,如电网运行方式、潮流分布等。 2.3调度员潮流 这是PAS高级应用最基本的应用之一。调度员潮流既可以对电网当前的运行状态进行分析,也可以对历史和未来的运行方式进行分析,还可以用来校核调度计划的安全性和合理性。调度员潮流能得到电网的实时运行状态。首先利用SCADA实时数据和提前设定的计算条件进行数据初始化;网络拓扑根据系统的遥信信息确定电网的电气连接状态;状态估计经过一系列的专业计算剔除其中的坏数据,最后建立研究态。 2.4负荷预测 人工预测主要根据前几日的负荷或历史同期数据进行分析预测。工作既繁琐又复杂,结果还不理想。负荷预测能够根据历史数据,预报未来的电网负荷,通过分析预测值与实际值之间的误差,自动修正预测模型的参数。该软件的应用节省了大量人工预测时间,能根据历史数据预测未来一至多天的负荷,还能从多种角度自动检测不正常的历史数据,并对坏数据进行报警。 3经济调度软件功能分析 针对安康网内小水电资源丰富的特点安康供电分公司研究开发的经济调度软件,对系统内小水电、变电站的运行状况进行实时监测和分析,为辅助调度员经济、科学、合理调度,最大限度实现电网安全、优质、经济运行。 3.1电置统计分析模块 从SCADA系统获取联络线有功功率、无功功率、当日电量、小水电有功功率等实时数据;从关系数据库中读取各个联络线的月/年累积电量等。然后,人工输入联络线的月/年关口交易计划电量、水电站月/年发电计划电量等。此模块利用SCADA提供的用户控制语言编程实现。 3.2有功功率实时平衡模块 监视联络线断面的实时有功功率。当超过人工设置的限额时,采用特定分配算法,将超限差值自动分配到相关的各个水电站中,以报警提示的方式告知调度人员。(1)采用网络拓扑、潮流计算和灵敏度分析算法,按照水电站当前发电功率等比例分配,将差值功率分配到灵敏度较高的各个水电站中。此算法比较精确,但条件苛刻,要求网络拓扑、潮流计算等模块正常运行,需要加强PAS软件的日常维护工作。

RTOS实时操作系统(Real Time Operating System)

John Lee 20:27:07 上次讲到了 RTOS 的抢占机制对事件响应能力提高的帮助,避免了事件的丢失。 John Lee 20:27:07 上次讲到了 RTOS 的抢占机制对事件响应能力提高的帮助,避免了事件的丢失。小道(569198569) 20:27:39 老师辛苦 John Lee 20:27:45 但光依靠 RTOS 的抢占机制,并不能做到完全不丢失事件,只是从一定程度上降低了丢失事件的机率。 丶砖家(1361439207) 20:28:16 LEE 丶砖家(1361439207) 20:28:14 好复杂呀 John Lee 20:28:54 上次的这个图: John Lee 20:30:20 是没有丢失事件了,但如果我们把 E2 的第 3 个事件提前一些: John Lee 20:32:30 对于这样情况,RTOS 提供了一些带有通信功能的同步对象,可以让应用程序构造软件缓冲机制,来保持突发事件。 John Lee 20:33:19 关于具体的实现方法,要等到我们学习完了 RTOS 同步机制和各种同步对象后,才能讨论。

John Lee 20:34:24 除此之外,还有其它一些系统设计时,需要仔细考虑的问题: 中断处理时间到底多长合适? 等待设备事件产生,是否一定要用中断? 如何划分任务? 如何确定合适的调度算法? 是否需要任务优先级? 静态优先级能不能满足要求? 系统节拍的频率多少合适? 如何选则合适的同步对象? DsPower小灰灰(108430786) 20:35:56 对这就是我的问题 wei(34103820) 20:36:02 John Lee 20:36:07 这些问题,都留到我们学习完 RTOS 后,再来讨论。 小道(569198569) 20:36:23 wei(34103820) 20:36:02 遵守纪律 John Lee 20:36:39 现在讨论,很多同学没有基础,晕的。 John Lee 20:37:12 我们继续学习《嵌入式系统的实时概念》。 DsPower小灰灰(108430786) 20:38:13 支持老师 DsPower小灰灰(108430786) 20:38:14 雪狼(982332664) 20:38:55 我都晕乎了 John Lee 20:40:01 我们上次停下来的地方,是: 4.4.5 调度算法。

计算机操作系统期末复习总结

第一章操作系统引论 1.操作系统定义:操作系统是配置在计算机硬件上的第一层软件,是对硬件功能的首次扩充。 2.操作系统的基本类型:批处理系统,分时系统,实时系统 3.脱机技术:主机与IO设备脱离的技术 4.多道程序技术:在内存中同时有多个程序并存的技术 5.操作系统的基本特性:并发性,共享性,异步性,虚拟技术 6.操作系统的五大功能:处理机管理功能,存储器管理功能,设备管理功能,文件管理功能,用户交流界面(人机接口) 第二章进程管理 1.进程的概念:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 2.状态转换图 3.进程控制块PCB,在进程的整个生命周期中,系统总是通过PCB对进程进行控制,因此PCB是进程存在的唯一标志。 4.原语是由若干条指令组成的,用于完成一定功能的一个过程。它与一般过程的区别在于:它们是“原子操作”。所谓原子操作,是指一个操作中的所有动作要么全做,要么全不做。 5.进程同步的主要任务是对多个相关进程在执行持续上进行协调,已使并发执行的诸进程之间能有效的共享资源和互相合作,从而使程序执行具有可再现性。 6.临界资源、临界区、信号的概念、同步、互斥问题的解决方法 临界资源:Critical Resouce 诸进程间应采取互斥方式,实现对这种资源的共享,如打印机,磁带机等。

临界区:人们把在每个进程中访问临界资源的那段代码称为临界区(critical section) 信号: 同步合作直接 互斥竞争间接 7.进程通信的三种类型:共享存储器系统、消息传递系统、管道通信系统 8.线程的概念和两种类型: 线程:被称为轻型进程或进程元,通常一个进程拥有若干个线程。 两种类型:用户级线程和内核支持线程 第三章处理机调度与死锁 1.调度三个层次:高级调度,中级调度,低级调度 2.调度算法: FCFS先来先服务 SPF段作业优先调度 RR时间片轮转法 3.死锁的概念,在多个进程在运行过程中因为争夺资源而造成的一种僵局,当进程处于这种僵局状态时,若无外力作用,他们都将无法再向前推进。 4.死锁的原因和条件 原因:资源不足(根本原因),进程推进顺序非法 必要条件:互斥条件、请求和保持条件、不剥夺条件,环路等待条件。 5.死锁解决的三种方案:摒弃“请求和保持”条件、摒弃“不剥夺”条件、摒弃“环路等待”

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

浅析RM与EDF实时调度算法

浅析RM与EDF实时调度算法 1 引言 与非实时系统相比,嵌入式实时系统因其所控制物理过程的动态性,要求运行于其中的单个任务必须满足其时限要求,以确保整个系统的正确性和安全性[1]。在航空航天、电信、制造、国防等领域,对实时系统有着强烈的应用需求。实时处理和实时系统的研究和应用工作已经有了相当长的历史,在实时任务调度理论、实时操作系统、实时通信等方面取得了大量成果。 实时任务调度理论是实时处理技术的核心和关键[2]。这是因为,实时任务具有时限要求,在一个或多个处理器之间调度实时任务,需要判断是否每个任务的执行都能在其截止期限内完成。如果每个任务的执行都能在其截止期限内完成,则称该调度是可行。可调度性判定就是判定给定的n个实时任务在应用某种调度算法的前提下能否产生一个可行的调度。调度算法的设计要尽可能满足任务可调度性的要求[3]。 2 实时调度分类 由于实时系统的侧重点不同,实时调度亦有多种分类方式。常见的分类有,根据任务实时性要求的重要程度,分为硬实时调度和软实时调度——在硬实时调度中任务必须在其截止期限内执行完毕,否则将产生严重后果。而对于软实时任务,当系统负载过重的时候,允许发生错过截止期限的情况,根据任务是在一个或多个处理器上运行,分为单处理器实时调度和多处理器实时调度,多处理器实时调度又可分为集中式调度和分布式调度;根据调度算法和可调度性判定是在任务运行之前还是运行期间进行的,分为静态调度、动态调度和混合调度;根据被调度的任务是否可以互相抢占,分为抢占式调度和非抢占式调度;根据任务请求到达的情况不同。分为周期性任务调度和非周期性任务调度。不同调度方式具有各自的优缺点,适用于不同类型的实时系统。 3 RM与EDF调度算法简介

城市公共自行车调度方法研究

城市公共自行车调度方法研究 随着社会经济的不断发展,人们的交通出行需求越来越大,城市交通问题也越来越严重。面对这样的形势,低能耗、低排放、低污染的绿色交通理念被越来越多的人认同。 公共自行车在缓解交通拥堵,解决出行“最后一公里”问题方面具有突出优势。但是由于公共自行车站点规划布局的不合理,以及运营管理部门对公共自行车系统的调度不合理等原因,在公共自行车系统运行过程中经常出现“无车可借,无桩位可还”的问题,这种现象制约着城市绿色交通的有序发展。 基于这种现象,本文对城市公共自行车运营调度问题进行了研究。首先,本文在总结归纳国内外现有研究成果的基础上,阐述了城市公共自行车的使用特征,并分析了公共自行车调度的必要性。 同时,对公共自行车调度系统的调度内容、调度模式、调度成本等进行了深入分析。在调度模式方面,分析了传统多车场简单分区调度模式的特点以及存在的不足,提出了多调度车场协同运输的调度模式。 其次,分析了多车场协同运输调度模式的特点以及需要考虑的因素,在此基础上构建了一个以综合调度运输成本最低的多车场协同调度模型。该模型将系统内所有调度车场进行协同考虑,优化公共自行车静态调度的最优路径问题。 在模型求解方面,本文通过对不同启发式算法适用性的分析,最终构造了一种融合遗传算法和禁忌搜索算法的启发式算法,并通过Matlab软件编程实现模型的求解。最后,以中山市公共自行车租赁系统为例,分别采用多车场协同运输调度模式和传统多车场简单分区调度模式进行调度。 以综合调度成本最低为目标,对两种调度模式下的最优调度方案进行对比分

析,验证了本文所构建的多车场协同运输的调度模型以及求解算法的适用性。

四种实时操作系统特性进行分析和比较

四种实时操作系统特性进行分析和比较 https://www.wendangku.net/doc/2018565187.html,2006年11月18日21:55ChinaByte 本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux——新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。 近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。 基本特征概述 *QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1 (程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。 *LynxOS是一个分布式、嵌入式、可规模扩展的实时 操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。 *RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。 *KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出“严格(firm)”实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的“严格的”实时系统。 体系结构异同 实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。 *QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。 *LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的“Galaxy”技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS 3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。

计算机操作系统知识点总结一

第一章 ★1.操作系统的概念:通常把操作系统定义为用以控制和管理计算机系统资源方便用户使用的程序和数据结构的集合。★2.操作系统的基本类型:批处理操作系统、分时操作系统、实时操作系统、个人计算机操作系统、网络操作系统、分布式操作系统。 ①批处理操作系统 特点: 用户脱机使用计算机 成批处理 多道程序运行 优点: 由于系统资源为多个作业所共享,其工作方式是作业之间自动调度执行。并在运行过程中用户不干预自己的作业,从而大大提高了系统资源的利用率和作业吞吐量。 缺点: 无交互性,用户一旦提交作业就失去了对其运行的控制能力;而且是批处理的,作业周转时间长,用户使用不方便。 批处理系统中作业处理及状态 ②分时操作系统(Time Sharing OS) 分时操作系统是一个联机的多用户交互式的操作系统,如UNIX是多用户分时操作系统。 分时计算机系统:由于中断技术的使用,使得一台计算机能连接多个用户终端,用户可通过各自的终端使用和控制计算机,我们把一台计算机连接多个终端的计算机系统称为分时计算机系统,或称分时系统。 分时技术:把处理机的响应时间分成若于个大小相等(或不相等)的时间单位,称为时间片(如100毫秒),每个终端用户获得CPU,就等于获得一个时间片,该用户程序开始运行,当时间片到(用完),用户程序暂停运行,等待下一次运行。 特点: 人机交互性好:在调试和运行程序时由用户自己操作。 共享主机:多个用户同时使用。 用户独立性:对每个用户而言好象独占主机。 ③实时操作系统(real-time OS) 实时操作系统是一种联机的操作系统,对外部的请求,实时操作系统能够在规定的时间内处理完毕。 特点: 有限等待时间 有限响应时间 用户控制 可靠性高 系统出错处理能力强 设计实时操作系统要考虑的一些因素: (1)实时时钟管理 (2)连续的人—机对话 (3)过载 (4) 高度可靠性和安全性需要采取冗余措施。 ④通用操作系统 同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。 ⑤个人计算机上的操作系统

实时操作系统 期末报告

实时操作系统期末总结报告 一、实时操作系统的概述 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。 1.1.实时操作系统的相关概念 (1)实时操作系统的定义 实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如人驾驶的汽车中的系统,需要一个比较稳定的实时操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,比如汽车不能很快的识别人的操作指令,那么它可能造成严重的事故(如:汽车的瞬时刹车;公交车,它能准确的报站,这其实就是一个实时操作系统的具体体现;其次,车上的GPS导航仪,其实质也是一个比较精确实时操作系统的产物,如果不能实时,那么导航仪将失效,结果不能正确的指导司机驾驶的方向,同时这种实时操作系统的及时性必须达到一定的程度:ms级)。一些实时操作系统是为特定的应用

设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。 (2)实时操作系统中的一些重要的概念 代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入; 资源:任何为任务所占用的实体; 共享资源:可以被一个以上任务使用的资源; 任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任 务都是一个无限的循环,每个任务都处在以下五个状态下:休眠 态,就绪态,运行态,挂起态,被中断态; 任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任 务的栈中重新装入CPU的寄存器,并开始下一个任务的运行; 内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核和可剥夺型内核; 调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法; (3)及时性 关于实时操作系统的及时性,我将从如下两个方面进行介绍:实时操作系统的时间限和实时操作系统的应用相关。 时间限:对一些实时性要求较高的系统,它们要求的时间限一般是毫秒级(ms),但是通常的实时操作系统,一般是秒级(s)或是在

多核处理器调度方法研究

多核处理器调度方法研究 【摘要】在多核处理器蓬勃发展的今天,温度过高成为制约其性能和稳定的关键因素。本文首先在单核处理器上,以热传递理论为基础,以温度与时间的一个简明等式详细分析了任务组的各种排列方式对单核处理器的峰值温度可能造成的影响,并提出了简单易行免于复杂计算的调度方法;然后将该方法拓展到多核处理器环境,通过合理分配、核上调度和核间迁移,达到了降低各核峰值温度的目的。 【关键词】多核;温度感知;调度;热传递 0.引言 多核处理器是当前及未来处理器发展的主要趋势。单个处理器中集成的核的数量已经由两个发展到四个、八个甚至更多。核的数量的增多提高了处理器的计算能力,但也带来了处理器功耗过大和温度过高的问题。有一些研究致力于减少多核处理器的功耗,而另一些研究则着眼于解决温度过高的问题。功耗问题和温度问题并不完全相同,两个处理器的功耗总量相同时温度的变化曲线却不一定相同。减耗的直接目的是节能,通过减耗有可能间接实现降温的目的,但不能保证没有温度过高的时刻。一个过高的温度会直接导致处理器性能降低及故障率升高,所以相对而言,降低温度比减少功耗有更为重要的意义。本文着眼于解决峰值温度过高的问题。 为了解决这一问题,在硬件上一般常采用动态电压调节(DVS)和clock gating 等技术。DVS适时地降低电压与频率以减少功耗,clock gating当温度达到某个阈值时暂时停止指令的执行。这两种方法尤其是后者严重牺牲了处理器性能,只能在必要时刻合理使用。国内外也有一些文献提出软件方法,但往往没有与温度直接相关的模型,或只是通过简单的迁移进程来降温,而且常以取得较低的平均温度或平坦的温度曲线为目标。然而为保证处理器正常工作,重要的是保证温度不超过某个阈值,平均温度的高低相对次要。有实验表明,不同任务对处理器的温度有不同程度的影响,其差别甚至十分巨大,所以通过任务在不同核间切换和单个核上的调度降低处理器的峰值温度是可行。本文以数字温度传感器(DTS)为硬件基础, 以基于热传递原理的模型为理论出发点,以任务调度为手段,以降低处理器的峰值温度为目标。首先探讨任务调度在单核上的性质,提出了热优先排序和冷任务插入方法,然后将得到的结论扩展为多核,提出了任务分配原则和冷任务迁入方法。该方法性能损失较小,而且可与DVS和clock gating方法共同使用。 1.多核调度 多核调度是单核调度的扩展,多核处理器每个核上的调度都保有上节所讲的性质。多核调度从一般可以分为全局调度和局部调度。目前局部调度应用较广泛,本文采用局部调度,将调度步骤主要划分为分配、核上调度和核间迁移。

计算机操作系统学习总结

计算机操作系统学习总结一填空: 1.操作系统为用户提供三种类型的使用接口,它们是命令方式和系统调用和图形用户界面。 2.进程在执行过程中,因时间片用完将进入就绪状态。 3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。 4.当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。5.程序经编译或汇编以后形成目标程序,其指令的顺序都是以零作为参考地址,这些地址称为逻辑地址。 6.文件的逻辑结构分流式文件和记录式文件二种。 7.进程由程序、数据和进程控制块(PCB)组成。 8.对信号量S的操作只能通过原语操作进行,对应每一个信号量设置了一个等待队列。 9.操作系统是运行在计算机裸机系统上的最基本的系统软件。 10.虚拟设备是指采用SPOOLING技术,将某个独享设备改进为供多个用户使用的的共享设备。 11.在分时系统中,时间片给定,用户数越多,响应时间越长。 12.段式管理中,以段为单位,每段分配一个连续区。由于各段长度不同,所以这些存储区的大小不一,而且同一进程的各段之间不要求连续。 13.逻辑设备表(LUT)的主要功能是实现设备独立性。

14在采用请求分页式存储管理的系统中,地址变换过程可能会因为缺页和越界等原因而产生中断。 的调度分为高级、中级和低级三种,其中低级调度是指进程调度。 17.文件的物理结构分为顺序文件、索引文件和索引顺序文件。 18.所谓设备控制器,是一块能控制一台或多台外围设备与CPU并行工作的硬件。 19.?利用文件目录实现文件共享,文件系统必须设置一个基本文件目录。20分页管理储管理方式能使存储碎片尽可能少,而且使内存利用率较高,管理开销小。20.?计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件。 21.?操作系统目前有五大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。 22.按文件的逻辑存储结构分,文件分为有结构文件,又称为记录式文件和无结构文件,又称流式文件。 23.航空订票系统属于实时操作系统。 24、在设备管理中,为了克服独占设备速度较慢、降低设备资源利用率的缺点,引入了虚拟分配技术,即用共享设备模拟独占设备。 25、常用的内存管理方法有分区管理、页式管理、段式管理和段页式管理。 26、CPU交替执行系统内核程序和用户程序,这种CPU的不同工作模式称为管态和目态 。 27、在存储管理中常用虚拟存储器方式来摆脱主存容量的限制。 28、在请求页式管理中,当硬件变换机构发现所需的页不在内存时,产生缺页中断信号,中断处理程序作相应的处理。 29、碎片现象的存在使得内存空间利用率降低。

嵌入式实时操作系统中实时调度算法综述

嵌入式实时操作系统中实时调度算法综述 摘要:实时调度是指在有限的系统资源下,为一系列任务决定何时运行,并分配任务运 行除CPU之外的资源,以保证其时间约束、时序约束和资源约束得到满足。一个实时系统可以由单处理器系统来实现,也可以用多处理器系统来实现。实时调度算法是保障实时系统时限性和高可靠性的最重要手段之一。 关键词:嵌入式;实时操作系统;实时调度算法;RTOS;RMS 引言 嵌入式系统在当今的生产和生活中得到了广泛的应用,鉴于嵌入式实时系统的特点,要求任务调度等实时内核功能精简和高效。综合了EDF 和RM调度策略的CSD 调度策略,更加适合嵌入式系统的特点,满足其内核的要求。任务调度策略是实时系统内核的关键部分,如何进行任务调度,使得各个任务能在其期限之内得以完成是实时操作系统的一个重要的研究领域。它的精简和高效,对提高低处理能力,小内存系统整体性能具有重大的意义。 RTOS概述 RTOS,即:实时系统(Real-time operating system),实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。它的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。因此实时系统应该在事先先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。对一般的程序来说,大多数是考虑指令执行的逻辑顺序,指令何时执行并不重要。而对实时应用系统的程序就不一样,当外部某激励出现时,系统必须以一定的方式和在限定的时间内响应它,如果已超时,那怕执行结果是正确的,系统也认为是失效的。实时操作系统通常被分为软实时操作系统和硬实时操作系统。前者意味着偶尔错过时限是可以容忍的;后者意味着执行过程不但必须正确而且必须准时。在实时操作系统中,系统将程序分成许多任务(或进程),而每个任务的行为都预先可知,或者是有明确的功能,系统根据一定的调度原则,决定谁可取得执行权,这就是RTOS的核心所在。 实时调度算法 实时调度算法可以分为4类:单处理器静态调度算法、多处理器静态调度算法、单处理器动态调度算法、多处理器动态调度算法。下面分别分析嵌入式操作系统中采用的各种调度方法,以及这些调度方法是如何满足实时性应用的实时要求的。 1 速率单调算法 速率单调算法是一个经典的算法,它是针对那些响应和处理周期性事件的实时任务的,它事先为每个这样的实时任务分配一个与事件频率成正比的优先级。 实现时,就绪队列中的所有任务按照优先级Priority排队,优先级最高的任务排在队首,当处于运行态的任务,由于某种原因挂起时,只要把就绪队列的首元素从就绪队列中取下,使运行任务指针pRunTask指向该元素即可,如果是处于其他状态的任务变为就绪状态,而挂

计算机操作系统简单介绍

计算机操作系统简单介绍 操作系统的种类繁多,依其功能和特性分为分批处理操作系统、分时操作系统和实时操作系统等;依同时管理用户数的多少分为单用户操作系统和多用户操作系统;适合管理计算机网络环境的网络操作系统。 1)微机操作系统随着微机硬件技术的发展而发展,从简单到复杂。Microsoft 公司开发的DOS是一单用户单任务系统,而Windows操作系统则是一多户多任务系统,经过十几年的发展,已从Windows 3.1发展Windows NT、Windows 2000、Windows XP、Windows vista、Windows 7和Windows 8等等。它是当前微机中广泛使用的操作系统之一。Linux是一个源码公开的操作系统,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大,已被越来越多的用户所采用,是Windows操作系统强有力的竞争对手。 2)语言处理系统 人和计算机交流信息使用的语言称为计算机语言或称程序设计语言。计算机语言通常分为机器语言、汇编语言和高级语言三类。如果要在计算机上运行高级语言程序就必须配备程序语言翻译程序(下简称翻译程序)。翻译程序本身是一组程序,不同的高级语言都有相应的翻译程序。翻译的方法有两种:一种称为“解释”。早期的BASIC源程序的执行都采用这种方式。它调用机器配备的BASIC“解释程序”,在运行BASIC源程序时,逐条把BASIC的源程序语句进行解释和执行,它不保留目标程序代码,即不产生可执行文件。这种方式速度较慢,每次运行都要经过“解释”,边解释边执行。 另一种称为“编译”,它调用相应语言的编译程序,把源程序变成目标程序(以.OBJ为扩展名),然后再用连接程序,把目标程序与库文件相连接形成可执行文件。尽管编译的过程复杂一些,但它形成的可执行文件(以.exe为扩展名)可以反复执行,速度较快。运行程序时只要键入可执行程序的文件名,再按Enter键即可。 对源程序进行解释和编译任务的程序,分别叫作编译程序和解释程序。如FORTRAN、COBOL、PASCAL和C等高级语言,使用时需有相应的编译程序;BASIC、LISP等高级语言,使用时需用相应的解释程序。

基于贡献度的项目调度方法研究

第14卷第12期计算机集成制造系统 Vol.14No.122008年12月 Computer Integrated Manufacturing Systems Dec.2008 文章编号:1006-5911(2008)12-2431-05 收稿日期:2007-12-24;修订日期:2008-04-28。Received 24Dec.2007;accep ted 28Apr.2008. 基金项目:国家973计划资助项目(2005CB724100);国家863计划资助项目(2007AA04Z110,2007AA04Z190);国家自然科学基金资助项目 (70271053,70772056)。Foundation items:Project supported by the National Basic Resear ch Program ,China(No.2005CB724100),th e N ational H igh -T ech.R&D Program,China(No.2007AA04Z110,2007AA04Z190),and the National Natural Science Founda -tion,China(No.70271053,70772056). 作者简介:管在林(1966-),男,江苏高邮人,华中科技大学机械科学与工程学院副教授,博士,主要从事约束理论、制造系统建模与仿真等的研 究。E -mail:zlgu an@h https://www.wendangku.net/doc/2018565187.html, 。 基于贡献度的项目调度方法研究 管在林1,马 力1,何 敏2,邵新宇1 (1.华中科技大学机械科学与工程学院数字制造装备与技术国家重点实验室,湖北 武汉 430074; 2.武汉烽火通信科技股份有限公司,湖北 武汉 430074) 摘 要:为改进传统的项目管理方法,提出了一种由统计理论得出的指标)贡献度来决定在关键链识别过程中的冲突解决策略,以达到识别出项目关键链的目的。为使调度计划在不确定性环境下能够顺利实施,该调度方法充分考虑了项目执行过程中工序的随机性。在此基础上,提出了一种关键链识别方法,最后针对标准问题库PSPL IB 中的典型算例,应用M atlab 进行了仿真验证。 关键词:项目管理;项目调度;关键链;瓶颈;贡献度中图分类号:T P391 文献标识码:A Project scheduling method based on the contribution index G UA N Zai -lin 1 ,MA Li 1 ,H E M in 2 ,SH A O X in -yu 1 (1.Stat e K ey L ab of Digital M anufact ur ing Equipment &T echnolo gy ,School of M echanical Science &Eng ineering ,H uazhong U niversit y of Science &T echno lo gy ,W uhan 430074,China; 2.Fiber Ho me T elecommunication T echnolo gies Co.,L td.,Wuhan 430074,China) Abstract:T o improv e tr aditional pro ject manag ement methods,a conflict r eso lutio n strateg y in identify ing the cr itical chain of the pr oject by using the contributio n index co ming fr om the st atistical t heo ry was pro po sed.T o r ealize smo oth implementatio n o f project scheduling under uncer tain env ir onment,the r andomness o f the pro ject procedur e during the pr oject ex ecution pr ocess w as taken into consideratio n in this method.Based o n the str ategy ,a new crit-i cal chain identificat ion metho d was int roduced.Finally ,based o n one standar d instance f rom the w ell know n PSPL IB benchmar k set,simulatio n ev aluatio n to this method in M atlab env ir onment w as pr esented.Key words:pr oject management;pro ject scheduling ;critical chain;bott leneck;co nt ribution index 0 引言 在当前装备制造业成为我国重点发展方向的背 景下,有必要改善传统的项目管理理论与方法,验证新方法的可行性,并最终将其应用在大型机电装备的设计、加工和装配过程的规划与管理过程中。 高德拉特(Goldratt)博士于1986年提出了约束理论(T heo ry of Co nstraints,TOC),强调以系统 整体的观点进行生产管理。之后,他将TOC 引入到项目管理领域,提出了一种基于瓶颈识别及缓冲管理的新方法)))关键链项目管理(Critical Chain Project M anag em ent,CCPM )方法[1]。传统的关键路径法(Critical Path Metho d,CPM )在确定关键路径时,主要依据预先估计的任务时间与任务间的逻辑关系,并没有充分考虑资源约束对项目计划的影响 [2] 。而CCPM 方法则认为决定整个项目效率的

实时操作系统包括硬实时和软实时的区别

一.什么是真正的实时操作系统 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN 上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统? 1. 首先说一下实时的定义及要求: 参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。

一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。 根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。同学们,如何选择,自己考虑吧:-)

相关文档