[发明专利]一种多进程同步控制方法在审
申请号: | 201610113440.7 | 申请日: | 2016-02-29 |
公开(公告)号: | CN105760216A | 公开(公告)日: | 2016-07-13 |
发明(设计)人: | 郭石玉 | 申请(专利权)人: | 惠州市德赛西威汽车电子股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 温旭 |
地址: | 516006 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 同步 控制 方法 | ||
技术领域
本发明涉及多进程嵌入式系统技术领域,特别是涉及一种多进程同步控制方法。
背景技术
当前,在车载嵌入式系统,如汽车音响导航设备中,已采用多进程设计来增强处理的实时性,从而提高系统的工作效率。在多程程系统中,被加载到内存中执行的程序实例,称之为进程(process)。一个进程从建立到终止,全由操作系统的核心掌握。操作系统的内部有一个进程队列,针对进程的状态和需求,根据不同的算法安排执行的顺序。每个进程会分配一小段CPU时间,该时间结束后CPU马上切换到其它进程执行,这种在各种进程之间切换执行,在计算机术语上称为上下文切换(contextswitch)。
在多进程嵌入式系统中,多进程之间竞争访问共享资源(各个进程都可以使用的资源,例如存储于内存单元中的某一数据)有时会造成数据不一致,从而导致系统崩溃,因此在多进程系统中都需要实现进程的同步控制,防止各个进程对共享资源的不安全访问。
传统技术中,多进程系统采用信号量机制来同步控制各个线程对共享资源的访问。进程在访问共享资源时,都需要通过操作系统接口来调用信号量机制相关的函数,例如当有一个进程试图获得一个已经被持有的信号量时,基于信号量机制,操作系统会将该进城放入等待队列(例如通过调用wait函数),然后让其睡眠,而当持有信号量的进程释放共享资源后,将等待队列中的进程唤醒(如wake-up函数),从而使该进程能够访问共享资源。传统技术中,同步控制都需要调用操作系统接口来完成,比较消耗CPU资源,然后实际中各个进程对共享资源访问的频率和占用时间都不尽相同,频繁的调用来申请信号量和释放信号量,会导致系统的性能浪费,降低效率。
发明内容
基于此,有必要提供一种多进程同步控制方法,针对多进程系统中不同进程对共享资源访问和占用时间不同的情况,能够避免频繁地调用信号量机制的相关函数,避免CPU性能浪费。
一种多进程同步控制方法,包括:
构建共享资源对应的共享变量,并对所述共享变量赋初值;所述共享变量为非负数时,标识所述共享资源当前可以被对应数目的进程访问,所述共享变量为负数时,标识当前正在等待访问所述共享资源的进程数目;
当一进程需要访问共享资源,根据所述共享变量判断所述共享资源是否可以被立即访问,并对所述共享变量执行减一操作;若所述共享资源可以被立即访问,则由进程访问所述共享资源,否则,调用操作系统同步控制接口,使进程进入等待队列;
当一进程需要结束对共享资源的访问,根据所述共享变量判断所述共享资源是否有其它等待访问的进程,并对所述共享变量执行加一操作;若不存在其它等待访问的进程,则直接释放所述共享资源,否则,调用操作系统同步控制接口,唤醒等待队列中最优先的进程访问所述共享资源。
在一个实施例中,所述减一操作和所述加一操作均为原子操作。
在一个实施例中,在进程访问所述共享资源之后,所述方法还包括进程之间进行上下文切换的过程。
在一个实施例中,所述调用操作系统同步控制接口,使进程进入等待队列的步骤,包括:
调用wait函数,使进程进入等待队列。
在一个实施例中,所述调用操作系统同步控制接口,唤醒等待队列中最优先的进程访问所述共享资源的包括:
调用wake-up函数,使等待队列中最优先的进程访问所述共享资源。
在一个实施例中,所述共享变量的初值为1。
上述多进程同步控制方法,针对不同进程对共享资源访问和占用时间不同的情况下来利用共享变量来标识共享资源的状态,避免频繁地调用操作系统接口函数,减少进程进入传统的信号量机制处理的几率,从而避免CPU资源的浪费。
附图说明
图1为一个实施例中的多进程同步控制方法的流程示意图;
图2为又一个实施例中的多进程同步控制方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,在一个实施例中,提供了一种多进程同步控制方法,该方法包括:
一种多进程同步控制方法,包括:
步骤101,构建共享资源对应的共享变量,并对共享变量赋初值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于惠州市德赛西威汽车电子股份有限公司,未经惠州市德赛西威汽车电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610113440.7/2.html,转载请声明来源钻瓜专利网。