首页> 中国专利> 一种阻止进程继承关系产生环路的方法

一种阻止进程继承关系产生环路的方法

摘要

本发明公开了一种阻止进程继承关系产生环路的方法,用于一通用计算机操作系统,其包括以下步骤:系统为当前存在的所有进程建立一继承关系表,用于记录每个进程与其子进程的继承关系;在进程继承关系切换前备份所述进程继承关系表,并按照切换要求修改所述进程继承关系表;对该进程继承关系表进行轮询,判断其中进程与子进程继承关系是否存在环路。本发明方法由于采用了通过根据进程继承关系表与轮询判断结果,进行进程继承关系切换的方法,有效地防止了人为操作错误导致进程继承关系产生环路的可能,提高了操作系统的可靠性,同时也提高了整个操作系统的工作效率。

著录项

  • 公开/公告号CN101299196A

    专利类型发明专利

  • 公开/公告日2008-11-05

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200810067096.8

  • 发明设计人 杨凡;

    申请日2008-05-04

  • 分类号G06F9/48(20060101);G06F11/14(20060101);

  • 代理机构44268 深圳市君胜知识产权代理事务所;

  • 代理人杨宏

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-17 20:58:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-19

    未缴年费专利权终止 IPC(主分类):G06F9/48 授权公告日:20110921 终止日期:20180504 申请日:20080504

    专利权的终止

  • 2018-02-09

    著录事项变更 IPC(主分类):G06F9/48 变更前: 变更后: 申请日:20080504

    著录事项变更

  • 2018-01-02

    专利权的转移 IPC(主分类):G06F9/48 登记生效日:20171214 变更前: 变更后: 申请日:20080504

    专利申请权、专利权的转移

  • 2011-09-21

    授权

    授权

  • 2008-12-31

    实质审查的生效

    实质审查的生效

  • 2008-11-05

    公开

    公开

查看全部

说明书

技术领域

本发明涉及一种计算机操作系统中切换进程继承关系的方法,尤其涉及一种计算机操作系统中阻止进程继承关系产生环路的方法。

背景技术

现有技术中,进程通常作为调度和资源控制的最小单元存在,进程之间通常具有继承关系。新生成的进程一般由操作系统指派一个已存在的进程作为其父进程,而该新进程称为其父进程的子进程。有些操作系统允许用户在系统正常运行时,通过命令自行手动切换进程之间的父子关系。

为了便于理解,举例来说明进程之间的父子关系。假设操作系统中存在如下4个进程:A、B、C以及D,它们之间关系如图1所示。其中A是B与C的父进程,C是D的父进程,同时B与C为A的子进程,D又是C的子进程。

现有技术中,由于操作系统设置有人工手动切换进程继承关系功能,因此,有可能由于人为的不当操作而导致系统中进程的继承关系产生环路,如图2所示,A是B的父进程,B是C的父进程,而C又是A的父进程。A,B和C之间形成了环路。

在操作系统中,进程继承关系形成环路,后果非常严重,因为进程是资源控制的最小单元,当某个进程终止后,操作系统将指派其父进程接管或处理该进程的残余资源。如图1所示,当进程B先于进程A终止,则操作系统将进程B中的所有残余资源统一托管给进程A处理;当进程B提前终止,则其残余资源由进程A托管;如果进程A再终止,资源由进程C托管;当进程C再终止时,则操作系统尝试将资源托管给早已终止的进程B,从而造成整个操作系统瘫痪。

因此,现有技术有待于改进与发展。

发明内容

本发明的目的在于提供一种阻止进程继承关系产生环路的方法,通过根据进程继承关系表与轮询判断结果,进行进程继承关系切换的方法,有效地阻止人为操作失误,导致进程继承关系产生环路的可能。

本发明的技术方案如下:

一种阻止进程继承关系产生环路的方法,用于一通用计算机操作系统,其包括以下步骤:

A、系统为当前存在的所有进程建立一继承关系表,用于记录每个进程与其子进程的继承关系;

B、在进程继承关系切换前备份所述进程继承关系表,并按照切换要求修改所述进程继承关系表;

C、对该进程继承关系表进行轮询,判断其中进程与子进程继承关系是否存在环路。

所述的方法,其中,所述步骤C还包括:在所述进程与子进程继承关系存在环路时,用所述备份进程继承关系表恢复所述进程继承关系表。

所述的方法,其中,所述步骤C还包括:在所述进程与所述子进程继承关系不存在环路时,进行进程继承关系的切换操作。

所述的方法,其中,所述步骤C还包括:删除备份进程继承关系表。

所述的方法,其中,所述步骤C中所述轮询过程包括以下步骤:

C11、传递并记录轮询的进程之途径序号参数。

所述的方法,其中,所述步骤C11之后还包括:

C21、当各进程的途径序号参数显示为单次记录,则所述进程与所述子进程继承关系不存在环路。

所述的方法,其中,所述步骤C11之后还包括:

C22、当进程之途径序号参数中显示初始参数与终了参数相同,判断为所述进程与子进程继承关系存在环路。

所述的方法,其中,所述步骤C11中,所述轮询为从被切换的子进程开始,且各子进程逐级轮询与其对应的子进程。

所述的方法,其中,所述步骤C11之后还包括:

C23、当进程的途径序号参数中显示有两次或两次以上的记录,则判断为系统切换前已存在进程与子进程的继承关系存在环路,系统提示切换异常,并终止继承关系切换操作。

本发明所提供的一种阻止进程继承关系产生环路的方法,由于采用了通过根据进程继承关系表与轮询判断结果,进行进程继承关系切换的方法,有效地防止了人为操作错误导致进程继承关系产生环路的可能,提高了操作系统的可靠性,同时也提高了整个操作系统的工作效率。

附图说明

图1是现有技术的进程继承关系示意图;

图2是现有技术的进程继承关系产生环路示意图;

图3为本发明方法切换不造成环路轮询过程中,切换前的进程继承关系图;

图4为本发明方法切换不造成环路轮询过程中,切换后的进程继承关系图

图5为本发明方法切换造成环路轮询过程中,切换前的进程继承关系图;

图6为本发明方法切换造成环路轮询过程中,切换后的进程继承关系图;

图7为本发明方法切换前已存在环路轮询过程中,切换前的进程继承关系图;

图8是本发明方法切换前已存在环路轮询过程中,切换后的进程继承关系图。

具体实施方式

以下结合附图,将对本发明各较佳实施例进行更为详细的描述。

在本发明切换进程继承关系操作系统中,首先建立进程继承关系表,即系统为当前存在的所有进程建立一张继承关系表。该表记录着每个进程与其子进程的关系。如表1记录着如图1所示的对应进程继续关系。

  进程  A  B  C  D  子进程  B、C  空  D  空

表1

本实施例根据进程继承关系表,判断用户进行继承关系切换之后是否有环路产生,其包括以下步骤:

SA、备份未切换前的进程继承关系表到一备份进程继承关系表,并按切换要求修改进程继承关系表;

SB、轮询子进程:从被切换的子进程开始轮询,并各自顺次逐步轮询各自的子进程,即如果子进程下面还有子进程,则该子进程再向其子进程轮询,直至所有进程没有子进程为止;

SC、传递并记录轮询进程途径序号参数:在轮询过程中,每次轮询后,都会向下一个子进程节点传递轮询途径的所有进程的途径序号参数,并将该参数记录下来,直至所有被轮询的进程节点都无子节点,或者轮询过程中被判定有环路产生为止;

SD、根据所记录的所有进程途径序号参数,判断进程继承关系是否有环路,即当所有途径序号参数为单次显示,进程继承关系正常,则启动切换,并删除所述备份进程继承关系表;当进程途径序号参数起始参数与终了参数相同时,则说明进程继承关系产生环路,则终止切换,并恢复到所述备份进程继承关系表中。

有些进程继承关系切换过程中没有直接造成环路,但操作系统中由于其他操作失误已经造成了环路的存在,在上述实施例过程能判断出来。判断准则为所记录的进程途径序号参数中包含有两个或两个以上当前正在轮询的进程途径序号参数,即已存在进程继承关系环路,则系统显示提示出现异常,终止本次进程继承关系的切换。

下面对各种切换状态下的轮询过程作更加具体的说明,其中,各切换状态前后的进程继承关系图中的A、B、C、D、E、F分别代表A进程、B进程、C进程、D进程、E进程、F进程。

1、切换后不造成环路的情况的轮询过程

切换前各进程继承关系如图3所示,其中A为B、E的父进程,B为C、D的父进程。D又为F的父进程;同时B、E为A的子进程,C、D为B的子进程,F为D的子进程,现在将B的父进程调换为E,调换后的继承关系如图4所示,则系统中的消息广播模块在切换完成前根据图4的拓扑关系自B开始广播。具体过程如下:

a、B向其子进程轮询,B有C、D两个子进程。设B向C、D各传递的进程途径序号参数为{B};

b、C没有子进程,则不再继续对其他进程轮询;

c、D有子进程F,其对子进程F轮询,设传递进程途径序号参数为{B,D};

d、F没有子进程,则不再继续对其他进程轮询;

e、则切换正常,执行切换指令。

2、切换后造成进程继承关系形成环路的轮询过程

切换前的进程继承关系如图5所示,其中A为B、E的父进程,B为C、D的父进程。D又为F的父进程;同时B、E为A的子进程,C、D为B的子进程,F为D的子进程,现在将A的父进程换为F,则切换后进程继承关系如图6所示。轮询从A开始,其过程如下:

a、A轮询B、E,传递进程途径序号参数记为{A};

b、B轮询C、D,传递进程途径序号参数记为{A,B};

c、E无子进程,则自行终止消息广播;

d、C无子进程,则自行终止消息广播;

e、D轮询F,传递进程途径序号参数记为{A,B,D};

f、F轮询A,传递进程途径序号参数记为{A,B,D,F};

g、A发现传入第一个进程途径序号参数为其本身,判定切换造成环路;

h、终止切换指令。

3、系统切换前已经存在进程继承关系环路的情况

切换前的进程继承关系如图7所示,此时进程C,D,E已经构成环路;现将B的父进程调换为F。切换后的进程继承关系如图8所示,其轮询自B开始,具体过程如下:

a、B轮询C,传递进程途径序号参数记为{B};

b、C轮询D,传递进程途径序号参数记为{B,C};

c、D轮询E,传递进程途径序号参数记为{B,C,D};

d、E轮询C,传递进程途径序号参数记为{B,C,D,E};

e、C发现传递的进程途径序号参数中,包含有正在轮询的C的进程途径序号参数,判定系统中存在进程继承关系环路;

f、终止切换指令。

本发明所提供的一种阻止进程继承关系产生环路的方法,由于采用了通过进程继承关系表、以及根据轮询结果判断进程继承关系是否形成环路的切换方法,克服了目前现有的技术中只是依赖于人工切换极易产生进程继承关系环路的错误操作问题,提高了操作系统的可靠性,同时减少人工操作步骤,使操作更加系统化,提高了整个操作系统的工作效率。

应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号