TinyOS任务调度机制与实时调度构件设计

TinyOS任务调度机制与实时调度构件设计
TinyOS任务调度机制与实时调度构件设计

收稿日期:2007-05-09;修回日期:2007-07-18。 基金项目:国家863计划项目(2005AA1Z2120)。 作者简介:刘奎安(1982-),男,四川自贡人,硕士研究生,主要研究方向:无线传感器网络; 郭文生(1976-),男,辽宁铁岭人,讲师,博士研究生,主要研究方向:无线传感器网络、实时网络技术; 桑楠(1964-),男,四川营山人,教授,主要研究方向:嵌入式实时系统。

文章编号:1001-9081(2007)11-2740-03

Tiny OS 任务调度机制与实时调度构件设计

刘奎安,郭文生,桑 楠

(电子科技大学计算机科学与工程学院,成都610054)

(lka10271982@sina .com )

摘 要:Tiny OS 是一个开源的构件化操作系统,它采用构件化描述语言nes C 进行开发,主要针对资源非常有限的无线传感器网络节点而设计。分析了Tiny OS 22.x 的任务调度机制,针对其在实时应用领域的调度缺陷,设计并实现了一种软实时任务调度构件。根据构件在T OSSI M 仿真器中的验证分析,能有效增强Tiny OS 的实时性能。

关键词:无线传感器;Tiny OS;实时;构件设计;T OSSI M 中图分类号:TP316;TP311 文献标识码:A

Schedule m echan is m of T i n yO S and its rea l 2ti m e schedule co m ponen t desi gn

L I U Kui 2an,G UO W en 2sheng,S ANG Nan

(School of Co m puter Science and Engineering,U niversity of Electronic Science and Technology of China,

Chengdu S ichuan 610054,China )

Abstract:Tiny OS is an open 2s ource component operating syste m for sens or net w orks nodes that has very li m ited res ources .Tiny OS was i m p le mented in component 2devel op ing language nes C .Thr ough analyzing the schedule mechanis m of Tiny OS 22.x,a s oft real 2ti m e scheduler componentwas designed and i m p le mented for real 2ti m e app licati ons .Si m ulati on results in T OSSI M demonstrate that the s oft real 2ti m e component i m p r oves the real 2ti m e perfor mance of Tiny OS .

Key words:wireless sens or net w orks;Tiny OS;real 2ti m e;component design;T OSSI M

0 引言

无线传感器网络(W ireless Sens or Net w orks,W S N )是由大量体积较小、能源受限,具有一定计算、存储和无线通信能力的传感器节点组成的无结构网络[1,2]。它综合了传感器、嵌入式、无线网络、分布式信息处理等技术。由于W S N 自身具备的特征,已广泛应用于国防军事、环境监测、交通管理、医疗卫生等领域。无线传感器网络作为一个新兴的研究领域,其中存在大量挑战性的研究课题,节点上的操作系统(W ireless

Sens or Net w orks Operati on Syste m,W S NOS )设计与实现就是其

中之一。

目前,国外许多大学、研究机构着手于W S NOS 的研究,开发出了Tiny OS [3]、Magnet 、MANTI S 、Sen OS 等具有典型特征的W S NOS 。其中,由UC Berkeley 依靠S martdust (智能尘埃)项目开发出的Tiny OS 得到了广泛关注和应用。

Tiny OS 是全新面向W S N 的源码级构件化操作系统,由

构件开发语言nes C [4]开发,其内核只需要400字节的内存空间即可运行起来,是一个轻量级操作系统。但在实时应用中,

Tiny OS 简单的F I F O 调度算法就显得不再适用,在任务数较

多时重要任务的响应时间无法得到保证。因此,针对实时应用的实时性需求,本文深入分析了Tiny OS 22.x 调度机制和调度相关的构件,提出了具有软实时性能的任务调度机制,开发

了相应的系统调度构件,通过在T OSSI M [5]仿真器中进行仿

真分析,此实时系统调度构件能提高Tiny OS 的实时性能。

1 Tiny OS 22.x 的调度机制

1.1 Tiny OS 的任务事件驱动的并发模型

Tiny OS 采用任务和事件驱动[6]

相结合的两级并发模型

(如图1)

图1 Tiny OS 任务事件驱动并发模型示意图

任务机制 任务由用户应用程序定义,可以由应用程序或事件处理程序创建。任务由task 关键字定义,具体定义语

法为:task void myTask (){…}。任务由post 关键字创建,具体语法为:post myTask ()。创建任务时,Tiny OS 的调度器将任务加入任务队列的队尾。核心调度策略中的任务调度器把此任务加入任务队列后就立即返回,任务则延迟执行。在等待执行的任务队列中,各个任务之间采用F I F O 原则进行调

第27卷第11期

2007年11月

 

计算机应用

Computer App licati ons

 

Vol .27No .11

Nov .2007

度,任务间不能相互抢占。任务机制没有实时调度能力,适用于非抢占、时间要求不严格的应用。

事件驱动机制 事件直接或间接地由硬件中断产生,

Tiny OS 接收到事件后,立即执行此事件对应的事件处理函

数。事件处理可以抢占当前运行的任务,应用于时间要求严格的应用中,但是产生事件的中断源极其有限,无法满足多任务的实时应用。

1.2 Tiny OS 2

2.x 任务调度实现的具体分析

Tiny OS 22.x 源码中,任务调度器是由配置构件[7]

TinyScheduler C 及其相关模块构件

[7]

构成。

配置构件TinyScheduler C 的作用是实例化调度器所用到的各个系统模块构件,并通过配线规范[6]将实例化的各个模块构件通过接口[6]组装起来

,形成最终系统调度器。

图2 TinyScheduler C 构件模型

TinyScheduler C 构件的实现体中与配线相关的语句有:Scheduler =Sched,说明TinyScheduler C 构件提供的Scheduler

接口是由Sched 构件提供的;Task Basic =Sched,说明

TinyScheduler C 构件提供的Task Basic 接口是由Sched 构件提

供的;Sched .McuSleep ->Sleep,说明Sched 中使用到的

McuSleep 接口是由Sleep 构件提供的。

在系统调度器中,负责调度功能的模块构件是Sched,该构件中包含了Tiny OS 的任务等待队列的数据结构和队列的操作函数。描述任务等待队列的数据结构是在其实现体中声明的3个由volatile 修饰的uint8_t (8位无符号整型)的全局变量,分别是m _head 、m _tail 和m _next[NUM _T ASKS ]。m _

head 保存队首任务的任务号,用于调度器取队首任务执行;m _tail 保存队尾任务的任务号,用于调度器向任务队列中加入

