CN109614221B - 一种实时操作系统的应用框架及其方法 - Google Patents

一种实时操作系统的应用框架及其方法 Download PDF

Info

Publication number
CN109614221B
CN109614221B CN201811273851.8A CN201811273851A CN109614221B CN 109614221 B CN109614221 B CN 109614221B CN 201811273851 A CN201811273851 A CN 201811273851A CN 109614221 B CN109614221 B CN 109614221B
Authority
CN
China
Prior art keywords
function
thread
servicert
calls
real
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.)
Active
Application number
CN201811273851.8A
Other languages
English (en)
Other versions
CN109614221A (zh
Inventor
唐宏伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jide System Technology Co ltd
Original Assignee
Beijing Jide System Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jide System Technology Co ltd filed Critical Beijing Jide System Technology Co ltd
Priority to CN201811273851.8A priority Critical patent/CN109614221B/zh
Publication of CN109614221A publication Critical patent/CN109614221A/zh
Application granted granted Critical
Publication of CN109614221B publication Critical patent/CN109614221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种实时操作系统的应用框架,其包括freeNow函数、freeLater函数、startGC函数、StopGC函数以及setProcessPriority函数,freeNow函数用于立即释放对象所占空间;freeLater函数用于将对象记录在册,在稍后系统空闲时释放其所占空间;startGC函数用于开启垃圾收集,强制执行GC线程;StopGC函数用于停止垃圾收集,强制终止GC线程;setProcessPriority函数改变当前的服务对象的执行优先级。

Description

一种实时操作系统的应用框架及其方法
技术领域
本发明涉及操作系统技术领域,具体涉及一种实时操作系统的应用框架。
背景技术
传统操作系统缺少面向开发人员的实时的编程接口,开发人员需要选择android.app.Service进行开发,缺少提供给开发人员的系统集成环境的实时功能,进而无法实现有效的内存回收。
缺少对优先级设置的功能,无法使应用服务进入实时优先级。
发明内容
本发明的目的就在于为了解决上述问题而提供一种实时操作系统的应用框架及其开放垃圾收集的方法、优先级更改的方法,详见下文阐述。
为实现上述目的,本发明提供了以下技术方案:
本发明提供的一种实时操作系统的应用框架,其包括freeNow函数、freeLater函数、startGC函数、StopGC函数以及setProcessPriority函数;
freeNow函数用于立即释放Object对象所占空间;
freeLater函数用于将Object对象记录在册,在稍后系统空闲时释放其所占空间;
startGC函数用于开启垃圾收集,强制执行GC线程,当startGC函数执行后,系统将启用一个新的GC线程专门用来管理Object对象的销毁,该GC线程获取等待销毁的Object对象并调用freeObject函数执行实际的销毁操作;
StopGC函数用于停止垃圾收集,强制终止GC线程;
setProcessPriority函数通过选择优先级类别改变当前的服务对象的执行优先级,隐含调用renice指令并与相应的参数一起执行。
一种实时操作系统的开放垃圾收集的方法,其包括如下步骤:
步骤1,Application调用freeNow函数,由ServiceRT线程调用freeObject函数在Runtime中销毁第一对象,完成后依次返回ServiceRT线程和Application;
步骤2,Application连续调用多次freeLater函数,相应引起ServiceRT线程连续多次调用push操作,concurrentqueue线程分别将其余对象的信息记录在册便于后期执行销毁操作,并依次返回ServiceRT线程和Application;
步骤3,Application调用startGC函数,ServiceRT线程创建一个新的线程,该线程为GC线程,GC线程通过调用pop操作,依次获取了其余对象的信息,然后GC线程调用freeObject函数在Runtime中依次销毁其余对象,完成后返回GC线程;
步骤4,Application调用StopGC函数,ServiceRT线程调用terminate函数强制终止GC线程后,依次返回ServiceRT线程和Application。
步骤5,结束。
一种实时操作系统的优先级更改的方法,其包括如下步骤:
步骤1,启动新服务对象,调用new ServiceRT函数,建立ServiceRT线程,并在Android OS中注册该线程,完成初始化;
步骤2,新服务对象进入普通优先级,调用ServiceRT线程中的setProcessPriority函数,ServiceRT线程则调用Linux Kernel中的renice工具,在CoreLibraries更改新服务对象的优先级,并依次返回Linux Kernel和ServiceRT线程;
步骤3,新服务对象进入实时优先级;
步骤4,用户通过调用terminate函数来结束进入实时服务的新服务对象。
有益效果在于:
ServiceRT类利用了所有的实时特性,并以一致的方式向Android开发人员提供实时功能。为了以更方便的方式向开发人员提供实时功能,在应用程序框架级别上包括相应的编程接口。也就是将实时功能封装在一个众所周知的集成环境中给开发者使用。创建一个新的类android.app.ServiceRT类使得标准Android能够支持实时应用程序,提供内存回收和优先级管理的功能。与传统系统相比,本发明只需要开发人员在选择基类时改用android.app.ServiceRT而不是android.app.Service,并合理的使用引入的优先级管理方法和内存回收方法即可。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实时操作系统的应用框架组成示意图;
图2是本发明开放垃圾收集的方法流程图;
图3是本发明优先级更改的方法流程图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
本发明创建一个新的类android.app.ServiceRT类使得标准Android能够支持实时应用程序,主要是提供内存回收和优先级管理的功能,如图1所示。
这个类利用了所有的实时特性,并以一致的方式向Android开发人员提供实时功能。该类提供了五个函数,功能如下表1所示:
参见附图1-3,具体实施方式为:
一种实时操作系统的应用框架,其包括freeNow函数、freeLater函数、startGC函数、StopGC函数以及setProcessPriority函数,
freeNow函数用于立即释放Object对象所占空间,;
freeLater函数用于将Object函数对象记录在册,在稍后系统空闲时释放其所占空间;
freeNow函数和freeLater函数释放Object对象时,内部线程被唤醒并调用freeObject函数来释放所有记录在册的等待销毁的Object对象,同时执行主程序;
startGC函数用于开启垃圾收集,强制执行GC线程(垃圾收集线程);
当startGC函数执行后,系统将启用一个新的GC线程专门用来管理Object对象的销毁,该GC线程获取等待销毁的Object对象并调用freeObject函数执行实际的销毁操作;
StopGC函数用于停止垃圾收集,强制终止GC线程;
setProcessPriority函数通过选择优先级类别改变当前的服务对象的执行优先级,根据传递的参数,setProcessPriority函数将隐含调用renice指令(renice指令是linux系统的调整程序执行优先级的指令)并与相应的参数一起执行。
一种实时操作系统的开放垃圾收集的方法,其包括如下步骤:
步骤1,Application(应用程序)调用freeNow函数,由ServiceRT(实时服务框架)线程调用freeObject函数在Runtime(系统运行时)中销毁第一对象(O1),完成后依次返回ServiceRT线程和Application;
步骤2,Application连续调用多次freeLater函数,相应引起ServiceRT线程连续多次调用push操作,concurrentqueue线程(队列维护线程)分别将其余对象(O2、O3)的信息记录在册便于后期执行销毁操作,并依次返回ServiceRT线程和Application;
步骤3,Application调用startGC函数,ServiceRT线程创建一个新的线程,该线程为GC线程,GC线程通过调用pop操作,依次获取了其余对象(O2、O3)的信息,然后GC线程调用freeObject函数在Runtime(系统运行时)中依次销毁其余对象(O2、O3),完成后返回GC线程;
步骤4,Application调用StopGC函数,ServiceRT线程调用terminate函数强制终止GC线程后,依次返回ServiceRT线程和Application。
步骤5,结束。
其中,为了确保主应用程序不受干扰,通过使用Java中的Thread.setPriority函数降低内部线程的优先级。在主应用程序运行的同时,后台还有很多的非关键线程在运行,这些线程有可能具有较高的优先级,从而抢夺主应用程序的时间片使得总的执行时间不可控。通过Java中的Thread.setPriority函数降低非关键线程的优先级,使系统将资源优先分配给主应用程序,从而使得总执行时间可控。
一种实时操作系统的优先级更改的方法,其包括如下步骤:
步骤1,启动新服务对象,调用newServiceRT函数,建立ServiceRT线程,并在AndroidOS(安卓操作系统)中注册该线程,完成初始化;
步骤2,新服务对象进入普通优先级(非实时应用),调用ServiceRT线程中的setProcessPriority函数,ServiceRT线程则调用Linux Kernel(内核)中的renice工具,在Core Libraries(核心库)更改新服务对象的优先级,并依次返回Linux Kernel和ServiceRT线程;
步骤3,新服务对象进入实时优先级;
步骤4,用户通过调用terminate函数来结束进入实时服务的新服务对象。
在上述方法中,产生一个新的Linux进程之后,Android实例化一个新服务对象,并在系统中注册它,初始化完成,该服务将首先以普通优先级执行,也即非实时应用。随后,进程通过调用setProcessPriority函数以获取实时优先级,该方法封装了renice工具的调用,隐式的更改了Linux进程的优先级和调度类,对应的服务以实时优先级运行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (3)

1.一种实时操作系统的应用装置,其包括freeNow函数、freeLater函数、startGC函数、StopGC函数以及setProcessPriority函数;
所述freeNow函数用于立即释放Object对象所占空间;
所述freeLater函数用于将所述Object对象记录在册,在稍后系统空闲时释放其所占空间;
其中,所述freeNow函数和所述freeLater函数释放所述Object对象时,内部线程被唤醒并调用freeObject函数来释放所有记录在册的等待销毁的所述Object对象,同时执行主程序;
所述startGC函数用于开启垃圾收集,强制执行GC线程;
所述StopGC函数用于停止垃圾收集,强制终止所述GC线程;
当startGC函数执行后,系统将启用一个新的GC线程专门用来管理Object对象的销毁,该GC线程获取等待销毁的Object对象并调用freeObject函数执行实际的销毁操作;
所述setProcessPriority函数通过选择优先级类别改变当前的服务对象的执行优先级,隐含调用renice指令并与相应的参数一起执行;所述renice指令是linux系统的调整程序执行优先级的指令。
2.一种实时操作系统的开放垃圾收集的方法,其包括如下步骤:
步骤1,Application调用freeNow函数,由ServiceRT线程调用freeObject函数在Runtime中销毁第一对象,完成后依次返回ServiceRT线程和Application;
步骤2,Application连续调用多次freeLater函数,相应引起ServiceRT线程连续多次调用push操作,concurrentqueue线程分别将其余对象的信息记录在册便于后期执行销毁操作,并依次返回ServiceRT线程和Application;
步骤3,Application调用startGC函数,ServiceRT线程创建一个新的线程,该线程为GC线程,GC线程通过调用pop操作,依次获取其余对象信息,然后GC线程调用freeObject函数在Runtime中依次销毁其余对象,完成后返回GC线程;
步骤4,Application调用StopGC函数,ServiceRT线程调用terminate函数强制终止GC线程后,依次返回ServiceRT线程和Application;
步骤5,启动新服务对象,调用new ServiceRT函数,建立ServiceRT线程,并在AndroidOS中注册该线程,完成初始化;
新服务对象进入普通优先级,调用ServiceRT线程中的setProcessPriority函数,ServiceRT线程则调用Linux Kernel中的renice工具,在Core Libraries更改新服务对象的优先级,并依次返回Linux Kernel和ServiceRT线程;
新服务对象进入实时优先级;
用户通过调用terminate函数来结束进入实时服务的新服务对象。
3.根据权利要求2所述一种实时操作系统的开放垃圾收集的方法,其特征在于:通过使用Java中的Thread.setPriority函数降低内部非关键线程的优先级,使系统将资源优先分配给主应用程序,从而使得总执行时间可控。
CN201811273851.8A 2018-10-30 2018-10-30 一种实时操作系统的应用框架及其方法 Active CN109614221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811273851.8A CN109614221B (zh) 2018-10-30 2018-10-30 一种实时操作系统的应用框架及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811273851.8A CN109614221B (zh) 2018-10-30 2018-10-30 一种实时操作系统的应用框架及其方法

Publications (2)

Publication Number Publication Date
CN109614221A CN109614221A (zh) 2019-04-12
CN109614221B true CN109614221B (zh) 2024-01-09

Family

ID=66002578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811273851.8A Active CN109614221B (zh) 2018-10-30 2018-10-30 一种实时操作系统的应用框架及其方法

Country Status (1)

Country Link
CN (1) CN109614221B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101226487A (zh) * 2008-01-30 2008-07-23 中国船舶重工集团公司第七〇九研究所 基于嵌入式Linux操作系统的内核级线程库的实现方法
CN105005473A (zh) * 2015-06-29 2015-10-28 乐道互动(天津)科技有限公司 一种用于开发3d游戏的游戏引擎系统
CN107273141A (zh) * 2017-07-10 2017-10-20 无锡走向智能科技有限公司 嵌入式实时操作系统
CN107315634A (zh) * 2017-07-05 2017-11-03 深圳天珑无线科技有限公司 分身应用策略处理方法、移动终端及可读存储介质
CN107635256A (zh) * 2017-09-22 2018-01-26 四川长虹电器股份有限公司 基于Android系统应用动态调整QoS的方法
CN108052388A (zh) * 2017-11-24 2018-05-18 武汉斗鱼网络科技有限公司 一种Android中内存回收方法及装置
CN108153597A (zh) * 2017-12-22 2018-06-12 西安烽火电子科技有限责任公司 一种linux设备管理模型及方法
CN108509263A (zh) * 2018-03-28 2018-09-07 深圳酷泰丰科技有限公司 一种后台进程管理方法和系统
CN108595259A (zh) * 2017-03-16 2018-09-28 哈尔滨英赛克信息技术有限公司 一种基于全局管理的内存池管理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489202B2 (en) * 2014-12-30 2019-11-26 NetSuite Inc. System and methods for implementing control of use of shared resource in a multi-tenant system
US11169707B2 (en) * 2016-01-22 2021-11-09 Netapp, Inc. Garbage collection pacing in a storage system
JP6971016B2 (ja) * 2016-04-07 2021-11-24 オムロン株式会社 制御装置、制御方法およびプログラム
US10860377B2 (en) * 2017-03-22 2020-12-08 Salesforce.Com, Inc. Technologies for identifying thread memory allocation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101226487A (zh) * 2008-01-30 2008-07-23 中国船舶重工集团公司第七〇九研究所 基于嵌入式Linux操作系统的内核级线程库的实现方法
CN105005473A (zh) * 2015-06-29 2015-10-28 乐道互动(天津)科技有限公司 一种用于开发3d游戏的游戏引擎系统
CN108595259A (zh) * 2017-03-16 2018-09-28 哈尔滨英赛克信息技术有限公司 一种基于全局管理的内存池管理方法
CN107315634A (zh) * 2017-07-05 2017-11-03 深圳天珑无线科技有限公司 分身应用策略处理方法、移动终端及可读存储介质
CN107273141A (zh) * 2017-07-10 2017-10-20 无锡走向智能科技有限公司 嵌入式实时操作系统
CN107635256A (zh) * 2017-09-22 2018-01-26 四川长虹电器股份有限公司 基于Android系统应用动态调整QoS的方法
CN108052388A (zh) * 2017-11-24 2018-05-18 武汉斗鱼网络科技有限公司 一种Android中内存回收方法及装置
CN108153597A (zh) * 2017-12-22 2018-06-12 西安烽火电子科技有限责任公司 一种linux设备管理模型及方法
CN108509263A (zh) * 2018-03-28 2018-09-07 深圳酷泰丰科技有限公司 一种后台进程管理方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Maxim Anikeev."Secure garbage collection: Preventing malicious data harvesting from deallocated Java objects inside the Dalvik VM".《Journal of Information Security and Applications》.2015,第22卷第81-86页. *
王溪波."复杂实时应用系统设计实现的关键技术研究".《中国博士学位论文全文数据库 信息科技辑》.2015,(2015年第07期),第I138-24页. *

Also Published As

Publication number Publication date
CN109614221A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
KR102150774B1 (ko) 단말기 애플리케이션을 로딩하기 위한 방법 및 장치
Kalkov et al. A real-time extension to the Android platform
KR100898315B1 (ko) 인핸스드 런타임 호스팅
US9003410B2 (en) Abstracting a multithreaded processor core to a single threaded processor core
US9354856B2 (en) Software installation method and device
CN106445617B (zh) 基于Android的应用程序冷启动优化方法及系统
US20120304173A1 (en) System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment
CN111414256B (zh) 基于麒麟移动操作系统的应用程序进程派生方法、系统及介质
EP2834744B1 (en) System and method for memory management
CN106502773B (zh) 具有同步回调信息功能的数据异步处理方法及模块
WO2016112625A1 (zh) 一种在预设嵌入式系统中实现脚本操作的系统
CN116225728B (zh) 基于协程的任务执行方法、装置、存储介质及电子设备
CN112035318A (zh) 一种异常进程的定位方法、系统及相关装置
CN112650541B (zh) 一种应用程序启动加速方法、系统、设备及存储介质
US20240320055A1 (en) Cloud instance scaling method and related device thereof
CN112068970A (zh) 基于异构多核处理器的rpc实现方法及介质
CN107368498B (zh) 优化MySQL悲观锁的锁等待超时时间的方法及装置
CN109614221B (zh) 一种实时操作系统的应用框架及其方法
CN113918336A (zh) 基于多核CPU的FreeRTOS运行任务方法及装置
WO2021120693A1 (zh) 一种新旧代码共同运行的kbroker分布式操作系统
CN112256419A (zh) 一种基于定时器时钟控制的嵌入式系统多任务调度方法
CN101976206B (zh) 一种中断处理方法和装置
CN113296802B (zh) 虚拟机热升级方法、主机设备及存储介质
JP2013522710A (ja) Itシステムの構成方法、そのコンピュータプログラムおよびitシステム
CN117931483B (zh) 操作系统及生成方法、电子设备、存储介质和程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: A102, courtyard 8, No. 4, Qinghe East Binhe Road, Haidian District, Beijing 100083

Applicant after: Beijing Jide System Technology Co.,Ltd.

Address before: A102, courtyard 8, No. 4, Qinghe East Binhe Road, Haidian District, Beijing 100083

Applicant before: BEIJING JIDE TERMINAL TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant