CN104123193A - 一种计算机资源监控方法 - Google Patents
一种计算机资源监控方法 Download PDFInfo
- Publication number
- CN104123193A CN104123193A CN201410383858.0A CN201410383858A CN104123193A CN 104123193 A CN104123193 A CN 104123193A CN 201410383858 A CN201410383858 A CN 201410383858A CN 104123193 A CN104123193 A CN 104123193A
- Authority
- CN
- China
- Prior art keywords
- lock
- resource
- thread
- time
- reference count
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明属于计算机技术领域,特别涉及计算机资源管理方法。计算机资源监控方法,包括:A、线程T1第一次使用资源R1,锁L处于解锁状态,T1获取锁L,将锁L的ref1由0增加为1,为R1加锁;B、T1第二次使用R1,增加ref1为2;C、线程T2第一次使用R1之时,锁L已被T1使用,T2等待;D、T1第二次使用R1结束,减少ref1为1;E、T1第一次使用R1结束,减少ref1为0,释放锁L;F、T2获取锁L,第一次使用R1,将锁Lref2由0增加为1,为R1加锁;G、T2第二次使用R1,增加ref2为2;H、T2第二次使用R1结束,减少ref2为1;I、T2第一次使用R1结束,减少ref2为0,释放锁L。利用本发明可以确保计算机资源被某线程的独占使用,避免资源冲突导致的死锁现象发生。
Description
技术领域
本发明属于计算机技术领域,特别涉及计算机资源管理方法。
背景技术
进行数据操作时需要使用计算机某一资源,在此次过程中不允许此资源也被其它操作所使用。这通常是通过设置临界区或全局变量来控制的,其不足是无法根本解决多重调用,多线程调用,以及随之产生的死锁问题。
发明内容
本发明的目的是:提供一种计算机资源监控方法,有效解决资源冲突使用问题。
本发明的技术方案是:一种计算机资源监控方法,包括以下步骤:
A、在线程T1第一次使用资源R1之前,先尝试获取锁L,若此时锁L处于解锁状态,则线程T1获取锁L成功,将锁L的引用计数ref1由0增加为1,为资源R1加锁;
B、在线程T1第二次使用资源R1之前,先判断锁L的引用计数ref1,此时锁L的引用计数ref1为1,增加锁L的引用计数ref1为2,无需为资源R1重复加锁;
C、在线程T2第一次使用资源R1之前,先尝试获取锁L,此时锁L已被线程T1使用,线程T2获取锁L失败,等待线程T1释放锁L;
D、在线程T1第二次使用资源R1结束时,减少锁L的引用计数ref1为1,保持资源R1加锁状态;
E、在线程T1第一次使用资源R1结束时,减少锁L的引用计数ref1为0,释放锁L使其处于解锁状态;
F、在线程T2获取锁L成功,第一次使用资源R1时,将锁L的引用计数ref2由0增加为1,为资源R1加锁;
G、在线程T2第二次使用资源R1时,先判断锁L的引用计数ref2,此时锁L的引用计数ref2为1,增加锁L的引用计数ref2为2,无需为资源R1重复加锁;
H、在线程T2第二次使用资源R1结束时,减少锁L的引用计数ref2为1,保持为资源R1加锁状态;
I、在线程T2第一次使用资源R1结束时,减少锁L的引用计数ref2为0,释放锁L使其处于解锁状态。
利用本发明可以确保计算机资源被某线程的独占使用以及即时释放,避免资源冲突导致的死锁现象发生。
附图说明
附图1为本发明中单一线程使用资源监控流程示意图;
附图2为本发明中多线程使用资源监控流程示意图。
具体实施方式
参见附图1、2,一种计算机资源监控方法,包括以下步骤:
A、在线程T1第一次使用资源R1之前,先尝试获取锁L,若此时锁L处于解锁状态,则线程T1获取锁L成功,将锁L的引用计数ref1由0增加为1,为资源R1加锁;
B、在线程T1第二次使用资源R1之前,先判断锁L的引用计数ref1,此时锁L的引用计数ref1为1,增加锁L的引用计数ref1为2,无需为资源R1重复加锁;
C、在线程T2第一次使用资源R1之前,先尝试获取锁L,此时锁L已被线程T1使用,线程T2获取锁L失败,等待线程T1释放锁L;
D、在线程T1第二次使用资源R1结束时,减少锁L的引用计数ref1为1,保持资源R1加锁状态;
E、在线程T1第一次使用资源R1结束时,减少锁L的引用计数ref1为0,释放锁L使其处于解锁状态;
F、在线程T2获取锁L成功,第一次使用资源R1时,将锁L的引用计数ref2由0增加为1,为资源R1加锁;
G、在线程T2第二次使用资源R1时,先判断锁L的引用计数ref2,此时锁L的引用计数ref2为1,增加锁L的引用计数ref2为2,无需为资源R1重复加锁;
H、在线程T2第二次使用资源R1结束时,减少锁L的引用计数ref2为1,保持为资源R1加锁状态;
I、在线程T2第一次使用资源R1结束时,减少锁L的引用计数ref2为0,释放锁L使其处于解锁状态。
Claims (1)
1.一种计算机资源监控方法,包括以下步骤:
A、在线程T1第一次使用资源R1之前,先尝试获取锁L,若此时锁L处于解锁状态,则线程T1获取锁L成功,将锁L的引用计数ref1由0增加为1,为资源R1加锁;
B、在线程T1第二次使用资源R1之前,先判断锁L的引用计数ref1,此时锁L的引用计数ref1为1,增加锁L的引用计数ref1为2,无需为资源R1重复加锁;
C、在线程T2第一次使用资源R1之前,先尝试获取锁L,此时锁L已被线程T1使用,线程T2获取锁L失败,等待线程T1释放锁L;
D、在线程T1第二次使用资源R1结束时,减少锁L的引用计数ref1为1,保持资源R1加锁状态;
E、在线程T1第一次使用资源R1结束时,减少锁L的引用计数ref1为0,释放锁L使其处于解锁状态;
F、在线程T2获取锁L成功,第一次使用资源R1时,将锁L的引用计数ref2由0增加为1,为资源R1加锁;
G、在线程T2第二次使用资源R1时,先判断锁L的引用计数ref2,此时锁L的引用计数ref2为1,增加锁L的引用计数ref2为2,无需为资源R1重复加锁;
H、在线程T2第二次使用资源R1结束时,减少锁L的引用计数ref2为1,保持为资源R1加锁状态;
I、在线程T2第一次使用资源R1结束时,减少锁L的引用计数ref2为0,释放锁L使其处于解锁状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410383858.0A CN104123193A (zh) | 2014-08-07 | 2014-08-07 | 一种计算机资源监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410383858.0A CN104123193A (zh) | 2014-08-07 | 2014-08-07 | 一种计算机资源监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104123193A true CN104123193A (zh) | 2014-10-29 |
Family
ID=51768614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410383858.0A Pending CN104123193A (zh) | 2014-08-07 | 2014-08-07 | 一种计算机资源监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104123193A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018149347A1 (en) * | 2017-02-16 | 2018-08-23 | Huawei Technologies Co., Ltd. | System and method to reduce overhead of reference counting |
WO2018161844A1 (en) * | 2017-03-10 | 2018-09-13 | Huawei Technologies Co., Ltd. | Lock-free reference counting |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588317A (zh) * | 2004-09-02 | 2005-03-02 | 武汉大学 | 用数量锁提高电子商务服务系统资源利用率的方法 |
CN101253483A (zh) * | 2005-09-10 | 2008-08-27 | 国际商业机器公司 | 管理资源锁 |
CN101256509A (zh) * | 2008-04-07 | 2008-09-03 | 中兴通讯股份有限公司 | 一种锁机制的加锁方法、解锁方法和实现方法 |
CN102081557A (zh) * | 2011-01-27 | 2011-06-01 | 浪潮(北京)电子信息产业有限公司 | 云计算操作系统中资源管理方法及系统 |
CN103729238A (zh) * | 2012-10-12 | 2014-04-16 | 国际商业机器公司 | 管理对在多个处理器间共享的资源的锁的方法和系统 |
-
2014
- 2014-08-07 CN CN201410383858.0A patent/CN104123193A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588317A (zh) * | 2004-09-02 | 2005-03-02 | 武汉大学 | 用数量锁提高电子商务服务系统资源利用率的方法 |
CN101253483A (zh) * | 2005-09-10 | 2008-08-27 | 国际商业机器公司 | 管理资源锁 |
CN101256509A (zh) * | 2008-04-07 | 2008-09-03 | 中兴通讯股份有限公司 | 一种锁机制的加锁方法、解锁方法和实现方法 |
CN102081557A (zh) * | 2011-01-27 | 2011-06-01 | 浪潮(北京)电子信息产业有限公司 | 云计算操作系统中资源管理方法及系统 |
CN103729238A (zh) * | 2012-10-12 | 2014-04-16 | 国际商业机器公司 | 管理对在多个处理器间共享的资源的锁的方法和系统 |
Non-Patent Citations (1)
Title |
---|
SUSERSHINE: "嵌套锁与读写锁", 《HTTP://BLOG.CSDN.NET/SUSERSHINE/ARTICLE/DETAILS/17335551》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018149347A1 (en) * | 2017-02-16 | 2018-08-23 | Huawei Technologies Co., Ltd. | System and method to reduce overhead of reference counting |
WO2018161844A1 (en) * | 2017-03-10 | 2018-09-13 | Huawei Technologies Co., Ltd. | Lock-free reference counting |
CN110352406A (zh) * | 2017-03-10 | 2019-10-18 | 华为技术有限公司 | 无锁参考计数 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9740525B2 (en) | Scaling priority queue for task scheduling | |
US9229775B2 (en) | Dynamically adjusting global heap allocation in multi-thread environment | |
EP3550429A1 (en) | Instruction generation process multiplexing method and device | |
JP2016514299A5 (zh) | ||
WO2014167197A9 (fr) | Procédé d'exécution de taches dans un system temps-réel critique | |
CN103246552A (zh) | 防止线程出现阻塞的方法和装置 | |
CN109213576B (zh) | 程序死锁检测方法、存储介质、设备及系统 | |
CN111913809B (zh) | 多线程场景下的任务执行方法、装置、设备和存储介质 | |
CN104268024A (zh) | 一种实现进程互斥的方法和装置 | |
CN104881324A (zh) | 一种多线程下的内存管理方法 | |
WO2016094016A1 (en) | Technologies for efficient synchronization barriers with work stealing support | |
CN104239147A (zh) | 一种处理死锁循环方法及系统 | |
BR112017011541A2 (zh) | The handling of the lock request and the server | |
JP2012150583A5 (zh) | ||
CN104123193A (zh) | 一种计算机资源监控方法 | |
CN105824709B (zh) | 一种临界区访问方法及装置 | |
JP2013149221A (ja) | プロセッサの制御装置およびその方法 | |
JP2018523235A (ja) | Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装 | |
CN102999412A (zh) | 一种Linux下进程监护的方法 | |
CN103164267A (zh) | 无锁消息队列实现方法 | |
CN104794548A (zh) | 一种基于arima模型负荷预测的并行化计算方法 | |
GB2540498A8 (en) | Dynamic selection of memory management algorithm | |
CN102662632A (zh) | 一种利用信号量实现的序列号生成方法和生成器 | |
JP2014528609A5 (zh) | ||
US8893134B2 (en) | Locating bottleneck threads in multi-thread applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141029 |
|
WD01 | Invention patent application deemed withdrawn after publication |