CN108846288A - 一种驱动层进程读取缓存的管理方法 - Google Patents
一种驱动层进程读取缓存的管理方法 Download PDFInfo
- Publication number
- CN108846288A CN108846288A CN201810574694.8A CN201810574694A CN108846288A CN 108846288 A CN108846288 A CN 108846288A CN 201810574694 A CN201810574694 A CN 201810574694A CN 108846288 A CN108846288 A CN 108846288A
- Authority
- CN
- China
- Prior art keywords
- lock
- reference count
- idle
- controlled
- reading
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种驱动层进程读取缓存的管理方法,在单缓存的情况下,能够在驱动层实现透明加解密,避免具有解密能力的受控进程和不具解密能力的非受控进程同时访问加密文件时,读取的内容出现解密后的明文与未能解密的乱码互相穿插的情况,确保程序运行顺畅。
Description
技术领域
本发明涉及数据读取领域,特别是一种驱动层进程读取缓存的管理方法。
背景技术
在数据透明加解密实现中通常通过应用层实现或驱动层实现,在驱动层实现里,通常使用单缓存、双缓存的方式,单缓存较双缓存在实现方式上更为简单。
在单缓存的情况下,由于数据被加密了,只有受控进程才能获取明文数据,非受控进程获取的是对应的密文数据,如不对单缓存方式进行管理,会出现具有解密能力的受控进程和不具有解密能力的非受控进程,在读取缓存数据时,明文和密文交叉混乱的问题。比如,一个加密文档,受控进程能够读取到的缓存内容是解密后的内容“123”,非受控进程读取到的缓存内容是密文,内容可能是“!@#”之类的乱码,当受控进程和非受控进程同时去获取这个加密文档的缓存时,可能获取到的内容为“!2#”。
市场需要一种驱动层进程读取缓存的管理方法,能够在驱动层实现透明加解密,在单缓存的情况下,不会出现解密后的明文与为解密的乱码相互穿插混乱;本发明解决这样的问题。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种驱动层进程读取缓存的管理方法,能够在驱动层实现透明加解密,避免具有解密能力的受控进程和不具解密能力的非受控进程同时访问加密文件时,读取的内容出现解密后的明文与未能解密的乱码互相穿插的情况,确保程序运行顺畅。
为了实现上述目标,本发明采用如下的技术方案:
一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,若进程判断为受控进程,再判断锁是否空闲;
步骤a,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1,判断锁的引用计数是否为0;
步骤b,若引用计数为0时,解锁,随即读写文件缓存结束;
步骤c,若引用计数不为0时,直接结束本进程读写文件缓存;
步骤d,若判断锁非空闲时,再判断锁是否被受控进程占用;
步骤e,若被受控进程占用,将锁的引用计数加1;
步骤f,若未被受控进程占用,则返回判断锁是否空闲,进入等待状态;直到解锁后,锁处于空闲状态了,再进入步骤a;
步骤三,若进程判断为非受控进程,则判断锁是否空闲;
步骤a,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1,判断锁的引用计数是否为0;
步骤b,若判断锁非空闲,则判断是否被非受控进程占用;
步骤c,若被非受控进程占用,将锁的引用计数加1;
步骤d,若未被非受控进程占用,即被受控进程占用,则返回判断锁是否空闲,进入等待状态,直到解锁后,锁处于空闲状态了,再进入步骤a。
前述的一种驱动层进程读取缓存的管理方法,进程至少为一个。
前述的一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为第一个受控进程,再判断锁是否空闲;
步骤三,第一个受控进程判断锁空闲,获取锁,并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为第二个受控进程,再判断锁是否空闲;
步骤五,第二个受控进程的锁非空闲,则引用计数+1,引用计数为2;此时,第一进程的引用计数为1,第一个受控进程直接结束流程;
步骤五,第二个受控进程判断锁空闲,获取锁;并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1,判断引用计数=0,解锁。
前述的一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为受控进程,再判断锁是否空闲;
步骤三,受控进程判断锁空闲,获取锁,并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为非受控进程,锁未被非受控进程占用,返回上一层判断锁是否空闲,即等待状态;
步骤五,之后进入流程的所有的非受控进程都进入等待状态,进入的受控进程均在累加计数,减计数,直到受控进程计数减为0,完成解锁后,锁处于空闲状态,再重新进入流程。
前述的一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为非受控进程,再判断锁是否空闲;
步骤三,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为受控进程,锁未被非受控进程占用,返回上一层判断锁是否空闲,即等待状态;
步骤五,之后进入流程的所有的非受控进程都进入等待状态,进入的受控进程均在累加计数,减计数,直到受控进程计数减为0,完成解锁后,锁处于空闲状态,再重新进入流程。
本发明的有益之处在于:本发明能够在驱动层实现透明加解密,避免具有解密能力的受控进程和不具解密能力的非受控进程同时访问加密文件时,读取的内容出现解密后的明文与未能解密的乱码互相穿插的情况,确保程序运行顺畅。
附图说明
图1是本发明的一种实施例的流程图。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,若进程判断为受控进程,再判断锁是否空闲;
步骤a,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1,判断锁的引用计数是否为0;
步骤b,若引用计数为0时,解锁,随即读写文件缓存结束;
步骤c,若引用计数不为0时,直接结束本进程读写文件缓存;
步骤d,若判断锁非空闲时,再判断锁是否被受控进程占用;
步骤e,若被受控进程占用,将锁的引用计数加1;
步骤f,若未被受控进程占用,则返回判断锁是否空闲,进入等待状态;直到解锁后,锁处于空闲状态了,再进入步骤a;
步骤三,若进程判断为非受控进程,则判断锁是否空闲;
步骤a,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1,判断锁的引用计数是否为0;
步骤b,若判断锁非空闲,则判断是否被非受控进程占用;
步骤c,若被非受控进程占用,将锁的引用计数加1;
步骤d,若未被非受控进程占用,即被受控进程占用,则返回判断锁是否空闲,进入等待状态,直到解锁后,锁处于空闲状态了,再进入步骤a。
需要说明的是,进程可以为一个或是多个,用以下几个实施例说明本发明的具体应用。
△作为一种实施例,进程为多个,第一个进程为第一个受控进程,第二个进程为第二个受控进程;
一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为第一个受控进程,再判断锁是否空闲;
步骤三,第一个受控进程判断锁空闲,获取锁,并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为第二个受控进程,再判断锁是否空闲;
步骤五,第二个受控进程的锁非空闲,则引用计数+1,引用计数为2;此时,第一进程的引用计数为1,第一个受控进程直接结束流程;
步骤五,第二个受控进程判断锁空闲,获取锁;并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1,判断引用计数=0,解锁。
△作为一种实施例,进程为多个,第一个进程为受控进程,第二个进程为第二个进程为非受控进程;
一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为受控进程,再判断锁是否空闲;
步骤三,受控进程判断锁空闲,获取锁,并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为非受控进程,锁未被非受控进程占用,返回上一层判断锁是否空闲,即等待状态;
步骤五,之后进入流程的所有的非受控进程都进入等待状态,进入的受控进程均在累加计数,减计数,直到受控进程计数减为0,完成解锁后,锁处于空闲状态,再重新进入流程。
△作为一种实施例,进程为多个,第一个进程为非受控进程,第二个进程为第二个进程为受控进程;
一种驱动层进程读取缓存的管理方法,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为非受控进程,再判断锁是否空闲;
步骤三,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为受控进程,锁未被非受控进程占用,返回上一层判断锁是否空闲,即等待状态;
步骤五,之后进入流程的所有的非受控进程都进入等待状态,进入的受控进程均在累加计数,减计数,直到受控进程计数减为0,完成解锁后,锁处于空闲状态,再重新进入流程。
由实施例可知,无论哪种情况,本发明都能够在驱动层实现透明加解密,避免具有解密能力的受控进程和不具解密能力的非受控进程同时访问加密文件时,读取的内容出现解密后的明文与未能解密的乱码互相穿插的情况,确保程序运行顺畅。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (5)
1.一种驱动层进程读取缓存的管理方法,其特征在于,包括如下步骤:
步骤一,进程读写文件缓存开始,判断进程是否是受控进程;
所述受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,若进程判断为受控进程,再判断锁是否空闲;
步骤a,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1,判断锁的引用计数是否为0;
步骤b,若引用计数为0时,解锁,随即读写文件缓存结束;
步骤c,若引用计数不为0时,直接结束本进程读写文件缓存;
步骤d,若判断锁非空闲时,再判断锁是否被受控进程占用;
步骤e,若被受控进程占用,将锁的引用计数加1;
步骤f,若未被受控进程占用,则返回判断锁是否空闲,进入等待状态;直到解锁后,锁处于空闲状态了,再进入步骤a;
步骤三,若进程判断为非受控进程,则判断锁是否空闲;
步骤a,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1,判断锁的引用计数是否为0;
步骤b,若判断锁非空闲,则判断是否被非受控进程占用;
步骤c,若被非受控进程占用,将锁的引用计数加1;
步骤d,若未被非受控进程占用,即被受控进程占用,则返回判断锁是否空闲,进入等待状态,直到解锁后,锁处于空闲状态了,再进入步骤a。
2.根据权利要求1所述的一种驱动层进程读取缓存的管理方法,其特征在于,所述进程至少为一个。
3.根据权利要求2所述的一种驱动层进程读取缓存的管理方法,其特征在于,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
所述受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为第一个受控进程,再判断锁是否空闲;
步骤三,第一个受控进程判断锁空闲,获取锁,并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为第二个受控进程,再判断锁是否空闲;
步骤五,第二个受控进程的锁非空闲,则引用计数+1,引用计数为2;此时,第一进程的引用计数为1,第一个受控进程直接结束流程;
步骤五,第二个受控进程判断锁空闲,获取锁;并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1,判断引用计数=0,解锁。
4.根据权利要求2所述的一种驱动层进程读取缓存的管理方法,其特征在于,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
所述受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为受控进程,再判断锁是否空闲;
步骤三,受控进程判断锁空闲,获取锁,并对锁的引用计数加1,读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为非受控进程,锁未被非受控进程占用,返回上一层判断锁是否空闲,即等待状态;
步骤五,之后进入流程的所有的非受控进程都进入等待状态,进入的受控进程均在累加计数,减计数,直到受控进程计数减为0,完成解锁后,锁处于空闲状态,再重新进入流程。
5.根据权利要求2所述的一种驱动层进程读取缓存的管理方法,其特征在于,包括如下步骤:
步骤一,多个连续的进程读写文件缓存开始,判断进程是否是受控进程;
所述受控进程是指允许读取到解密后的缓存内容的进程;
步骤二,判断第一个进程为非受控进程,再判断锁是否空闲;
步骤三,若判断锁空闲,获取锁,并对锁的引用计数加1;获取锁后,进程可以读写文件缓存;读写文件缓存完毕后,对锁的引用计数减1;
步骤四,在还未判断解锁前,判断第二个进程为受控进程,锁未被非受控进程占用,返回上一层判断锁是否空闲,即等待状态;
步骤五,之后进入流程的所有的非受控进程都进入等待状态,进入的受控进程均在累加计数,减计数,直到受控进程计数减为0,完成解锁后,锁处于空闲状态,再重新进入流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810574694.8A CN108846288B (zh) | 2018-06-06 | 2018-06-06 | 一种驱动层进程读取缓存的管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810574694.8A CN108846288B (zh) | 2018-06-06 | 2018-06-06 | 一种驱动层进程读取缓存的管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108846288A true CN108846288A (zh) | 2018-11-20 |
CN108846288B CN108846288B (zh) | 2020-08-18 |
Family
ID=64210413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810574694.8A Active CN108846288B (zh) | 2018-06-06 | 2018-06-06 | 一种驱动层进程读取缓存的管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108846288B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094754A (zh) * | 2021-05-08 | 2021-07-09 | 重庆银行股份有限公司 | 大数据平台数据修改系统及修改、响应、缓存、校验方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887399A (zh) * | 2010-06-28 | 2010-11-17 | 北京用友政务软件有限公司 | 服务器端无障碍存取高速缓存数据的方法 |
CN102064962A (zh) * | 2010-12-06 | 2011-05-18 | 南京恩瑞特实业有限公司 | 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 |
CN102770853A (zh) * | 2009-12-23 | 2012-11-07 | 思杰系统有限公司 | 用于在多核系统中管理大型高速缓存服务的系统和方法 |
US8769127B2 (en) * | 2006-02-10 | 2014-07-01 | Northrop Grumman Systems Corporation | Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT) |
CN105868123A (zh) * | 2016-04-07 | 2016-08-17 | 武汉数字派特科技有限公司 | 一种并发数据的缓存结构及方法 |
-
2018
- 2018-06-06 CN CN201810574694.8A patent/CN108846288B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769127B2 (en) * | 2006-02-10 | 2014-07-01 | Northrop Grumman Systems Corporation | Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT) |
CN102770853A (zh) * | 2009-12-23 | 2012-11-07 | 思杰系统有限公司 | 用于在多核系统中管理大型高速缓存服务的系统和方法 |
CN101887399A (zh) * | 2010-06-28 | 2010-11-17 | 北京用友政务软件有限公司 | 服务器端无障碍存取高速缓存数据的方法 |
CN102064962A (zh) * | 2010-12-06 | 2011-05-18 | 南京恩瑞特实业有限公司 | 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 |
CN105868123A (zh) * | 2016-04-07 | 2016-08-17 | 武汉数字派特科技有限公司 | 一种并发数据的缓存结构及方法 |
Non-Patent Citations (1)
Title |
---|
夏厦等: "基于缓存竞争优化的Linux进程调度策略", 《计算机工程》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094754A (zh) * | 2021-05-08 | 2021-07-09 | 重庆银行股份有限公司 | 大数据平台数据修改系统及修改、响应、缓存、校验方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108846288B (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10705735B2 (en) | Method and device for managing hash table, and computer program product | |
CN103218176B (zh) | 数据处理方法及装置 | |
DE102012110692A1 (de) | Datenspeichervorrichtung, die eine unterteilte Datei in verschiedenen Speichermedien speichert, sowie Datenverwaltungsverfahren | |
CN107735774A (zh) | 一种smr感知只追加文件系统 | |
US10002074B2 (en) | Non-intrusive storage of garbage collector-specific management data | |
CN102419807A (zh) | 固态非挥发性内存装置的安全抹除系统 | |
DE102011082184A1 (de) | Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher | |
CN101075241A (zh) | 缓存处理方法以及缓存处理系统 | |
DE112011106060T5 (de) | Verfahren und Vorrichtung zum Verteilen von Code- und Datenspeicherungen zwischen flüchtigem und nichtflüchtigem Speicher | |
CN110413199A (zh) | 管理存储系统的方法、设备和计算机程序产品 | |
CN107577678A (zh) | 处理数据库事务的方法、客户端和服务器 | |
DE102020208234A1 (de) | Sichere Adressübersetzungsdienste unter Verwendung von Nachrichtenauthentifizierungscodes und Invalidierungsverfolgung | |
CN104731635B (zh) | 一种虚拟机访问控制方法,及虚拟机访问控制系统 | |
US20150012711A1 (en) | System and method for atomically updating shared memory in multiprocessor system | |
WO2001090899A3 (en) | System and method for memory management using fixed-size blocks | |
CN107633045A (zh) | 一种云存储服务中租户数据容量的统计方法及其系统 | |
CN108846288A (zh) | 一种驱动层进程读取缓存的管理方法 | |
JP4014165B2 (ja) | アクセス管理システム、アクセス執行装置、アクセス執行プログラム、アクセス執行方法、及び記録媒体 | |
Hirasawa et al. | Deep neck cellulitis: limitations of conservative treatment with antibiotics | |
CN103905201B (zh) | 主应用与多个从属应用的交互方法及装置 | |
CN107409086A (zh) | 通过多个邮箱在通信应用中进行海量数据管理 | |
CN106201918A (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
CN104123371A (zh) | 基于分层文件系统的Windows内核文件透明过滤的方法 | |
CN107436920A (zh) | Node.js权限控制方法、存储介质、电子设备及系统 | |
US20100262800A1 (en) | Information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |