一种操作系统句柄管理方法

文档序号:6563536阅读:257来源:国知局
专利名称:一种操作系统句柄管理方法
技术领域
本发明涉及计算机操作系统和嵌入式操作系统,更确切地说,涉及一种操 作系统的句柄管理方法。
背景技术
随着计算机系统和嵌入式操作系统的迅速发展,嵌入式操作系统已经融入 我们的生活,除了日常生活中可以看到的家电产品、工业于军事应用的独立产 品之外,许多大型电脑系统,事实上也是有许许多多小的嵌入式系统组成。 使用嵌入式操作系统的产品越来越多,使得如何开发高稳定性,高效率的操作 系统和应用程序成为非常关键的问题。在操作系统中,无论是对系统资源的访 问还是进程、线程的同步、控制等,都要涉及到对句柄的操作。如何增强系统 的句柄管理,提高句柄访问效率,尽可能地提高运行速度,是研究者所关心的 问题。
无论操作系统的资源采用何种形式进行管理,效率和性能的稳定性、安全 性总是处在第一位的。通过对句柄的管理可以知道应用程序创建进程的个数、 线程的个数、信号量的个数、事件的个数,通过句柄可以快速的查找某个进程 的父进程和子进程,以及在其中创建的信号量和事件;也可以查找到某个线程 的父线程和子线程以及在其中创建的信号量和事件。
现有技术在进行句柄管理时一般采用针对每一类变量如进程、线程等的句 柄分别建立链表,链表的每个节点一般包括句柄的类型和指向上一个节点的指 针以及指向下一个节点的指针。这样的数据结构和数据类型所包含的信息量较 少,不便于操作系统进行资源管理和进程控制。

发明内容
为了便于操作系统对系统内部资源的管理和访问,解决现有技术句柄管理 方法信息量不足,管理不便的问题,本发明提供了一种新的操作系统句柄管理 方法。
本发明的操作系统句柄管理方法对每一类型的句柄分别建立链表,并进行 句柄管理,所述链表的每个节点包括句柄的类型,节点所属的进程,节点所 属的线程,本节点的私有数据,指向本节点的上一个节点的指针,和指向本节 点的下一个节点的指针。
其中,所述句柄的类型包括进程句柄、线程句柄、信号量句柄和事件句柄。
"优选地,进行句柄管理包括以下步骤初始化进程、线程、信号量和事件 链表全局变量;创建进程、线程、信号量和事件链表头节点;将新增进程、线 程、信号量和事件句柄的节点添加到相应链表;从相应链表中删除已经终止的 进程、线程、信号量和事件句柄的节点。
优选地,初始化链表全局变量时,将各个链表全局变量的初值设定为零。
优选地,所述创建进程、线程、信号量和事件链表头节点包括以下步骤
申请一个进程全局变量指针头节点;
申请一个线程全局变量指针头节点;
申请一个信号量全局变量指针头节点;
申请一个事件全局变量指针头节点。
优选地,所述将新增进程、线程、信号量和事件句柄的节点添加到相应链
表包括以下步骤
根据用户创建的进程,将进程句柄节点添加到进程链表中;
根据用户创建的线程,将线程句柄节点添加到线程链表中;
根据用户创建的信号量,将信号量句柄添加到信号量链表<中;
根据用户创建的事件,将事件句柄添加到事件链表中。
优选地,所述从相应链表中删除进程、线程、信号量和事件句柄的节点包
括以下步骤
根据用户删除的进程,从进程链表中删除相应的进程句柄节点;
根据用户删除的线程,从线程链表中删除相应的线程句柄节点;
根据用户删除的信号量,从信号量链表中删除相应的信号量节点;
根据用户删除的事件,从事件链表中删除相应的事件句柄节点。
使用本发明的句柄管理方法,保存在链表中的信息比较全面,用户可以快 速查找到每个线程,每个进程所分配的信号量,事件句柄;反之,也可以由每 个信号量、事件查找到所属的进程和线程,从而实现真正意义上的系统句柄管 理,极大地方便了操作系统对资源和进程的管理和访问。


下面将结合附图及实施例对本发明作进一步说明,附图中
图1是本发明的句柄管理系统结构示意图。
图2是本发明句柄链表的节点数据类型示意图。
图3是本发明创建进程、线程、信号量、事件节点添加到链表的方法流程 示意图。
图4是是本发明创建进程、线程、信号量、事件节点添加到链表的方法流 程示意图。
具体实施例方式
本发明的操作系统句柄管理方法对每一类型的句柄分别建立链表,并根据 链表进行句柄管理。其中,句柄的类型包括进程句柄、线程句柄、信号量句柄 和事件句柄。四种类型句柄的链表组成的柄管理系统结构示意图如图l所示。 每种类型的句柄分别对应一个双向链表全局变量,链表的每个节点存储句柄的 相应信息。新创建或删除句柄时则增加或删除相应节点。

表的每个节点的数据类型如图2所示。由图2可见,每个节点包括句柄的类型,节点所属的进程,节点所属的线程,本节点的私有数据,指向本节 点的上一个节点的指针,和指向本节点的下一个节点的指针。由于保存在链表 中的信息比较全面,因此用户可以快速査找到每个线程,每个进程分配了多少个信号量,多少个事件句柄,反过来也可以由每个信号量、事件査找到所属的 进程和线程,达到真正意义上的系统句柄管理。
进行句柄管理操作主要包括初始化进程、线程、信号量和事件链表全局 变量;创建进程、线程、信号量和事件链表头节点;将新增进程、线程、信号 量和事件句柄的节点添加到相应链表;从相应链表中删除已经终止的进程、线 程、信号量和事件句柄的节点。
例如,初始化链表全局变量时,将各个链表全局变量的初值设定为零。创 建进程、线程、信号量和事件链表头节点包括以下步骤申请一个进程全局变 量指针头节点,例如定义其相应变量为pmcessh;申请一个线程全局变量指针 头节点,例如定义其相应变量为threadh;申请一个信号量全局变量指针头节 点,例如定义其相应变量为semah;申请一个事件全局变量指针头节点,例如 定义其相应变量为eventh。
则各个变量的初值为processh=0; threadh=0; semah=0; eventh=0。
将新增进程、线程、信号量和事件句柄的节点添加到相应链表的方法流程 图如图3所示。可见,新增的节点被插入到相应链表的头部,包括以下步骤-按进程节点大小分配一个节点,并插入到进程链表的头部;根据线程节点大小 分配一个节点,并插入到线程链表的头部;根据信号量节点大小分配一个节点, 并插入到信号量链表的头部;根据事件节点大小分配一个节点,并插入到事件 链表的头部。其中链表的插入和现有技术对链表数据结构的操作方法相同。
当需要从相应链表中删除进程、线程、信号量和事件句柄的节点时,其方 法的流程图如土4所示,包括以下步骤根据欲删除进程从进程链表中査找到 相应的节点并删除;根据欲删除的线程从线程链表中査找到相应的节点并删 除;根据欲删除的信号量节点从信号量链表中查找到相应的节点并删除;根据 欲删除的事件从事件链表中査找到相应的节点并删除。
权利要求
1. 一种操作系统句柄管理方法,对每一类型的句柄分别建立链表并进行句柄管理,其特征在于,所述链表的每个节点包括句柄的类型,节点所属的进程,节点所属的线程,本节点的私有数据,指向本节点的上一个节点的指针,和指向本节点的下一个节点的指针。
2、 根据权利要求1所述的操作系统句柄管理方法,其特征在于,所述句 柄的类型包括进程句柄、线程句柄、信号量句柄和事件句柄。
3、 根据权利要求1所述的操作系统句柄管理方法,其特征在于,进行句 柄管理包括以下步骤初始化进程、线程、信号量和事件链表全局变量;创建 进程、线程、信号量和事件链表头节点;将新增进程、线程、信号量和事件句 柄的节点添加到相应链表;从相应链表中删除已经终止的进程、线程、信号量 和事件句柄的节点。
4、 根据权利要求3所述的操作系统句柄管理方法,其特征在于,初始化 链表全局变量时,将各个链表全局变量的初值设定为零。
5、 根据权利要求3所述的操作系统句柄管理方法,其特征在于,所述创 建进程、线程、信号量和事件链表头节点包括以下步骤申请一个进程全局变量指针头节点; 申请一个线程全局变量指针头节点; 申请一个信号量全局变量指针头节点; 申请一个事件全局变量指针头节点。
6、 根据权利要求3所述的操作系统句柄管理方法,其特征在于,所述将 新增进程、线程、信号量和事件句柄的节点添加到相应链表包括以下步骤-根据用户创建的进程,将进程句柄节点添加到进程链表中; 根据用户创建的线程,将线程句柄节点添加到线程链表中; 根据用户创建的信号量,将信号量句柄添加到信号量链表中; 根据用户创建的事件,将事件句柄添加到事件链表中。
7、 根据权利要求3所述的操作系统句柄管理方法,其特征在于,所述从 相应链表中删除进程、线程、信号量和事件句柄的节点包括以下步骤: 根据用户删除的进程,从进程链表中删除相应的进程句柄节点; 根据用户删除的线程,从线程链表中删除相应的线程句柄节点; 根据用户删除的信号量,从信号量链表中删除相应的信号量节点; 根据用户删除的事件,从事件链表中删除相应的事件句柄节点。
全文摘要
本发明涉及一种操作系统句柄管理方法,对每一类型的句柄分别建立链表并进行句柄管理,所述链表的每个节点包括句柄的类型,节点所属的进程,节点所属的线程,本节点的私有数据,指向本节点的上一个节点的指针,和指向本节点的下一个节点的指针。使用本发明的句柄管理方法,保存在链表中的信息比较全面,用户可以快速查找到每个线程,每个进程所分配的信号量,事件句柄;反之,也可以由每个信号量、事件查找到所属的进程和线程,从而实现真正意义上的系统句柄管理,极大地方便了操作系统对资源和进程的管理和访问。
文档编号G06F9/46GK101206586SQ200610157589
公开日2008年6月25日 申请日期2006年12月19日 优先权日2006年12月19日
发明者胡本平 申请人:康佳集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1