CN103942077A - 一种驱动资源回收分析方法 - Google Patents

一种驱动资源回收分析方法 Download PDF

Info

Publication number
CN103942077A
CN103942077A CN201410151331.5A CN201410151331A CN103942077A CN 103942077 A CN103942077 A CN 103942077A CN 201410151331 A CN201410151331 A CN 201410151331A CN 103942077 A CN103942077 A CN 103942077A
Authority
CN
China
Prior art keywords
resource
resources
releasing
triggering command
driving arrangement
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.)
Granted
Application number
CN201410151331.5A
Other languages
English (en)
Other versions
CN103942077B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201410151331.5A priority Critical patent/CN103942077B/zh
Publication of CN103942077A publication Critical patent/CN103942077A/zh
Application granted granted Critical
Publication of CN103942077B publication Critical patent/CN103942077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种驱动资源回收分析方法。所述方法包括以下步骤:获取释放资源的触发指令;根据所述释放资源的触发指令释放资源列表中对应的资源;当释放完所述资源列表中对应的资源后,确定该资源列表中是否还存在有被释放资源的遗漏资源;当存在时,上报所述遗漏资源的消息。本发明通过系统周期性地对驱动设备中使用的资源的检测,实现了对资源的回收,进而避免了内存资源的泄露。

Description

