CN106325983A - 一种内存占用小、支持并发的微程模型及调度方法 - Google Patents
一种内存占用小、支持并发的微程模型及调度方法 Download PDFInfo
- Publication number
- CN106325983A CN106325983A CN201510365867.1A CN201510365867A CN106325983A CN 106325983 A CN106325983 A CN 106325983A CN 201510365867 A CN201510365867 A CN 201510365867A CN 106325983 A CN106325983 A CN 106325983A
- Authority
- CN
- China
- Prior art keywords
- shred
- state
- program
- micro
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明针对大多数无线传感网络中传感微节点的内存小、有特殊实时性等需求,提出一个新的并发编程模型:微程模型,并提出基于该微程并发模型的调度方法。
Description
技术领域
本发明涉及一种新的编程模型-微程,并基于此的调度方法,可用于在无线传感网络中传感器微节点操作系统中的程序模型支持。本发明属于计算机技术领域。
背景技术
无线传感网络的产生和发展,物联网、互联网的融合,对于推动普适计算具有极其重要的意义。各种各样的感知节点通过协议组网,形成无线传感网络,这些感知节点的类型多种多样,形成底层传感网络的数据采集和节点控制功能。传感网络从无操作系统、无软件平台状态,逐步形成操作系统和软件平台。由于大多数传感节点是资源极为有限的,需要提出特殊的节电、资源分配、调度的技术,同时又根据应用系统的需要,有实时性要求,传统的嵌入式系统的编程模型在许多方面需要改进。
操作系统技术无疑是无线传感网络的重要支撑技术之一。由于无线传感网络应用在功能和性能方面的特殊性,要求操作系统能够高效地组织和管理硬件资源。对于传感器网络中单个传感微节点而言,具有硬件资源有限、节点的计算能力和存储能力都很小的特点,通常一个传感微节点可能只有几K字节的内存。另外,无线传感网络应用也有其特点,一是它的并发性很密集,即可能存在多个需要同时执行的逻辑控制,需要操作系统能够有效的完成这种频繁发生、并发程度高、执行过程比较短的逻辑控制事务;二是无线传感网络应用的相关性很强,不同的应用对实时性等性能参数要求也不同,操作系统本身需要提供不同的机制来满足这些需求。
调度方法是操作系统的核心机制,它代表操作系统向上层应用程序提供什么样的调度和执行机制,在很大程度上决定了操作系统的特性。无线传感器网络常常需要处理一些频繁发生的、执行过程比较短的事务。但是当前主流操作系统的事件例程都采用了“run-to-completion”的执行方式,无法保证系统的实时性。无线传感器网络的应用又是多样性的,对那些没有实时性要求的应用或任务也需要提供很好的支持。目前,在一般的嵌入式系统中采用的进程、线程并发模型,对于极端受限的微节点也是代价过大;所以,有的系统实现则利用一个程序循环的机制代替并发处理,实际上并非是并发处理机制。总之,对于无线传感网络中的传感微节点操作系统来讲,并发模型的设计是一个核心和困难的问题。
发明内容
本发明的目的,在于提供一种可用于在无线传感网络中传感微节点操作系统中的程序模型,并提出其调度方法。按该程序模型调度的操作系统实现,可以满足无线传感网络的内存小同时有并发机制的需求。
任务调度是操作系统的核心问题,是解决任务并发性、同步互斥及任务间通信的关键。除了有的传感操作系统将线程称作任务外(有的文章把线程误认成为本发明所提出的微程,应该还原其线程的本来面目),现有支持事件的系统一般要求任务是一个连续执行不能阻塞的程序段,这样在应用设计阶段就增加了任务设计划分的难度,增加了应用程序设计的难度。实际的任务一般是执行一段时间后需要等待某个事件,等该事件发生后接着执行,此时就只能将一个完整任务分解为若干个任务才能符合这种实时系统的要求。
在本发明中,考虑到传感系统的资源受限问题和并发性的特点,提出了“微程”并发模型。
在本发明中,微程是任务的一种,是一个或一系列开放的程序段的执行过程,是本操作系统的基本调度单位之一。微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞,这样的设计是考虑到很多传感节点的任务有典型的特点:周期性,事件响应。这样,微程就提供了并发执行的最小单位,可以以此为基础设计调度算法。通过配置支持不同级别的任务,可以有效地适应不同类型的资源受限传感节点硬件。
操作系统每次调度任务的一个程序段。调度的结果是任务完成或任务进入阻塞状态。微程有自己的状态转换图,如下说明。
就绪态:微程处于就绪态,表示此微程已经具备运行条件,随时可以执行;只是由于目前微处理器正在执行优先级更高的微程而暂时无法得到执行。所有就绪的微程,按照截止时间排在一个就绪队列中,截止时间最早的微程排在队列最前面。
执行态:表示该微程当前正在执行。处于执行态的微程来源于就绪态或者被抢占态的微程。如果有更早截止时间微程就绪,当前执行的微程会被抢占而转到被抢占态;如果当前执行的微程由于请求资源而得不到满足,则会转入到阻塞态,调度程序会重新调度就绪或者被抢占的微程;如果当前执行的微程执行完毕,则进入到完成态,退出调度。
被抢占态:该状态表示微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置。当前执行的微程执行完毕或者被阻塞时,调度程序会选择处于被抢占态和就绪态中截止时间最早的微程,进入执行态。
阻塞态:执行中的微程由于请求资源而得不到满足会进入到阻塞态;当请求的资源可用时,会从阻塞态进入到就绪态。
完成态:表示该微程目前已经执行完毕。
一个逻辑上统一的微程在系统中的实现也是一个微程,有一个统一的截止时间,并不会分成多个微程。如果微程中有资源访问等阻塞操作,则将微程分段(Section)。也就是说,每个微程可以由多个程序段(Section)组成,每个程序段必须连续运行不会阻塞,但是程序段之间可以阻塞。
与一般实时任务不同的是,本发明考虑了相邻段之间阻塞的时间。只要分析计算出段与段之间的最大阻塞时间值,以及每一段程序的执行时间,便可以确定每个程序段的截止时间。每个段的截止时间是与整个微程的截止时间相关联的,根据每个段的截止时间,每次调度微程的一个程序段。
这种将微程分成多个程序段,而不是分成多个微程方案,不但减少了代码量,同时也保证了系统会根据逻辑上统一的事务的实际截止时间来调度。解决了一般实时系统中将一个逻辑任务分为多个运行任务的截止时间问题。
一个微节点系统的设计则可以有多个微程。所有的微程则共享一个应用堆栈,由调度机制进行调度。实际上微程是为线程模型提供了一种最大程度节约内存的方法,这在大一些的系统中实际是不需要的,但在传感微节点中确实是必要的。这样做的好处就是比线程调度节省了应用堆栈的空间,同时又可以根据传感结点应用程序功能的特点,满足并发的实时性要求。
提出微程并发模型后,解决了进程和线程占用资源相对较多的问题。作为适应不同资源大小的技术,同时又可以采用统一的节点操作系统,使系统中的应用程序模型规范统一,基于本发明的操作系统可以提供综合的任务调度,即任务调度优先的微程任务与线程的混合调度策略,包括微程调度、线程调度和后台事务调度。微程调度优先级最高,其次是线程调度,后台事务调度优先级最低。此不作为本发明的内容。
本发明适用于无线传感网络传感节点操作系统,能够满足完成频繁的并发性任务这项重要需求,也能满足应用的多样性需求。
附图说明:
图1 微程状态转换图;
图2 微程的程序段(Section);
图3 微程调度示意图。
具体实施方式:
本发明的目的,在于提供一种可用于在无线传感网络中传感微节点操作系统中的程序模型,并提出其调度方法。按该程序模型调度的操作系统实现,可以满足无线传感网络的内存小同时有并发机制的需求。
对于无线传感网中大部分传感节点有限的硬件资源,其硬件资源的充分性程度从极度微小到我们普通的嵌入式设备的一般性资源,总体上需要充分发挥有限资源利用率的最大化,还要保证系统响应的实时性等特点,同时也能满足应用的多样性需求,对那些没有实时性要求的应用或任务提供很好的支持。这样的要求无论是事件驱动并发模型还是一般嵌入式设备的进程、线程并发模型都不能满足要求。
在本发明中,微程是任务的一种,是一个或一系列开放的程序段的执行过程,是本操作系统的基本调度单位之一。微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞,这样的设计是考虑到很多传感节点的任务有典型的特点:周期性,事件响应。这样,微程就提供了并发执行的最小单位,可以以此为基础设计调度算法。通过配置支持不同级别的任务,可以有效地适应不同类型的资源受限传感节点硬件。
一个逻辑上统一的微程在系统中的实现也是一个微程,有一个统一的截止时间,并不会分成多个微程。如果微程中有资源访问等阻塞操作,则将微程分段(Section)。也就是说,每个微程可以由多个程序段(Section)组成,每个程序段必须连续运行不会阻塞,但是程序段之间可以阻塞。
与一般实时任务不同的是,我们考虑了相邻段之间阻塞的时间。只要分析计算出段与段之间的最大阻塞时间值,以及每一段程序的执行时间,我们便可以确定每个程序段的截止时间。很明显,每个段的截止时间是与整个微程的截止时间相关联的。本操作系统便可以根据每个段的截止时间,每次调度微程的一个程序段。如果该程序段的返回值非0,表示该微程完成,如果该程序段的返回值为0,表示微程进入了阻塞状态。
这种将微程分成多个程序段,而不是分成多个微程方案,不但减少了代码量,同时也保证了系统会根据逻辑上统一的事务的实际截止时间来调度。解决了一般实时系统中将一个逻辑任务分为多个运行任务的截止时间问题。
提出微程并发模型后,解决了进程和线程占用资源相对较多的问题。下面结合相应的附图说明系统实现方法的关键点。
图1说明微程运行在以下五个状态之一。
就绪态:微程处于就绪态的表示此微程阻塞条件已经释放,随时可以执行;只是由于目前微处理器正在执行优先级更高的微程而暂时无法得到执行。所有就绪的微程按照截止时间排在一个就绪队列中,截止时间最早的微程排在队列最前面。
执行态:表示该微程当前正在执行。处于执行态的微程来源于就绪态或者被抢占态的微程。如果有更早截止时间微程就绪,当前执行的微程会被抢占而转到被抢占态;如果当前执行的微程由于请求资源而得不到满足,则会转入到阻塞态,调度程序会重新调度就绪或者被抢占的微程;如果当前执行的微程执行完毕,则进入到完成态,退出调度。
被抢占态:表示该状态表示微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置。当前执行的微程执行完毕或者被阻塞时,调度程序会选择处于被抢占态和就绪态中截止时间最早微程进入执行态。
阻塞态:执行中的微程由于请求资源而得不到满足会进入到阻塞态;当请求的资源可用时,会从阻塞态进入到就绪态。
完成态:表示该微程目前已经执行完毕。
图2说明微程的程序段划分。
图3说明调度器如何在微程调度模式下,对微程进行调度的。使用两个队列和一个运行时栈来管理提交的微程,等待队列(wait queue),存放等待释放的微程,当一个微程放弃处理器使用或者到达截止时间时,会被放入这个队列;当等待队列中的某个微程被释放后,会进入下一个队列,也即就绪队列(release queue),就绪队列中存放那些已经被释放但是还没有开始执行的微程。就绪队列中的微程以截止时间进行排序,符合最早截止时间优先(EDFI)算法。运行时栈存放已经开始执行的微程;最顶端的微程是当前正在执行的微程,其它微程是被抢占的微程,每个微程都是被在栈中紧邻在它们上面的微程所抢占。
一般地,从操作系统的角度说,整个系统只有一个线程的上下文中运行微程。
Claims (5)
1.一种微程并发模型,用于无线传感网络中资源受限传感微节点,其特征是,微程是任务的一种,是一个或一系列开放的程序段的执行过程;一个微程包含一至多个有限的代码节,程序段内连续执行,程序段间可以阻塞。
2.如权利要求1中所述的微程,其特征是,在微程调度模式下,微程是基于此模型的操作系统基本调度单位。
3.如权利要求1中所述的微程,其特征是,其程序段的单次执行时间是计算的;该计算结果用于调度计算中。
4.权利要求1中所述的微程,其调度方法的特征是,微程状态包含就绪态、执行态、被抢占态、阻塞态和完成态;微程处于就绪态时,表示此微程随时可以执行;处于执行态时,表示该微程当前正在执行;处于执行态的微程来源于就绪态或者被抢占态的微程;处于被抢占态时,表示该微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置;处于阻塞态时,执行中的微程由于请求资源而得不到满足会进入到阻塞态。
5.如权利要求1中所述的微程,其调度方法的特征是,不同微程的调度只使用一个堆栈,即只有一个上下文运行环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510365867.1A CN106325983A (zh) | 2015-06-29 | 2015-06-29 | 一种内存占用小、支持并发的微程模型及调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510365867.1A CN106325983A (zh) | 2015-06-29 | 2015-06-29 | 一种内存占用小、支持并发的微程模型及调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106325983A true CN106325983A (zh) | 2017-01-11 |
Family
ID=57722391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510365867.1A Pending CN106325983A (zh) | 2015-06-29 | 2015-06-29 | 一种内存占用小、支持并发的微程模型及调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106325983A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874511A (zh) * | 2018-06-15 | 2018-11-23 | 国家电网公司东北分部 | 一种基于微线程技术的通信服务快速响应系统 |
CN111984328A (zh) * | 2020-04-30 | 2020-11-24 | 中科院计算所西部高等技术研究院 | 具有ooda循环分区机制的流式处理器 |
-
2015
- 2015-06-29 CN CN201510365867.1A patent/CN106325983A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874511A (zh) * | 2018-06-15 | 2018-11-23 | 国家电网公司东北分部 | 一种基于微线程技术的通信服务快速响应系统 |
CN111984328A (zh) * | 2020-04-30 | 2020-11-24 | 中科院计算所西部高等技术研究院 | 具有ooda循环分区机制的流式处理器 |
CN111984328B (zh) * | 2020-04-30 | 2023-01-20 | 中科院计算所西部高等技术研究院 | 具有ooda循环分区机制的流式处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912401B (zh) | 一种分布式数据批处理系统和方法 | |
CN101452404B (zh) | 一种嵌入式操作系统的任务调度装置及方法 | |
Guo et al. | Improving mapreduce performance in heterogeneous network environments and resource utilization | |
CN102253857B (zh) | 一种多核环境下的Xen虚拟机调度控制方法 | |
Hashem et al. | MapReduce scheduling algorithms: a review | |
CN104915407A (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
Xie et al. | Mixed real-time scheduling of multiple dags-based applications on heterogeneous multi-core processors | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN109582448A (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN105389206A (zh) | 一种云计算数据中心虚拟机资源快速配置方法 | |
Lai et al. | Sol: Fast distributed computation over slow networks | |
Kao et al. | Data-locality-aware mapreduce real-time scheduling framework | |
El Khoury et al. | Energy-aware placement and scheduling of network traffic flows with deadlines on virtual network functions | |
CN111459622A (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN103257900A (zh) | 减少cpu占用的多处理器上实时任务集资源预留方法 | |
Wang et al. | A Smart Semipartitioned Real‐Time Scheduling Strategy for Mixed‐Criticality Systems in 6G‐Based Edge Computing | |
CN118312289A (zh) | 一种异构多处理器通用并行任务调度方法 | |
Xu et al. | Optimization for speculative execution in a MapReduce-like cluster | |
CN106325983A (zh) | 一种内存占用小、支持并发的微程模型及调度方法 | |
CN103268261A (zh) | 一种适用于大规模高效能计算机的层次式计算资源管理方法 | |
CN102163163A (zh) | 无线传感器网络传感器小节点操作系统及其实现方法 | |
CN101299758B (zh) | 一种大规模事件处理的规则群组系统及处理方法 | |
Khalil et al. | Survey of Apache Spark optimized job scheduling in Big Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170111 |