一个新任务;m_next[i ]数组(i 取值空间为0~NUM _T ASKS -1)用于保存任务i 的下一个任务的任务号。其中8位无符号整型用于保存任务的任务号,说明Tiny OS 22.x 的系统中能够最大容纳任务数为255个(其中一个值为255作为空任务

NO_T ASK 标识被占用),相比Tiny OS 21.x 的最大能容纳7个

任务的循环队列得到了改进。Tiny OS 在静态编译时计算出系统中定义的任务数NUM _T ASKS,并为每个任务分配各自的任务号(任务id,是个8位无符号整型),这样不仅能确定出m_next[NUM _T ASKS ]长度,节省了保存任务队列的内存空间,而且每个任务由系统统一分配不同确定的任务号id,方便了任务的管理。

1.3 Tiny OS 2

2.x 调度机制的特点

从以上分析归纳出Tiny OS 的调度特点:

1)任务之间不能相互抢占,所有任务共享一个执行空

间,节约了系统运行时的内存开销;

2)任务由系统中的一个单向任务队列进行管理,任务调

度遵循F I F O 方式,避免了可抢占调度的复杂设计和死锁等问题;

3)当任务队列为空且无事件产生时,处理器自动处于睡

眠状态,并由随后硬件中断产生的事件唤醒,有利于系统节能;

4)事件处理用来响应底层硬件的中断,如MCU 的外部

中断、定时器中断等,其触发的事件处理抢占任务的执行,是一种异步、时间响应快的执行方式。

2 Tiny OS 22.x 的实时调度构件的设计与实现

2.1 实时改造可行性

Tiny OS 是基于构件的操作系统。具体应用由不同的系

统构件和用户应用构件通过接口组装而成。所以,可以开发

出实时调度的系统构件。当应用需要实时调度时,采用实时

调度构件替换Tiny OS 自带的队列调度构件来形成系统的任务调度器。

图3 Tiny OS 开发示意图

存在着成熟而优秀的嵌入式实时操作系统提供实时调度

算法和实时调度的实现可供改造时参考借鉴,如内核开源的μC /OS 。

无线传感器网络主要针对于具体的应用,在一定程度上简化了实时构件的设计,可以针对具体应用设计不同实时性能的系统构件。2.2 实时调度构件具体设计与实现

根据无线传感器网络的特性,确定实时性能改造原则:低开销原则 由于要考虑任务实时化的系统开销,一定要考虑节点的硬件情况。

兼容性原则 实时调度实现的调度器一定要满足构件化的nes C 编程规范,以便与系统组装构成应用系统。

可靠性原则 因为传感器网络节点上的MCU 多不提供地址保护。应用在设计时一定要注意不能访问实时任务管理的地址空间,否则会造成系统崩溃。

实用性原则 实时构件设计不需要考虑得太复杂,可以针对具体的应用进行设计。

基于上述原则提出了面向Tiny OS 系统的软实时任务调度策略:

1)调度器在任务队列取任务时,选择执行优先权较高的等待任务。在系统静态编译确定各个任务的任务号时,按照任务权限越高任务号越小的原则进行任务号分配;调度器在取任务时,遍历当前等待队列中的任务,选择任务号最小即执行优先权最高的任务执行。

2)每个任务都有一个执行时间限制,以防止正在执行的任务阻塞或进入死循环而造成系统瘫痪。设计一个负责任务

1472第11期刘奎安等:Tiny OS 任务调度机制与实时调度构件设计

超时管理的时钟中断触发的事件处理,每隔一定时间间隔来检查当前运行任务的任务号(currentTask I D )。如果与上次检查的任务号(lastTask I D )一致,则将任务执行的计数变量(executeCounter )减1,并检查是否为0(任务执行超时检查)。为0,说明任务执行超时,终止此任务,并将currentTask I D 赋值为NO_T ASK 后,退出检查。如不为0,说明任务未超时,结束检查,让任务继续执行;如果currentTask I D 不等于lastTask I D ,则说明上次检查的任务已执行完,现在执行的是新任务,将executeCounter 赋值为EXEC UTE _MAX _TI M E (是一个宏常量,初始化任务最大执行时间)和将lastTask I D 赋值为currentTask I D 后,退出检查;如果无任务执行,此时currentTask I D 为NO _T ASK,将lastTask I D 赋值为NO _T ASK,并退出检查

图4 负责任务超时检查的事件处理流程

2.3 设计分析

对设计并实现的软实时调度构件进行如下分析:

1)设计并未改变Tiny OS 22.x 自带的TinyScheduler C 调度器的组件和接口的结构。主要增加了一个时钟中断的事件处理函数和对popPush ()等函数体的实现做了修改,具有简单易行的特点。在系统中只是增加了currentTask I D 、lastTask I D 、executeCounter 等有限变量,和查找等待队列的高优先权任务等简单操作,系统的开销较小。

2)由于是非抢占的优先级调度,各个任务的优先级在编译时确定,运行时不会改变,因此采用此调度机制进行系统调度时,要注意任务优先级的设置。如果系统中一直存在高优先级的任务执行,则低优先级任务将得不到执行,会出现饥饿情况。如果低优先级任务设计执行时间很长,则后来的高优先级任务得不到及时的响应。

3 仿真分析

设计了一个针对m icaz 平台的验证应用,并用T OSSI M 仿真工具进行仿真验证。仿真中创建两个周期性任务:任务一和任务二,任务的执行周期为10Hz,均通过网络发送数据包。两个任务发送的接收地址不同。通过统计在两个负责接收数据包的节点上周期时间内接收到的数据包数,来确定任务的执行情况。在采用软实时调度构件时,任务一是高优先级任务。图5和图6是采用软实时调度构件Soft Realti m eScheduler C 和基于F I F O 的调度构件TinyScheduler C 的任务执行统计图。

对比图5和图6的统计数据可知。所设计的软实时调度构件能较好利用有限的节点硬件执行资源来确保系统中高优先级任务的执行,低优先级任务将延迟等待或抛弃执行;而

Tiny OS 自带的基于F I F O 的调度构件只是将系统执行资源平

均分配给系统中运行的各个任务,从而限制了关键任务的应用程序的设计

4 结语

本文基于Tiny OS 的调度策略设计实现了一种软实时的系统调度构件,并对其进行了仿真验证。仿真结果显示它能有效确保系统中关键任务的执行,达到了软实时性能的要求。参考文献:

[1] ESTR I N D,G OV I N DAN R,HE I D E MANN J,et al .Next century

challenges:Scalable coordinati on in sens or net w orks[C ]//MOB I 2COM,Seattle,1999.W ashingt on:AC M ,1999:263-270.[2] H I L L J .Syste m architecture for wireless sens or net w orks [D ].

Berkeley,US A:University of Calif ornia,2003.

[3] LEV I S P,MADDEN S,P OLASTRE J,et al .Tiny OS:an operating

syste m for wireless sens or net w orks [C /OL ]//W EBER W ,RABAEY J,AARTS E .Ambient I ntelligence .Ne w York,NY:Sp ringer 2Verlag,2005.htt p://bwrc .eecs .berkeley .edu /classes/ee290q /Readings/culler .pdf .

[4] LY NCH C,O πRE I L Y F .P I C 2based Tiny OS i m p le mentati on [C ]//

Pr oceedings of the 2nd Eur opean Workshop on Sens or Net w orks .Ne w York,US A:I EEE,2005:378-385.

[5] LEV I S P,LEE N,W ELSH M,et al .T OSSI M :accurate and scala 2

ble si m ulati on of entire Tiny OS app licati ons[C ]//Pr oceedings of the First AC M Conference on Embedded Net w orked Sens or System.Ne w York:AC M Press,2003:126-137.

[6] G AY D,LEV I S P,CULLER D.Soft w are design patterns f or Tiny OS

[C ]//Pr oceedings of the 2005AC M SI GP LAN /SI G BED Confer 2ence on Languages,Comp ilers,and Tools f or Embedded Syste m s (LCTES05).US A:AC M Press,2005:40-49.

[7] G AY D,LE V I S P,von BEHREN R,et al .The nes C language:A

holistic app r oach t o net w orked embedded system s[C ]//SI GP LAN Conference on Pr ogra mm ing Language Design and I m p le mentati on (P LD I π03).New York,NY,US A:AC M Press,2003:1-11.[8] LEV I S P,MADDEN S,G AY D,et al .The e mergence of net w orking

abstracti ons and techniques in tinyos [C ]//First USEN I X /AC M Sy mposium on Net w ork System s Design and I m p le mentati on (NS 2D I ).[S .l .]:USEN I X A ss ociati on,2004:1-14.

2472 计算机应用2007年

课程设计报告-贪心算法:任务调度问题

数据结构课程设计报告 贪心算法:任务调度问题的设计 专业 学生姓名 班级 学 号 指导教师 完成日期

贪心算法:任务调度问题的设计 目录 1设计内容 (1) 2)输入要求 (1) 3)输出要求 (1) 2设计分析 (1) 2.1排序(将数组按照从小到大排序)的设计 (1) 2.2多个测试案例的处理方法的设计 (2) 2.3 for循环设计 (2) 2.4系统流程图 (2) 3设计实践 (2) 3.1希尔排序模块设计 (2) 3.2 多个测试案例的处理方法的模块设计 (3) 4测试方法 (4) 5程序运行效果 (4) 6设计心得 (6) 7附录 (6)

数据结构课程设计报告(2017) 贪心算法:任务调度问题的设计 1设计内容 有n项任务,要求按顺序执行,并设定第I项任务需要t[i]单位时间。如果任务完成的顺序为1,2,…,n,那么第I项任务完成的时间为c[i]=t[1]+…+t[i],平均完成时间(ACT)即为(c[1]+..+c[n])/n。本题要求找到最小的任务平均完成时间。 2)输入要求 输入数据中包含n个测试案例。每一个案例的第一行给出一个不大于2000000的整数n,接着下面一行开始列出n各非负整数t(t≤1000000000),每个数之间用空格相互隔开,以一个负数来结束输入。 3)输出要求 对每一个测试案例,打印它的最小平均完成时间,并精确到0.01。每个案例对应的输出结果都占一行。若输入某一个案例中任务数目n=0,则对应输出一个空行。 2 设计分析 这个题目属于贪心算法应用中的任务调度问题。要得到所有任务的平均完成时间,只需要将各个任务完成时间从小到大排序,任务实际完成需要的时间等于它等待的时间与自身执行需要的时间之和。这样给出的调度是按照最短作业优先进行来安排的。贪心算法通过一系列的选择来得到一个问题的解。它所做的每一个选择都是当前状态下某种意义的最好选择,即贪心选择。在许多可以用贪心算法求解的问题中一般具有两个重要的性质:贪心选择性质和最有子结构性质。所谓贪心选择性只是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到,这是贪心算法可行的第一基本要素。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所做的贪心选择最终将会得到问题的一个整体最优解。首先考察问题的一个整体最优解,并证明可修改这个最优解,使其以贪心选择开始。而且做了贪心选择后,原问题简化为一个规模更小的类似子问题。然后,用数学归纳法证明,通过每一步做贪心选择,最终可得到问题的一个整体最优解。其中,证明贪心选择后问题简化为规模更小的类似子问题的关键在于利用该问题的最优子结构性质。当一个问题的最优解包含着它的子问题最优解时,称此问题具有最优子结构性质,这个性质是该问题可用贪心算法求解的一个关键特征。 2.1排序(将数组按照从小到大排序)的设计 排序的方法有很多,如:冒泡排序、希尔排序、堆排序等,这些排序的方法都可以使用。这里采用希尔排序来实现。 它的基本思想是:先取一个小于n的整数d1作为第一个增量;这里选取n的一半作为第一个增量(increment=n》1),把数组的全部元素分成d1个组。所有距

荣成规划设计方案参考

荣成xxx生产项目规划设计方案 模板范文

荣成xxx生产项目规划设计方案 荣成市为山东省威海市下辖县级市,地处山东半岛最东端,三面环海,海岸线长500公里,是中国大陆距离韩国最近的地方。介于东经122°08’一122°42’、北纬36°45’—37°27’之间,北、东、南三面濒临黄海,海岸线曲长达491.9公里;属暖温带大陆性季风型湿润气候;辖3个区、 12个镇、10个街道,面积1526平方公里。2016年户籍总人口66.7万人。早在新石器时代,荣成就有人类聚居。西汉始置不夜县,属东莱郡。据史 书记载,秦始皇先后两次来荣筑桥立祠、观海祀日,汉武帝也曾前来拜日主。截至2016年底,拥有国家4A级景区3处、3A级景区11处、2A级景 区1处。2018年1月,荣成入选首批社会信用体系建设示范城市。2019年 7月,入选国家知识产权强县工程试点县(区)。2019年10月8日,被评 为2019年度全国综合实力百强县市。入选2019年度全国新型城镇化质量 百强县市、2019全国营商环境百强县、第二批节水型社会建设达标县(区)。2020年山东省四星级新型智慧城市建设预试点城市。2019年,荣 成市实现生产总值930.8亿元,按可比价计算,比上年增长3.6%。 该xxx项目计划总投资4117.98万元,其中:固定资产投资2791.44 万元,占项目总投资的67.79%;流动资金1326.54万元,占项目总投资的32.21%。

达产年营业收入9805.00万元,总成本费用7825.85万元,税金及附 加71.18万元,利润总额1979.15万元,利税总额2323.32万元,税后净 利润1484.36万元,达产年纳税总额838.96万元;达产年投资利润率 48.06%,投资利税率56.42%,投资回报率36.05%,全部投资回收期4.27年,提供就业职位187个。 报告依据国家产业发展政策和有关部门的行业发展规划以及项目承办 单位的实际情况,按照项目的建设要求,对项目的实施在技术、经济、社 会和环境保护、安全生产等领域的科学性、合理性和可行性进行研究论证;本报告通过对项目进行技术化和经济化比较和分析,阐述投资项目的市场 必要性、技术可行性与经济合理性。 ...... CMOS摄像头模组(CMOSCameraModules,CCM)已经成为重要的传感技术,并且该市场竞争越来越激烈。据麦姆斯咨询报道,摄像头模组产业已 经发展到了一个新阶段,Yole预测2018年全球摄像头模组市场规模达到 271亿美元,未来五年将保持9.1%的复合年增长率(CAGR),预计2024年 将达到457亿美元。摄像头模组产业涵盖图像传感器、镜头、音圈电机、 照明器和其它摄像头组件。该产业的主要驱动因素为智能手机和汽车等产 品中的摄像头数量不断增加,因此CMOS摄像头模组市场仍具很强的吸引力。

TinyOS任务调度机制与实时调度构件设计

收稿日期:2007-05-09;修回日期:2007-07-18。 基金项目:国家863计划项目(2005AA1Z2120)。 作者简介:刘奎安(1982-),男,四川自贡人,硕士研究生,主要研究方向:无线传感器网络; 郭文生(1976-),男,辽宁铁岭人,讲师,博士研究生,主要研究方向:无线传感器网络、实时网络技术; 桑楠(1964-),男,四川营山人,教授,主要研究方向:嵌入式实时系统。 文章编号:1001-9081(2007)11-2740-03 Tiny OS 任务调度机制与实时调度构件设计 刘奎安,郭文生,桑 楠 (电子科技大学计算机科学与工程学院,成都610054) (lka10271982@sina .com ) 摘 要:Tiny OS 是一个开源的构件化操作系统,它采用构件化描述语言nes C 进行开发,主要针对资源非常有限的无线传感器网络节点而设计。分析了Tiny OS 22.x 的任务调度机制,针对其在实时应用领域的调度缺陷,设计并实现了一种软实时任务调度构件。根据构件在T OSSI M 仿真器中的验证分析,能有效增强Tiny OS 的实时性能。 关键词:无线传感器;Tiny OS;实时;构件设计;T OSSI M 中图分类号:TP316;TP311 文献标识码:A Schedule m echan is m of T i n yO S and its rea l 2ti m e schedule co m ponen t desi gn L I U Kui 2an,G UO W en 2sheng,S ANG Nan (School of Co m puter Science and Engineering,U niversity of Electronic Science and Technology of China, Chengdu S ichuan 610054,China ) Abstract:Tiny OS is an open 2s ource component operating syste m for sens or net w orks nodes that has very li m ited res ources .Tiny OS was i m p le mented in component 2devel op ing language nes C .Thr ough analyzing the schedule mechanis m of Tiny OS 22.x,a s oft real 2ti m e scheduler componentwas designed and i m p le mented for real 2ti m e app licati ons .Si m ulati on results in T OSSI M demonstrate that the s oft real 2ti m e component i m p r oves the real 2ti m e perfor mance of Tiny OS . Key words:wireless sens or net w orks;Tiny OS;real 2ti m e;component design;T OSSI M 0 引言 无线传感器网络(W ireless Sens or Net w orks,W S N )是由大量体积较小、能源受限,具有一定计算、存储和无线通信能力的传感器节点组成的无结构网络[1,2]。它综合了传感器、嵌入式、无线网络、分布式信息处理等技术。由于W S N 自身具备的特征,已广泛应用于国防军事、环境监测、交通管理、医疗卫生等领域。无线传感器网络作为一个新兴的研究领域,其中存在大量挑战性的研究课题,节点上的操作系统(W ireless Sens or Net w orks Operati on Syste m,W S NOS )设计与实现就是其 中之一。 目前,国外许多大学、研究机构着手于W S NOS 的研究,开发出了Tiny OS [3]、Magnet 、MANTI S 、Sen OS 等具有典型特征的W S NOS 。其中,由UC Berkeley 依靠S martdust (智能尘埃)项目开发出的Tiny OS 得到了广泛关注和应用。 Tiny OS 是全新面向W S N 的源码级构件化操作系统,由 构件开发语言nes C [4]开发,其内核只需要400字节的内存空间即可运行起来,是一个轻量级操作系统。但在实时应用中, Tiny OS 简单的F I F O 调度算法就显得不再适用,在任务数较 多时重要任务的响应时间无法得到保证。因此,针对实时应用的实时性需求,本文深入分析了Tiny OS 22.x 调度机制和调度相关的构件,提出了具有软实时性能的任务调度机制,开发 了相应的系统调度构件,通过在T OSSI M [5]仿真器中进行仿 真分析,此实时系统调度构件能提高Tiny OS 的实时性能。 1 Tiny OS 22.x 的调度机制 1.1 Tiny OS 的任务事件驱动的并发模型 Tiny OS 采用任务和事件驱动[6] 相结合的两级并发模型 (如图1) 。 图1 Tiny OS 任务事件驱动并发模型示意图 任务机制 任务由用户应用程序定义,可以由应用程序或事件处理程序创建。任务由task 关键字定义,具体定义语 法为:task void myTask (){…}。任务由post 关键字创建,具体语法为:post myTask ()。创建任务时,Tiny OS 的调度器将任务加入任务队列的队尾。核心调度策略中的任务调度器把此任务加入任务队列后就立即返回,任务则延迟执行。在等待执行的任务队列中,各个任务之间采用F I F O 原则进行调 第27卷第11期 2007年11月   计算机应用 Computer App licati ons   Vol .27No .11 Nov .2007

任务调度中心系统-概要设计

任务调度中心系统

目录 一、设计目的 (3) 二、整体架构 (4) 2.1 核心功能 (5) 2.2 核心组件 (5) 三、Job元数据 (5) 四、JobClient (5) 五、JobManager (Master) (6) 5.1 RPCServer (6)

5.2 数据库管理服务类 (6) 5.3 资源管理服务 (7) 5.4 Job依赖关系维护 (8) 5.5 定时调度器 (8) 5.6 Job监控 (8) 5.7 告警服务 (8) 5.8 初始化流程 (9) 5.9 启动流程 (9) 5.10 成功Job处理流程 (9) 5.11 失败Job处理流程 (9) 六、JobWorker (Slave) (9) 6.1 内存数据结构 (9) 6.2 定期从获取可以运行的Job (10) 6.3 执行Job (10) 七、核心流程图 (10) 7.1 Job维护流程 (10) 7.2 Job依赖维护流程 (11) 7.3 资源维护流程 (12) 7.4 Job提交流程 (13) 7.5 Job执行流程 (15) 7.6 Job监控流程 (15) 八、后台部署与运行 (17) 8.1 安装 (17) 8.2 数据库建库建表 (17) 8.3 配置 (17) 8.4 运行 (18) 8.5 停止 (18) 九、部署与运行 (18) 9.1 安装 (18) 9.2 配置 (18) 9.3 运行 (19)

一、设计目的 ●目前整个市场任务调度非常粗糙,基本仅靠Crontab来定时运行,日 志清洗、日志校验、数据分析、入库各模块之间无有效依赖,经常 由于前置任务出错或者未完成,后续的任务运行出错,并且对任务 出错的监控不到位,造成分析数据不能及时入库,导致线上BUG。 ●真实业务场景下合理的任务运行图: (图一) 1.定时触发一个日志校验的Job,去检查清洗后的日志是否已经就 绪; 2.分析的JOB均依赖日志校验的Job,一旦日志校验的Job执行成 功,则并发启动依赖其的分析Job1-4; 3.入库JOB1依赖分析JOB1和分析JOB2,如果这两个分析JOB全 部执行成功,则启动执行入库JOB1; 4.对于入库JOB2,如果分析JOB3和分析JOB4有一个未成功执行, 则入库JOB2就不执行; ●一个复杂的任务依赖图:

关于任务调度相关研究文献综述

关于任务调度相关研究文献综述随着多核处理器的出现,多核处理器任务调度已成为当前高性能处理器研究的热点之一。任务调度是指系统为确定一系列任务的执行顺序所采取的调度策略。随着计算机技术的不断发展,学术界对任务调度问题的讨论也逐渐深入,旨在通过减少通信开销、改变任务执行顺序,以缩短整个任务的调度长度。 近年来,由于多处理器的广泛应用,如何充分利用多处理器的计算性能成为了大家关注的焦点,针对多处理器的任务调度问题突显出来。在多处理器任务调度算法研究的早期,P Dutot[24]等人在研究中指出,对于异构计算环境下的任务调度问题是NP 难问题,难以在多项式时间内寻求最优解。正是该问题的重要性和复杂性,吸引了一大批专家学者对其进行研究,并提出了大量经典的算法。一、国外研究现状 计算机任务调度的研究早在上世纪60年代就已开始。1967年,芝加哥大学的Manacher G.K在ACM期刊上第一次提出了“任务”的概念,并利用列表法和甘特图进行了基本的多核多任务调度算法研究,提出了能够保证调度稳定性的算法。同时文章对软实时系统和硬实时系统也给出了定义和说明。但是由于文章发表年代较为久远,文中提出的是同构多核处理器的模型,并不适用于当今迅速发展的异构多核处理器之间的任务调度。随后,刘炯朗和Layland在已有工作基础上提出了周期任务模型的概念,该模型对任务进行了较好的抽象,对周期性任务做出了一些假设,忽略计算机体系结构的复杂性以及应用程序的具体实现,可以借助各种数学方法对任务的可调度性进行分析。文中提出了可在单处理器上运行的三种调度算法:单调速率算法RM(rate monotonic algorithm)、最早结束优先 EDF(earliest deadline first)算法[1]以及两者的混合算法。在 RM 算法中, 1 根据任务的需求速度赋予其一定的优先级,即所谓的固定优先级。在 EDF 算法中,任务最终期限值较小的赋予更高的优先级,即动态调整任务的优先级。而综合算法将任务分开对待,分别使用上述的算法。文章分析了在上述几种任务调度算法下,CPU能够达到的最大利用率,并用数学方法给予了证明。为后来的研究奠定了基础。后续又提出了许多经典算法,包括时间片轮转(Round Robin,RR)算法、先到先服务(First Come First Served,FCFS)算法、截止期单调调度(Deadline Monotonic Scheduling, DMS) 算法等。在这些算法中,任务的优先

设计方案讲解参考话术

设计方案讲解ppt参考话术 第一页(开场) 客套开场,我们的设计师对您的设计方案进行了再三考虑才加班完成的,所以非常高兴陈先生能在百忙之中抽出宝贵的时间来过来研究我们的个性家居方案。而且我们相信,一份好的设计方案是在不断的否定与修改中碰撞出来的,所以希望陈先生在方案讲解完后可以提出给我们的建议。 第二页(设计工作室介绍) 在尚品,业主的设计方案从来不是一位设计师完成的,负责陈先生您家居设计的是我们疯狂设计工作室,我们擅长于研究生活与家居设计的关系,当然里面包括我们的主卧设计师***,书房设计师***和主讲设计师***。 第三页(公司实力) 尚品在成立9年来,一直为业主们提供优质的家居设计服务。而正是因为这样,所以我们已经连续受到三位共和国总理的高度关注了。同时也因为这些荣誉,我们也一直以实现业主家居梦想作为己任,坚持回馈设计界和社会。 第四页(服务理念) 相信陈先生也很清楚:在中国,房价在持续上涨。所以像陈先生这样提前购入的消费者是比较明智的。正是因为现在房价不断上涨,所以我们一直致力于研究如何非常优雅美观地利用好家里面的每一寸空间。因为浪费了一平方就等于浪费了1万多元。但是在房子里面,格局是相对固定的,而我们可以转换一下思维,房子不可变,家具可以变,我们可以根据您的生活需求而进行家居设计。我们希望通过我们的努力为您完成您的个性家居梦想。而对于设计方案,我们重点考虑的因素有生活行为、空间文化和习惯定制三个方面。 第五页(第一户型分析) 事不宜迟,先来看看陈先生您的第一个主卧空间。从主卧来看,陈先生选房子的眼光非常不错,主卧非常方正实用,而且我最喜欢的就是阳台外面正对的就是中心花园,风景一流。(称赞户型的常用词语:空间方正实用,开间开阔,采光充足,南北对流,冬暖夏凉,户型紧凑,特别适合······)陈先生在这个空间里面主要考虑有休息、储物、影视、休闲的功能。(注意:请用功能代替产品) 第六页(第一平面布局) 先来看看我们设计方案中生活行为的设计部分,根据陈先生您公司主管的工作背景和功能需求分析,我们设计了以下平面布局方案。我们把整个空间划分为以下几个功能区域,分别是休息区、储衣区、视听区,剩下的非常宽广的区域就是活动区,从分区的比率来看,在空间的生活行为活动将会得到充分的保障。如果在平面布局方面没什么问题的话我们就来看看空间设计的文化信息。 第七页(第一风格文化陈述) 在空间设计文化方面的考虑,我们根据陈先生您的性格特点(需求特点)特意为您的空间规划出一种来自米兰的设计文化格调。米兰作为世界时尚之都,米兰黑白经典的形象已经深入人心,好像就是特别为您这种个性分明具有敏锐时尚触觉的前卫潮流一代打造的一样。 第八页(第一风格文化体现) 现代人对卧室的追求不再是睡眠的地方,更是作为与家人进行感情交流的摇篮。典雅的格调,将成为主人情感交流的催化剂,这才是“家”。米兰剪影典雅的格调来自于低调的米兰灰橡主材和精致的牵藤花面板的搭配,从主色调上把整个空间定格在黑白上。当然在空间设计的装饰上面,考虑到空间单纯的黑白两色会显得有点单调,所以墙面采用波斯米亚紫色花纹装饰,配合浅木色地板,优雅闲适。

tinyos任务调度机制

TOSH_sched_init();for(;;){TOSH_run_task();} 这两个函数的实现在tinyos-1.x\tos\system目录下的sched.c源文件中。这个文件就实现了tinyos 1.x的调度策略,很简单吧?闲话少说,下面分析它的数据结构。 typedef struct { void (*tp) (); } TOSH_sched_entry_T; 这个结构体就是tinyos任务队列里的东东,里面是个函数指针。 enum { #ifdef TOSH_MAX_TASKS_LOG2 #if TOSH_MAX_TASKS_LOG2 > 8 #error "Maximum of 256 tasks, TOSH_MAX_TASKS_LOG2 must be <= 8" #endif TOSH_MAX_TASKS = 1 << TOSH_MAX_TASKS_LOG2, #else TOSH_MAX_TASKS = 8, #endif TOSH_TASK_BITMASK = (TOSH_MAX_TASKS - 1) }; 上面定义了tinyos任务队列里的最大任务数TOSH_MAX_TASKS,和一个掩码。 //定义tinyos任务队列,这个队列是个循环队列! volatile TOSH_sched_entry_T TOSH_queue[TOSH_MAX_TASKS]; //“头指针”tinyos任务队列里的第一个不为空的任务的下标 uint8_t TOSH_sched_full; //“尾指针”如果tinyos任务队列没有满,则是最后一个不为空的任务 //的下一个元素的下标;如果任务队列满则是最后一个任务的下标。 volatile uint8_t TOSH_sched_free; 好了,数据结构分析完了,咱们看看tinyos是怎样实现这个队列的吧,实现一个队列,无非就是初始化,增加队列元素,删除队列元素,判断队列是否为空……,数据结构里最基本的东东,想必大家比我清楚了!(如果这个不清楚,赶紧回去看看数据结构 ^_^ )。 一初始化 s 初始化函数很简单,大家肯定都会写了。 void TOSH_sched_init(void) { int i; TOSH_sched_free = 0; TOSH_sched_full = 0; for (i = 0; i < TOSH_MAX_TASKS; i++) TOSH_queue[i].tp = NULL;

移动边缘计算(MEC)中任务协同调度策略

目录 第一章绪论 (1) 1.1研究背景和意义 (1) 1.1.1 研究背景 (1) 1.1.2 研究意义 (3) 1.2国内外研究现状 (5) 1.2.1 MEC研究现状 (5) 1.2.2 任务协同调度机制研究现状 (6) 1.3主要研究内容及贡献 (8) 1.4结构和章节安排 (10) 第二章MEC系统中任务聚类策略 (11) 2.1引言 (11) 2.2问题描述 (11) 2.2.1 聚类算法简介 (12) 2.2.2 MEC系统中任务相似度度量 (13) 2.3MEC系统中的任务聚类策略 (14) 2.3.1 基于k-means算法的聚类策略 (14) 2.3.2 基于层次方法的聚类策略 (16) 2.3.3 基于SOM算法的聚类策略 (18) 2.3.4 基于FCM算法的聚类策略 (22) 2.4仿真验证与性能评估 (27) 2.4.1 时延的敏感度分类 (28) 2.4.2 评价指标 (28) 2.4.3 仿真结果与分析 (29) 2.5本章小结 (32) 第三章移动终端与MEC服务器任务协同调度 (33) 3.1引言 (33) 3.2问题描述 (33) 3.2.1 任务卸载流程 (35) 3.2.2 任务卸载开销 (35) 3.3单任务模式 (36)

3.3.1 模型描述 (37) 3.3.2 STM模型 (39) 3.3.3 算法设计 (40) 3.4多任务模式 (41) 3.4.1模型描述 (42) 3.4.2 MTM模型 (45) 3.4.3 问题NP性 (45) 3.4.4 算法设计 (46) 3.5仿真验证与性能评估 (50) 3.5.1 参数设置 (50) 3.5.2 仿真结果与分析 (51) 3.6本章小结 (55) 第四章MEC服务器与核心云任务协同调度 (56) 4.1引言 (56) 4.2问题描述 (57) 4.2.1 任务优先级 (58) 4.2.2 MEC服务器与核心云通信 (58) 4.2.3 MEC服务器计算模型 (59) 4.2.4 核心云计算模型 (60) 4.3MEC服务器与核心云任务协同调度模型 (61) 4.4基于动态规划的方案设计 (62) 4.5基于遗传算法的方案设计 (66) 4.5.1 染色体编码 (66) 4.5.2 适应函数 (67) 4.5.3 染色体结合 (67) 4.5.4 算法设计 (70) 4.6仿真验证与性能评估 (72) 4.6.1 仿真参数设置 (72) 4.6.2 仿真结果分析 (73) 4.7本章小结 (76) 第五章总结与展望 (78) 5.1全文总结 (78) 5.2未来展望 (79)

数据结构课程设计-任务调度问题

1.ch0502:任务调度问题,在VC++6.0环境下测试通过 文件main.c:案例源程序; 说明:读者可按照教材中提供的数据进行测试; 2 源代码 #include void Shellsort( long *a, long n ); int main() { long n,i,j; long *a,*b; double r[100];/**** 用来存放每个测试案例的计算结果***/ j=0;/*** 记录测试案例的个数***/ /*****读入用户的输入,若当前输入为负数,则程序终止******/ for( n = 0; n >= 0 ; ) { scanf( "%ld", &n ); if(n > 2000000){ printf("too much for the project!\n"); exit(0); } if( n > 0 ) { b = (long*)malloc( n * sizeof( long ) ); a = b; for(i=0; i< n ; i++) { scanf( "%ld", b+i ); /*** 检查输入的数据是否大于1000 000 000****/ if(*(b+i) > 1000000000){ printf("too much for the project!\n"); exit(0); } /*** 对输入中出现任务时间为负数的异常处理******/ if(*(b+i)<0) { printf("input error!\n"); return 0; } } Shellsort( b, n ); /***** 计算平均完成时间*****/

Quartz任务调度--详细教程

Quartz任务调度快速入门1 概述 各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。 对于一个典型的MIS系统来说,在每月1号凌晨统计上个月各部门的业务数据生成月报表,每半个小时查询用户是否已经有快到期的待处理业务……,这样的例子俯拾皆是,不胜枚举。 任务调度本身涉及到多线程并发、运行时间规则制定和解析、场景保持与恢复、线程池维护等诸多方面的工作。如果直接使用自定义线程这种刀耕火种的原始办法,开发任务调度程序是一项颇具挑战性的工作。Java开源的好处就是:领域问题都能找到现成的解决方案。 OpenSymphony所提供的Quartz自2001年发布版本以来已经被众多项目作为任务调度的解决方案,Quartz在提供巨大灵活性的同时并未牺牲其简单性,它所提供的强大功能使你可以应付绝大多数的调度需求。 Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。 此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。此外,Quartz还提供了组件式的侦听器、各种插件、线程池等功能。 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述: ●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job运行时的信息保存在 JobDataMap实例中; ●JobDetail:Quartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一个类来描述Job的实现类及其它相关的静态信息,如Job名字、描述、关联监听器等信息,JobDetail 承担了这一角色。

调度策略

Windows CNC多任务调度策略 一般对于单CPU 的CNC系统,系统软件结构采用前后台式。前台程序承担几乎全部实时功能,后台程序用来完成准备工作和管理工作,任务的调度机制采用优先抢占调度与时间片轮转相结合的机制。 (1)优先抢占调度机制 为了满足CNC 实时任务的要求,系统的调度机制必须具有能根据外界的实时信息以足够快的速度(在系统规定的时间内)进行任务调度的能力。优先抢占调度机制就是能满足上述要求的调度技术,它是一种基于实时中断技术的任务调度机制。 优先抢占调度机制,其功能有两个: 1优先调度。在CPU 空闲时,当同时有多个任务请求执行时,优先级高的任务将优先得以满足。 2抢占方式。在CPU 正在执行某任务时,若另一优先级更高的任务请求执行,CPU 将立即终止正在执行的任务,转而响应优先级高的任务的请求。 优先抢占调度机制是由硬件和软件共同实现的,硬件主要提供支持中断功能的芯片和电路,如中断管理芯片(8259或功能相同的芯片),定时器计数器(8263、8294 等)。软件主要完成对硬件的初始化,任务优先级的定义方式、任务切换处理(断点的保护与恢复、中断向量的保存与恢复等)。 (2)时间片轮转调度机制 任务就绪队列往往按任务到达的时间来排序。任务调度程序总是选择就绪队列中的第一个任务,也就是说按照先来先服务的原则调度,即根据任务进入就绪队列的先后次序来占有CPU,一旦一任务占有CPU,它就一直运行下去,直到该任务完成其工作或因等待某事件而不能继续运行时才释放CPU,但一旦任务占有CPU 仅使用一个时间片。在使用完一个时间片后,任务还没有完成其运行,它也必须释放出(被抢占)CPU 给下一个就绪的任务。而被抢占的任务返回到就绪队列的末尾重新排队等候再次运行。 时间片的大小对系统运行的影响很大。如果时间片很大,大到一个任务足以完成其全部运行工作所需的时间,那么时间片轮转策略将退化为先来先服务策略了。如果时间片很小,那么CPU 在任务间的转接工作过于频繁,CPU 真正用于运行任务的时间将会减小。 (3)调度策略 1、确定任务优先级,突发性实时任务具有最高优先级。 2、为其它各任务分配执行周期。如位控为4ms,插补为8ms,预处理为16ms,背景程序为55ms。即在55ms时间片内,最先执行位控任务,位控任务完成后,接着执行插补任务,如果4ms 时间到,则插补将被终止,又开始执行位控,当位控执行完后,从刚才中断处接着执行插补,插补执行完后接着执行预处理,以此类推。 3、在背景程序中,各任务分配相同的优先权,当一个任务执行完后,就绪队列中最前头的任务占据CPU运行,而先前运行任务失去对CPU的控制退至队列尾,直到循环使其达到队头时才重新获得控制权,即按先来先服务的原则调度。 4、当突发性实时任务发生,如故障中断、机床PLC中断及其它异常发生时,当前正在运行的任务将立刻终止执行,系统保存现场环境后,立刻去响应突发性实时中断信号,在执行完突发

分布式环境下多任务调度问题的分析与求解

2007年5月系统工程理论与实践第5期 文章编号:100026788(2007)0520119207 分布式环境下多任务调度问题的分析与求解 何 琨,赵 勇,陈 阳 (华中科技大学控制科学与工程系系统工程研究所,武汉430074) 摘要: 将约束条件归纳为任务约束、链路约束和资源约束,在允许任务复制的情况下,建立了问题的约 束与目标的完整数学模型;提出了一种基于任务复制的模拟人类社会中关系演化过程的簇调度算法 IRE A,包括前沿调度、动态分簇和分离图三个子算法.IRE A采用全新的优先级规则,定义了关系数、依赖 度、归并度等表示簇的优先级.通过对两个经典算例的计算,发现IRE A能求出比算例所在文献算法所得 解更优的解;对M JD算例,还得到了一个不同于原文献所给理论最优格局的一个新的最优格局. 关键词: 调度算法;任务复制;有向无回路图;动态分簇;分离图 中图分类号: TP301 文献标志码: A Analysis and S olutions for Multitasks Scheduling in Distributed Environments HE K un,ZHAO Y ong,CHE N Y ang (Institute of Systems Engineering,Department of C ontrol Science and Engineering,Huazhong University of Science and T echnology,Wuhan 430074,China) Abstract: This paper addresses the problem of static scheduling multitasks with precedence constraints represented as directed acyclic graphs for execution on distributed hom ogeneous environments.The problem is strong NP2com plete, and efficient alg orithms for it will have both highly theoretical value and highly practical value.The constraints are summed up to task constraints,link constraints and res ource constraints.An integrated mathematical m odel with constraints and objective is set up.And a new heuristic approach named the Interpers onal Relationships Ev olution Alg orithm(IRE A)that is based on task duplication is proposed.IRE A resembles the ev olution of the interpers onal relationships within the human s ociety,and includes three com ponents:cutting edge alg orithm,dynamic group alg orithm and detach graph alg orithm.The priority rules used are new.Relationship number,dependent degree and merge degree are defined for cluster’s priority.I t is found that IRE A could get better s olutions for tw o classic benchmarks than the alg orithms which gave the benchmarks.Besides,IRE A gets a different optimal s olution com pared with the theory optimal one for the M JD benchmark. K ey w ords: scheduling alg orithm;task duplication;directed acyclic graph;dymanic clustering;detach graph 1 引言 分布式环境下的任务调度问题是调度理论中的经典问题,包括资源匹配(matchmaking)和任务调度(scheduling)两部分,资源匹配解决在哪里执行任务,即匹配应用需求和可用资源;任务调度解决何时执行任务,即给出应用占用资源的起止时间[1].分布式环境下的任务调度,研究内容分为调度相互独立的任务和调度相互依赖的任务两类,对相互独立的任务一般采用动态调度,对相互依赖的任务一般采用静态调度.为充分利用分布式环境的并行处理与协作能力,往往根据数据依赖关系和计算要求,将应用分解为相互依赖的多个任务,采用有向无回路图(Directed Acyclic G raph,DAG)进行描述. 分布式环境下相互依赖多任务的调度问题是强NP完全的,其近似算法的求解非常困难[2].目前的求 收稿日期:2005205209 资助项目:国家自然科学基金(70471077,60673057);高等学校博士学科点专项基金(20020487046) 作者简介:何琨,女,博士,研究方向为分布式计算、决策分析、复杂系统建模与优化;赵勇,男,博士,教授,博士生导师,研究方向为决策分析、复杂系统建模与优化;陈阳,男,博士,讲师,研究方向为决策分析、复杂系统建模与优化.

方案设计参考

太阳能道路照明装置的方案设计参考 目前太阳能路灯作为一种新型能源,有着光明的前景。 一、太阳能路灯照明的参考标准 太阳能路灯的照明由于系统各方面的限制,不可能按照市电的照明标准来要求,目前可以借鉴的主要是一些地方标准,如北京市的地方标准《太阳能光伏室外照明装置技术要求》(DB11/T542-2008),其中对于照明标准方面规定:乡村街道、道路维持水平平均照度在3-4lx,水平照度均匀度0.1~0.2,灯具的类型采用半截光型灯具。 二、太阳能路灯设计 (1)现场勘查 太阳能路灯由于采用太阳能辐射进行发电,对于路灯安装的具体地点具有特殊的要求,太阳能路灯安装前必须对安装地点进行现场勘查。勘查的内容主要有: 1、察看安装路段道路两侧(主要是南侧或东、西两侧)是否有树木、建筑等遮挡,有树木或者建筑物遮挡可能影响采光的,测量其高度以及与安装地点的距离,计算确定其是否影响太阳能电池组件采光;对太阳能光照的一般要求是太阳能光照至少能保证上午9:00至下午3:00之间不能有影响采光的遮挡。 2、观察太阳能灯具安装位置上空是否有电缆、电线或其它影响灯具安装的设施(注意:严禁在高压线下方安装太阳能灯具); 3、了解太阳能路灯基础及电池舱部位地下是否有电缆、光缆、管道或其它影响施工的设施,是否有禁止施工的标志等。安装时尽量避开以上设施,确实无法避开时,请与相关部门联系,协商同意后方可进行施工。 4、避免在低洼或容易造成积水的地段安装; 5、对安装地段进行现场拍照; 6、测量路段的宽度、长度、遮挡物高度和距离等参数,记录路向并和照片等资料一起提供给方案设计者供参考。 (2)安装布置 1、根据道路的宽度、照明要求,选择安装布灯方式: a、单侧布置 b、双侧对称布置; c、双侧交错布置

任务调度机制

ucos:uc/os 任务调度机制 疯狂代码 https://www.360docs.net/doc/1d1266302.html,/ ?: http:/https://www.360docs.net/doc/1d1266302.html,/NetworkProgramming/Article33556.html uc/os 任务调度机制 by zhang9733 from https://www.360docs.net/doc/1d1266302.html,/gd/dzbbs/ 内核核心任务是任务调度机制为了对uc/os进行分析我们从任务调度开始在uc/os中个任务通常是个无限循环具有如下结构后面我将解释为什么会有这种结构从下面结构可以看出个任务就像其他c样;而且既然任务是个无限循环我们可以想象到它定不会返回任何数据所以返回类型应该定义为void : ------------------------------------------------------------ void mytask(void *pdata) { for (;;) { do something; waiting; do something; } } uc/os可以管理64个任务但目前版本系统占用了两个任务还保留了其他六个任务故用户可以使用56个任务每个任务必须赋予定优先级优先级数越高优先级越低所以0级优先级任务有最高优先级通过在os_cfg.h文件中定义宏os_lowest_prio可以决定系统任务个数系统目前占用两个任务为空闲任务idle task和统计任务stat task当没有其他任务进入就绪状态时空闲任务投入运行空闲任务什么也不做只是简单将计数器加1这个计数器可以用来统计cpu利用率 uc/os下每个任务可以有如下五种状态 休眠态(dormant):指任务驻留在空间中还没有交给内核管理把任务交给内核是通过ostaskcreate( )或ostaskcreatext( )实现 就绪(ready):当任务旦建立这个任务就处于就绪态准备运行任务可以动态被另个建立也可以在系统运行开始之前建立通过ostaskdel( )使任务返回到休眠态就绪态任务都放在就绪列表中在任务调度时指针ostcbhighrdy指向优先级最高就绪任务也就是立刻就要运行任务 运行(running):准备就绪最高优先级任务获得cpu控制权从而处于运行态指针ostcbcur指向正在运行任务

规划设计方案-参考模板

xx项目 规划设计方案规划设计/投资分析/实施方案

承诺书 申请人郑重承诺如下: 该项目已按国家法律和政策的要求办理相关手续,报告内容及附件资料准确、真实、有效,不存在虚假申请、分拆、重复申请获得其他财政资金支持的情况。如有弄虚作假、隐瞒真实情况的行为,将愿意承担相关法律法规的处罚以及由此导致的所有后果。 公司法人代表签字: xxx集团(盖章) xxx年xx月xx日

项目概要 该xx项目计划总投资13670.73万元,其中:固定资产投资11415.47万元,占项目总投资的83.50%;流动资金2255.26万元,占 项目总投资的16.50%。 达产年营业收入17156.00万元,总成本费用12988.75万元,税 金及附加239.51万元,利润总额4167.25万元,利税总额4981.55万元,税后净利润3125.44万元,达产年纳税总额1856.11万元;达产 年投资利润率30.48%,投资利税率36.44%,投资回报率22.86%,全部投资回收期5.87年,提供就业职位300个。 报告目的是对项目进行技术可靠性、经济合理性及实施可能性的 方案分析和论证,在此基础上选用科学合理、技术先进、投资费用省、运行成本低的建设方案,最终使得项目承办单位建设项目所产生的经 济效益和社会效益达到协调、和谐统一。 木质纤维(xylemfiber)是天然可再生木材经过化学处理、机械法加 工得到的有机絮状纤维物质,广泛用于混凝土砂浆、石膏制品、木浆海棉、沥青道路等领域。可用于制造中纤板,用于家居建材行业。 报告主要内容:项目承担单位基本情况、项目技术工艺特点及优势、项目建设主要内容和规模、项目建设地点、工程方案、产品工艺

相关文档
最新文档