一种驱动资源回收分析方法
技术领域
本发明涉及计算机领域,尤其涉及一种驱动资源回收分析方法。
背景技术
在现有的操作系统中,驱动设备需要调用大量的内核接口来完成对资源的操作和管理,但是驱动设备在运行过程中同样会发生错误和异常,就需要对加载后的驱动进行卸载,此时需要对驱动设备申请的资源进行释放,对成功的操作进行回滚。如,释放申请的内存,关闭打开的设备。
在现有中,可以通过内核接口函数直接对驱动设备所使用到的资源进行定位。对于错误和异常的处理,具体包括:人工分析从驱动设备加载到发送错误或异常的过程中调用的函数,并分析与之关联的资源申请和释放情况,从而判定在错误处理时已申请的资源是否被回收;对于驱动设备的卸载,在其加载过程中所申请的资源,在卸载中也需要对应进行释放,释放之后,需要检测已申请资源的回收情况。否则,若申请的资源没有被及时回收,将不利于系统提供后续的服务,同时可能造成内存资源的泄露、系统死锁甚至崩溃等影响。
综上所述,无论对于卸载驱动设备时的资源释放,还是对于错误处理时的资源释放,在资源释放之后,均会由于人为资源释放的不全面性、以及时间不固定性,而导致待释放资源无法完全被释放,进而造成系统的资源无法得到及时回收,不利于系统后续服务的提供。
发明内容
本发明实施例的目的在于提供一种驱动资源回收分析方法,通过系统周期性地对驱动设备中使用的资源的检测,实现了对资源的回收,进而避免了内存资源的泄露。
为了达到上述目的,本发明实施例提供了一种驱动资源回收分析方法,其特征在于,所述方法包括以下步骤:
获取释放资源的触发指令;
根据所述释放资源的触发指令释放资源列表中对应的资源;
当释放完所述资源列表中对应的资源后,确定该资源列表中是否还存在有被释放资源的遗漏资源;
当存在时,上报所述遗漏资源的消息。
优选地,所述释放资源的触发指令具体包括卸载驱动的触发指令或错误异常的触发指令。
优选地,所述错误异常的触发指令具体包括以下任意一项:
当接收到驱动设备的资源申请时,由于无法为所述驱动设备提供资源所产生的错误;
为所述驱动设备所提供的资源数据为未知异常数据。
优选地,所述获取释放资源的触发指令之前,还包括:
获取接口函数序列;
根据获取的接口函数序列确定对应的资源列表。
优选地,所述接口函数序列具体由以下函数组成:
当前驱动设备所使用的接口函数;
其他驱动设备所提供的接口函数。
现有技术相比,本发明实施例所提出的技术方案具有以下优点:
本发明的上述实施例,通过系统周期性地对驱动设备中使用的资源的检测,实现了对资源的回收,进而避免了内存资源的泄露。
附图说明
图1是本发明实施例所提供的驱动资源回收分析的流程示意图;
图2是本发明实施例所提供的驱动资源回收分析的具体流程示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参见图1,为本发明实施例所提供的驱动资源回收分析的流程示意图,该流程可包括:
步骤101,获取释放资源的触发指令。
具体的,所述释放资源的触发指令具体包括卸载驱动的触发指令或错误异常的触发指令。
其中,所述错误异常的触发指令具体包括以下任意一项:
当接收到驱动设备的资源申请时,由于无法为所述驱动设备提供资源所产生的错误;
为所述驱动设备所提供的资源数据为未知异常数据。
在该步骤之前,还包括:
获取接口函数序列;
根据获取的接口函数序列确定对应的资源列表。
其中,该接口函数序列具体由以下函数组成:
当前驱动设备所使用的接口函数;
其他驱动设备所提供的接口函数。
步骤102,根据所述释放资源的触发指令释放资源列表中对应的资源。
步骤103,当释放完所述资源列表中对应的资源后,确定该资源列表中是否还存在有被释放资源的遗漏资源。
步骤104,当存在时,上报所述遗漏资源的消息。
本实施例中,通过系统周期性地对驱动设备中使用的资源的检测,实现了对资源的回收,进而避免了内存资源的泄露。
为了更清楚的对本发明实施例提供的驱动资源回收分析过程进行描述,下面以一个具体的实施例进行详细描述,参见图2。
步骤201,操作系统获取驱动设备所使用的接口函数序列。
在本步骤中,驱动设备所使用的接口函数序列是由该驱动设备所使用的操作系统内核提供的接口函数,以及其他驱动设备所提供的接口函数组成的。
步骤202,操作系统根据接口函数序列确定该接口函数序列关联的资源列表。
具体的,操作系统能够根据获取到的接口函数序列确定该序列所对应关联的资源列表。
进一步地,操作系统还能够根据该接口函数序列以及资源列表确定该资源列表中的资源的状态。其中,资源的状态包括申请状态或释放状态。
具体的,申请状态具体指的是驱动设备通过操作系统的内核提供的指定接口向操作系统申请资源,释放状态具体指的是操作系统通过指定接口释放资源列表中该驱动设备已申请的资源。
进一步地,当资源列表中某驱动设备的资源发生改变(如由申请状态变为释放状态)时,操作系统还能够根据接口函数序列中的接口对资源列表中的资源的状态进行适当的修改和标记,从而实现对资源的状态监测。
步骤203,周期性监测。
在本步骤中,操作系统在运行过程中,会对驱动设备进行周期性监测,从而确保当发生某些指令时,能够及时地处理资源相关的操作。
步骤204,获取释放资源的触发指令,根据释放资源的触发指令释放资源列表中对应的资源。
在监测过程中,当监测获取到释放资源的触发指令时,如卸载驱动设备或发生错误或异常等;其中,错误或异常具体指的是当操作系统接收到驱动设备的资源申请时,由于无法为该驱动设备提供资源所产生的错误;或操作系统为申请资源的驱动设备所提供的资源数据为未知异常数据。
具体的,当该释放资源的触发指令为卸载驱动设备时,操作系统释放该驱动设备在加载时在资源列表中所存储的资源。当驱动设备在向操作系统申请资源时发生了错误或异常,申请资源过程会停止,操作系统释放资源列表中存储的当前驱动设备已申请获得的资源。
步骤205,确定资源列表中是否还存在有被释放资源的遗漏资源。
具体的,在释放完资源列表中对应的资源之后,操作系统会检查该资源列表,确定其中是否还有该被释放资源的遗漏资源,当存在时,转到步骤206,否则,流程结束。
步骤206,将包含有存在遗漏资源的消息进行上报。
具体的,当确定该资源列表中还存在有该被释放资源的遗漏资源时,通过消息上报给该操作系统的管理人员,由管理人员对其进行相应的指示处理。
本实施例中,通过系统周期性地对驱动设备中使用的资源的检测,实现了对资源的回收,进而避免了内存资源的泄露。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (5)

1.一种驱动资源回收分析方法,其特征在于,所述方法包括以下步骤:
获取释放资源的触发指令;
根据所述释放资源的触发指令释放资源列表中对应的资源;
当释放完所述资源列表中对应的资源后,确定该资源列表中是否还存在有被释放资源的遗漏资源;
当存在时,上报所述遗漏资源的消息。
2.如权利要求1所述的方法,其特征在于,所述释放资源的触发指令具体包括卸载驱动的触发指令或错误异常的触发指令。
3.如权利要求2所述的方法,其特征在于,所述错误异常的触发指令具体包括以下任意一项:
当接收到驱动设备的资源申请时,由于无法为所述驱动设备提供资源所产生的错误;
为所述驱动设备所提供的资源数据为未知异常数据。
4.如权利要求1所述的方法,其特征在于,所述获取释放资源的触发指令之前,还包括:
获取接口函数序列;
根据获取的接口函数序列确定对应的资源列表。
5.如权利要求4所述的方法,其特征在于,所述接口函数序列具体由以下函数组成:
当前驱动设备所使用的接口函数;其他驱动设备所提供的接口函数。
CN201410151331.5A 2014-04-15 2014-04-15 一种驱动资源回收分析方法 Active CN103942077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410151331.5A CN103942077B (zh) 2014-04-15 2014-04-15 一种驱动资源回收分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410151331.5A CN103942077B (zh) 2014-04-15 2014-04-15 一种驱动资源回收分析方法

Publications (2)

Publication Number Publication Date
CN103942077A true CN103942077A (zh) 2014-07-23
CN103942077B CN103942077B (zh) 2018-06-15

Family

ID=51189753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410151331.5A Active CN103942077B (zh) 2014-04-15 2014-04-15 一种驱动资源回收分析方法

Country Status (1)

Country Link
CN (1) CN103942077B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688217A (zh) * 2019-09-04 2020-01-14 广东浪潮大数据研究有限公司 资源释放方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178669A (zh) * 2007-12-13 2008-05-14 华为技术有限公司 资源回收方法及装置
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
CN102662825A (zh) * 2012-02-22 2012-09-12 中国人民解放军国防科学技术大学 一种面向堆操作程序的内存泄漏检测方法
US8312062B1 (en) * 2006-03-29 2012-11-13 Emc Corporation Automatic resource leak detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312062B1 (en) * 2006-03-29 2012-11-13 Emc Corporation Automatic resource leak detection
CN101178669A (zh) * 2007-12-13 2008-05-14 华为技术有限公司 资源回收方法及装置
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
CN102662825A (zh) * 2012-02-22 2012-09-12 中国人民解放军国防科学技术大学 一种面向堆操作程序的内存泄漏检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CORREY: "内核内存泄露检查", 《HTTP://BBS.PEDIY.COM/SHOWTHREAD. PHP?T=154015》 *
SAMMEI: "devres in linux driver", 《HTTP://WWW.CNBLOGS.COM/SAMMEI/P/3498052.HTML》 *
弓雷: "《ARM嵌入式Linux系统开发详解》", 31 January 2010 *
张桦: "《C++程序设计》", 30 June 2008 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688217A (zh) * 2019-09-04 2020-01-14 广东浪潮大数据研究有限公司 资源释放方法及装置

Also Published As

Publication number Publication date
CN103942077B (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
US10354197B2 (en) Pattern analytics for real-time detection of known significant pattern signatures
CN104156298B (zh) 一种应用监控方法及装置
US9928162B2 (en) Identifying severity of test execution failures by analyzing test execution logs
CN112395616B (zh) 漏洞处理的方法、装置及计算机设备
US20170139759A1 (en) Pattern analytics for real-time detection of known significant pattern signatures
EP2911060A1 (en) Method and device for determining resource leakage and for predicting resource usage state
US10476742B1 (en) Classification of auto scaling events impacting computing resources
CN108776643B (zh) 一种基于版本控制流程的目标代码合并控制方法及系统
CN101414272A (zh) 内存泄漏的检测方法和装置
CN105022678A (zh) 虚拟机数据备份的方法和装置
CN103559098B (zh) 智能卡测试号码控制方法、装置及系统
CN104461651A (zh) 一种框架流程控制方法、装置及系统
CN110727585B (zh) 内存泄漏检测方法、装置、电子设备及可读存储介质
CN113407419B (zh) 内存泄漏检测方法、装置、计算机设备和存储介质
US20160191495A1 (en) Privileged shared account password sanitation
CN105138366A (zh) 一种识别软件的静默安装的方法与装置
CN103942077A (zh) 一种驱动资源回收分析方法
CN105786680B (zh) 内核崩溃后内存预分析方法及其系统
CN110704313B (zh) Java虚拟机内存泄漏检测方法及装置
CN104506636A (zh) 一种数据同步方法及装置
CN112579330A (zh) 操作系统异常数据的处理方法、装置及设备
CN115545235A (zh) 恢复供电方法、装置、计算机设备和存储介质
CN111797016B (zh) 应用程序的测试方法、设备、存储介质及装置
US20220207388A1 (en) Automatically generating conditional instructions for resolving predicted system issues using machine learning techniques
CN114139853A (zh) 一种基于大数据的钢结构产品清单处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant