缓冲管理(精选九篇)
缓冲管理 篇1
随着信息化程度的提高, MIS既是一个企业的管理中心, 也是信息中心。但是MIS开发项目是一个高度复杂和充满着不确定性的系统工程项目, 随着系统开发的进程, 往往会伴随着许多需求的变更, 而需求变更对项目计划的冲击所导致的进度延误则变得无法避免。所以在预算工期内开发一个信息系统变得更具挑战性, 尤其进度更难以估算。此外, MIS开发项目与工程项目相比有其显著性差异。工程项目在执行过程中, 更多的是非人为因素干扰, 如气候条件这种自然因素。而MIS开发项目更多的是人为因素干扰, 既有内部开发人员的工作进度原因, 也有外部客户对需求的变更导致的干扰, 而随着进度的进行, 越到项目后期, 这种人为因素干扰的影响越发的突显。
1 现状分析
为了预防项目不确定性因素的危害而在相应位置插入必要的项目缓冲区域, 确保项目能够在不确定的条件下制定计划, 并在变动的环境中顺利开展, 这是关键链的要求之一。
计算关键链的缓冲区大小的问题, 是项目管理中的一个难点。以前确定缓冲区位置和大小的方法, 缺少相关理论证据证明其实际意义。众多专家和学者都对这个问题做了很多分析研究, 具体如下:
张静文、胡信布[1]等 (2008) 根据F (时差) 的概念与缓冲区设定的方法, 把汇入工序的FF (自由时差) 或者是TF (总时差) 的大小设定为FB (汇入缓冲) ;在设定项目的缓冲区的时候, 要把不确定性因子的影响考虑在内, 引入关键链上工序持续时间的参数, 把关键链上的每一个工序的安全时间考虑参数j后, 对所得的结果求和得出项目缓冲。
王晶[2] (2008) 认为, 关键链的汇入缓冲的取值是有区间性的, 当PB (项目缓冲) 的取值等于零时, 每一个非关键链上的FB达到了最小, 它的最小数值是由项目的最优调度计划来确定的。
周阳、丰景春 (2008) 为了在项目工期和项目成本间寻求一种平衡, 采用排队论方法来计算在单个资源限制下缓冲区的大小, 可以把项目在开展中的不确定性因素吸收[3]。
鉴于在关键链技术中, 缓冲区的设置是其中一个非常重要的环节, 本文旨在寻求一个操作性高、能够满足需求的缓冲区设置方法。
2 传统缓冲区设置方法
在日益精进的管理水平背景下, 关键链的显著效果吸引了越来越多的人的关注, 其中缓冲区的设置是关键链管理的主要内容之一, 因此对缓冲区进行研究的有很多, 其中主要的方法大体分为以下两种[4]:
2.1 高德拉特的50%法
50%法是高德拉特博士在约束理论的基础上提出的设置方法, 缓冲区域的大小为相应链路上所有的工序在90%完工概率下持续时间之和的50%:
式 (1) 中, i是位于缓冲之前链路上的任务, △Ti90%是任务i在90%的完工概率下的估计时间, n是该缓冲区域前对应链路上的任务总数。该计算方法的优点是操作方便, 容易理解, 但也存在着随意性太强的缺点, 并且得到的缓冲区会随着相应链路各任务持续时间的增加而呈线性增加。
2.2 根方差法
根据根方差方法的原理得到项目各个活动的安全时间△Ti (项目活动i在90%的完工概率条件下和50%的完工概率下进行估算得到两者间的时间差) 表示了各自的工期不确定性, 一些研究提出把当做项目工期的标准差, 与此同时把两倍的相关任务链标准差为该任务链对应缓冲区的估计值。假设项目链路上项目活动的工期是相互独立的, 则依据中心极限定理的原理可得:
式 (2) 中, i是缓冲前链路上的任务, n是对应链路上的工序总数, Di90%为任务i在90%完工概率条件下的时间估计, di50%为任务i在50%完工概率条件下的时间估计。根方差法使用了风险的聚合原理理论, 很好的消除了缓冲区时间值太短或者太长的现象, 但是根方差法并未考虑不同项目活动所具有的不同不确定性特征, 同时与项目有关的各相关方的风险偏好也有很大的不同。
3 改进的缓冲区设置方法
考虑到MIS项目的特殊性, 本文借鉴单泪源、龙颖 (2006) 提出的算法模型, 以PERT的三点估计为基础, 并且根据关键链中缓冲机制的原理和约束理论, 将位置权数α和弹性系数β吸收到缓冲时间的估算中, 然后以最可能时间进行项目计划, 通过位置权数α和弹性系数β算出的PB和FB来吸收整个项目的不确定因素。使用最可能时间m进行项目计划, 通过位置权数α和弹性系数β计算出对应的PB和FB[5]。
其中弹性系数β的确定依据公式:
式 (3) 中, 如果m越接近α, 说明该任务延期的可能性越小, 则β值越小;如果m越接近b, 表明任务延期的可能性越高, β值越大。
一般来说, 距离现在所处时间点越远的事情越难进行预测, 所以距离项目开始时间越远的任务不确定性更大。依据这个原理对项目的不确定进行进一步的评估, 以各个任务的时间中点为基准, 测得其距离开始时间的距离, 再除以整个时间长度, 得出位置权数, 其中位置权数的确定依据公式:
依据式 (4) , 求出对应的PB和FB:
式 (5) 和 (6) 中, c为关键链任务集合, f为某段非关键链任务集合;b和m分别表示对应工序的最悲观时间和最可能时间。
4 算例分析
本文根据A软件公司的项目, 采用项目中的部分工序双代号网络图和实际工期数据分别如图一和表一所示, 其中网络图加粗部分为关键链。
如图一和表一所示, 根据式 (3) 和式 (4) , 以工序A为例, 可以求出对应的弹性系数β和位置权数α:
式 (7) 和式 (8) 中, 我们可以得出每项工序对应的弹性系数β和位置权数α, 如表二所示。
以工序A为例:
根据表二所计算出的值插入缓冲, 其中, 我们对缓冲区的时间向上取整, 即PB=6, FB=3, 同时检查插入缓冲后的网络图, 包含各个工序的估计工期及该工序所需资源, 重新平衡后对关键链进行调整。调整后的关键链为A、C、E、FB、F、G、PB, 该段工序整体工期为38天, 其中该段工序的缓冲区天数为9天, 如图二所示。
5 结束语
在项目实施的过程中, 利用缓冲机制来吸收整个项目实施过程中的不确定因素, 可以更好的避免在项目计划制定时候造成的失误, 不仅能够减弱不确定因素对项目的影响, 而且能够消除项目成员不良工作行为造成的影响。本文利用三点时间估计中的最可能时间m确定关键链, 并通过位置权数和弹性系数来估算时间缓冲量, 从而有效提高缓冲机制的监控和管理能力。
参考文献
[1]张静文, 胡信布, 王茉琴.关键链项目计划调度方法研究[J].科技管理研究, 2008, 28 (03) :280-283.
[2]王晶.关键链管理中关键链识别和缓冲区设置新方法研究[D].北京:华北电力大学, 2008.
[3]周阳, 丰景春.基于排队论的关键链缓冲区研究[J].科技进步与对策, 2008, 25 (02) :174-176.
[4]田文迪, 崔南方.关键链项目管理中关键链和非关键链的识别[J].工业工程与管理, 2009, 14 (02) :88-93.
缓冲管理 篇2
为SQLSERVER提供的可用内存越多,SQLSERVER就有越多的资源使用于缓冲区,即可减少服务器从磁盘读取数据以获取静态信息或编译过程计划的次数。调整SQLSERVER所占内存可通过在服务器配置文件中设置totalmemory参数进行,该参数的值指定了SQLSERVER在启动时所需的内存总量,如若该值为10000页,则SQLSERVER在启动时就将试图获得10000*2K=19.5M的内存,若不能满足则启动失败。
注意,若操作系统在进程的整个生命周期中支持动态内存分配,则可在SQLSERVER启动后为其分配额外的内存。
SQLSERVER启动时将内存分配给SQLSERVER可执行代码,SQLSERVER使用的静态内存,用户可配置参数占用的内存及不驻留在缓存上的数据结构,剩余的内存分配给两种SQLSERVER缓冲区即:数据缓冲区和过程缓冲区。两缓冲区的大小对整个系统的性能影响很大,在一个开发系统上可能要增加过多端程缓冲区的专用内存,而在一生产系统上则需减少过程缓冲区大小以便获得更大的数据缓冲区。
1.确定缓冲区大小
在totalmemory配置的总空间中,首先要除去可爱执行代码所占空间,其大小因平台和版本不同而异,可使用sp_configure查询executablecodesize参数的值得知,一般为3-4MB;其次需除去内部结构所占空间,内部结构分成内核结构和服务器结构,亦可将此部分内存看成静态开销和用户配置参数占用两个部分,前者大小不受用户可配置参数的影响,一般为2-3MB,而后者即用户可配置参数的大小则取决于配置参数的类型及其值的大小,包括numberofuserconnections, numberofopendatabases,numberofdevices,numberofopenobjects,numberoflocks等,要得到这些用户配置参数使用内存大小的精确估计,可调用不带选项的sp_configure以显示所有参数和每个参数使用的内存量,其和即是用户配置参数所占用内存。
除去上述占用,剩余内存将以procedurecachepercent配置参数的值按比例分配给过程缓冲区和数据缓冲区,例若值为20,即表示剩余内存的20%分配给过程缓冲区而80%分配给数据缓冲区。
确定缓冲区大小的另一种方法是检查SQLSERVE启动时写入SQLSERVER错误日志的内存信息,其中准确地说明了分配给过程缓冲区和数据缓冲区的数据量,以及多少个过程或其他编译对象能同时驻留在缓冲区中,如相关信息为:
server:Numberofprocbuffersassocated:556
server:Numberofblocksleftforprocheaders:629
server:Memoryallocatedforthedefaultdatacache:4144kb
前两行为过程缓冲区信息,过程缓冲区总大小是分配给过程缓冲区的内存(第一行)及分配给过程头(即存放编译对象如存储过程的地方,根据被存储对象的大小,可能需要一个或多个过程头) 的内存(第二行)之和,可存储在过程缓冲区中的编译对象受到此二者中较小者的限制。上述信息中,第一行指明了分配给过程缓冲区的缓冲区数量为556,每个缓冲区大小为76B,故过程缓冲区大小即为42256B,合21页;第二行则指明了分配给过程头的空间为629页,由此可以得出,过程缓冲区总大小为629+21=650页,合1.27M。
信息中第三行则指明了分配给默认数据库缓冲区的空间大小。此外,若配置了命名缓冲区,则相关信息还将包含每个命名缓冲区的信息,再加上这些命名缓冲区所占内存大小即得到总的数据缓冲区大小。欲知数据缓冲区大小还可通过sp_helpcache过程得到每个缓冲区和捆绑到这些缓冲区中的对象以及与不同缓冲区大小相关的开销的详细信息。
2.缓冲区管理
数据缓冲区保存SQLSERVER当前使用和最近使用过的数据页,索引页和日志页.初装SQLSERVER时,会产生一个默认的数据缓冲区.SQLSERVER允许系统管理员把数据缓冲区分成独立的命名数据缓冲区,然后可把数据库或数据库对象捆绑到这些命名缓冲区上,以对缓冲区空间进行更合理的组织,控制数据库,表和索引在内存的驻留.另外,系统管理员还可在缓冲区内创建缓冲池,用于执行大块的磁盘I/O,改善数据查询性能,减少磁盘I/O.有关数据库缓冲区的指令有:
sp_cacheconfig创建或删除命名缓冲区,改变缓冲区的大小或类型
sp_poolconfig创建或删除I/O缓冲池,并改变其大小
sp_bindeache将数据库或数据库对象捆绑到缓冲区
sp_unbindcache从一个缓冲区中取消对指定对象或数据库的捆绑
sp_unbindcache_all从一个缓冲区中取消所有对象的捆绑
sp_helpcache报告有关数据缓冲区的小结信息,并显示捆绑于缓冲区的数据库和对象
sp_cachestrategy报告有关为表,索引设置的缓冲区策略,禁止或重新允许先提或MRU策略
sp_logiosize为日志改变默认的I/O大小
sp_spaceused估计表和索引大小或有关数据库使用的空间量的信息
sp_estspace估计表和索引的大小,给出表包含的行的数目
sp_help报告表将捆绑于哪个缓冲区
sp_helpindex报告索引将捆绑于哪个缓冲区
sp_helpdb报告数据库将捆绑于哪个缓冲区
setshowplanon报告有关用于查询的I/O大小和缓冲区的应用策略
setstatisticsioon报告为查询进行的读操作数量
setprefetchon/off允许或禁止某个会话的预先提取
(1)查询数据库缓冲区的信息
查看默认数据缓冲区的大小,可使用指令sp_cacheconfig“defaultdatacache”,显示结果如下,由两部分构成,上部分报告每个缓冲区中的内存池配置信息并总计了所有配置缓冲区的大小;下部分提供了每个缓冲区中的其他详细信息。
第一部分输出各列含义为:cachename为缓冲区名;status指示该缓冲区是否激活(值为pend/act时表示该缓冲区刚建立,重启后将被激活;值为active时表示该缓冲区目前正处于激活状态;值为pend/del时表示该缓冲区处于激活状态,但在服务器重启后将被删除);type 指示缓冲区是否可以存储数据(“mixed”)和日志页(“logonly”),只有默认缓冲区才会有“default”类型,且默认的数据缓冲区类型不能改变,其他类型缓冲区也不能改为“default”; configvalue显示下次SQLSERVER重启后缓冲区的大小,在此情况下,默认缓冲区不能显式配置,故信息中其大小为0;runvalue显示SQLSERVER目前使用的大小,对于默认数据缓冲区,该值将作为未显示配置到其他缓冲区中的所有数据缓冲区空间。
第二部分输出各列含义为:IOsize显示缓冲池中的缓存大小,所有缓冲池缺省都分配2K空间(有效空间大小为2K,4K,8K,16K);washsize指示缓冲池的刷洗区大小;configsize和runsize显示配置大小和目前使用的大小,该两值在2K的缓冲池中是不同的(因为不能显式配置其大小),而对于其他缓冲池,若试图在缓冲池间移动空间而一些空间又不能被释放时, 上述两值也不同。
CacheNameStatusTypeConfigvalueRunvalue
---------------------------------------------------------
defaultdatacacheActiveDefault0.00MB59.36MB
-------------------------------
Total0.00MB59.36MB
=================================================
Cache:defaultdatacache,status:Active,Type:Default
ConfigSize:0.00MB,Runsize:59.36MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB59.36MB
(2)配置数据缓冲区
配置数据缓冲区有两种途径:一是使用过程sp_cacheconfig和sp_poolconfig进行交互式配置,二是编辑配置文件中的totalmemory参数后重启使之生效。
A.交互式配置
创建命名缓冲区(新创建的命名缓冲区从缺省缓冲区defaultdatacache中分配空间) ,每次执行sp_cacheconfig或sp_poolconfig时,SQLSERVER都将新的缓冲区或缓冲池信息写入配置文件中并将文件的旧版本拷贝到一个备份文件中,给出备份文件名的信息被送至错误日志。
创建一个新的名为pubs_cache的10M缓冲区指令如下,大小单位除M外,还可为P页,K,G, (默认为K).该指令将改变系统表并将新值写入配置文件但暂不激活缓冲区,要使其生效须重启SQLSERVER.
sp_cacheconfigpubs_cache,“10M”
在重启SQLSERVER使新值生效前,可先用sp_cacheconfig“pubs_cache”查看配置信息。如下,其中的status列值为pend/act说明该缓冲区的配置是挂起的,要待重启后生效,故Configvalue(配置的值)和Runvalue(正在使用的值)不同。
CacheNameStatusTypeConfigvalueRunvalue
--------------------------------------------
pubs_cachepend/actmixed10.00MB00.00MB
-------------------------------
Total10.00MB00.00MB
重启后再允许不带缓冲区名参数的sp_cacheconfig,则信息改变如下,可见pubs_cache 已被激活,默认缓冲区从其空间中分出了10M给该缓冲区.可利用sp_cacheconfig过程设置默认数据缓冲区的最小值,该部分空间将被锁定给默认数据缓冲区.例如设置默认数据缓冲区大小最少不低于25M则指令为sp_cacheconfig“defaultdatacache”“25M”。
CacheNameStatusTypeConfigvalueRunvalue
---------------------------------------------------------
defaultdatacacheActiveDefault0.00MB49.28MB
pubs_cacheActivemixed10.00MB10.00MB
-------------------------------
Total10.00MB59.28MB
===========================================
Cache:defaultdatacache,status:Active,Type:Default
ConfigSize:0.00MB,Runsize:49.28MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB49.28MB
===========================================
Cache:pubs_cache,status:Active,Type:mixed
ConfigSize:10.00MB,Runsize:10.00MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB10.00MB
若要保留一个只用于事务日志的缓冲区的类型,可以将缓冲区的类型设为“logonly”, 如创建“logonly”类型的pubs_log缓冲区为sp_cacheconfigpubs_log,“7M”,“logonly”, 下示为该缓冲区在重启前的状态。
CacheNameStatusTypeConfigvalueRunvalue
---------------------------------------------------------
pubs_cachepend/actlogonly7.00MB0.00MB
-------------------------------
Total7.00MB0.00MB
创建命名缓冲区后一般都须将某些对象捆绑到该缓冲区上。若建立命名缓冲区后未将任何对象捆绑到该命名缓冲区上,则该命名缓冲区所占内存将被浪费,因为任何未指定缓冲区的对象都将缺省使用默认数据缓冲区defaultdatacache.
>;
将数据缓冲区划分为缓冲池建立数据缓冲区后,可将其划分成缓冲池,各不同的缓冲池具有不同的I/O大小,当SQLSERVER进行大I/O操作时,可将许多页一次读入缓冲区中,故可提高I/O效率.这些页总是被当作一个单元进行处理,它们共存于缓冲区中,作为一个单元被写到磁盘中。
缓冲池的页大小可为2K,4K,8K,16K,缓冲池的总大小不能低于512K.所有关于缓冲池的配置都是动态的,无需重启SQLSERVER即可生效.SQLSERVER内2K页缓冲池的个数必须保持一个合理的值,否则将会影响SQLSERVER性能,因为某些命令只能使用2K的I/O块如diskinit及某些dbclearcase/“ target=”_blank“ >cc命令,
在pubs_cache数据缓冲区中创建一个每页16K,总空间为7MB的缓冲池,指令如下.通常,创建命名数据缓冲区时,其空间总是被默认划分为每页2K的缓冲池,创建其它页大小的缓冲池时,该2K页缓冲池空间被部分分配给新缓冲池.下例中2K页大小的缓冲池原共有10M空间,分配给7M给16K页的新缓冲池后,2K页缓冲池还剩3M空间。
>;sp_poolconfigpubs_cache,”7M“,”16K“
>;go
>;sp_cacheconfigpubs_cache
CacheNameStatusTypeConfigvalueRunvalue
--------------------------------------------
pubs_cacheActivemixed10.00MB10.00MB
-------------------------------
Total10.00MB10.00MB
====================================
Cache:pubs_cache,status:Active,Type:mixed
ConfigSize:10.00MB,Runsize:10.00MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB3.00MB
16KB1424KB7.00MB7.00MB
在默认数据缓冲区中也可创建缓冲池,如创建16K缓冲池,空间大小为8M,则指令为:sp_poolconfig”defaultdatacache“,”8M“,”16K“.
若要为一个数据库的事务日志创建缓冲区,应配置缓冲区中大部分空间来匹配日志I/O的大小.默认值为4K,若没有4K的可用缓冲池,SQLSERVER就为日志使用2K的I/O.
日志I/O的大小可通过系统过程sp_logiosize来改变,每个数据库的日志I/O大小会在SQLSERVER启动后的错误日志中报告,也可通过使用数据库和执行不带参数的过程sp_logiosize来检查一个数据库的日志I/O大小.如为pubs_log缓冲区配置4K页大小的缓冲池指令为sp_poolconfigpubs_log,”3M“,”4K“,也可在默认数据缓冲区中创建一个4K页缓冲池,以供未被捆绑至其它缓冲区的任何数据库的事务日志来使用:sp_poolconfig”defaultdatacache“,”2.5M“,”4K“.
此外,可修改缓冲池大小,如从16K页I/O的缓冲池中取出1M空间增加到4K页I/O缓冲池中:sp_poolconifgpub_cache,”1M“,”4K“,”16K“
缓冲区悃绑操作
系统管理员把数据缓冲区分成独立的命名数据缓冲区后,可将数据库对象捆绑到这些缓冲区上,以控制数据库,表和索引在内存的驻留.若建立命名缓冲区后未将任何对象捆绑到该命名缓冲区上,则该命名缓冲区所占内存将被浪费,因为任何未指定缓冲区的对象都将缺省使用默认数据缓冲区defaultdatacache.为了将任何系统表, 包括事务日志syslogs捆绑至缓冲区中,数据库须处于单用户模式.对象被捆绑后立即生效而无需重启SQLSERVER.注意,进行捆绑或删除捆绑操作时,SQLSERVER需锁定相应对象,故相应对象上的其它操作可能有延迟.此外,可不删除现有的捆绑而重新捆绑
对象.另外,当被捆绑对象上有脏的读活动或有打开的游标时,捆绑或删除捆绑的操作将不能进行。
1>;sp_dboptionpubs2,single,true置pubs2库为单用户状态
2>;usepubs2
3>;checkpoint
4>;go准备进行数据库对象的捆绑。注意,捆绑对象须在对象所在的库中进行。
>;sp_bindcachepubs_cache,pubs2,titles
将pubs2库中的表titles捆绑至缓冲区pubs_cache.
>;sp_bindcachepubs_cache,pubs2,titles.titleind
在titles上捆绑索引,并将pubs2库中的表titles捆绑至缓冲区pubs_cache.
>;sp_bindcachepubs_cache,pubs2,”hj.sale_east“
将pubs2库中用户hj的表sale_east捆绑至缓冲区pubs_cache.
>;sp_bindcachepubs_log,pubs2,syslogs
将pubs2库的事务日志syslogs捆绑至缓冲区pubs_log.
>;sp_bindcachepubs_cache,pubs2,au_pix,”textonly“
表的text和image列存储在一个单独的数据结构中,若将此表捆绑至缓冲区,需加”text“参数.
1>;sp_dboptionpubs3,single,true置pubs3库为单用户状态
2>;usepubs3
3>;checkpoiot
4>;usemaster
5>;go准备进行数据库的捆绑,注意,捆绑数据库须在master库中进行。
>;sp_bindcachetempdb_cache,tempdb
将数据库tempdb捆绑至缓冲区tempdb_cache。注意,被捆绑到日志缓冲区上的对象只能是syslogs表。可通过sp_helpcache过程查询所有或指定缓冲区及其中被捆绑对象的捆绑信息.如下例示,其中status列报告缓冲区的捆绑是(”V“)否(”I“)有效.若数据库或对象被捆绑至缓冲池而该缓冲区已被删除,则捆绑信息仍保留在系统表中但缓冲区捆绑被标记无效,所有无效的捆绑对象均使用默认的数据库缓冲区.若随后用与被删除的缓冲区相同的名字创建了另一个缓冲区,则当该缓冲区通过重启SQLSERVER而被激活时,上述捆绑又将变为有效。
删除缓冲区捆绑可用两个过程:sp_unbindcache用于删除缓冲区中对一个实体的捆绑; sp_unbindcache_all则用于删除缓冲区中对所有对象的捆绑,但若捆绑至缓冲区的数据库超过8个,或数据库的对象超过8个,就不能使用p_unbindcache_all,此情况下,必须使用sp_unbindcache删除单个的数据库或对象,使捆绑的数据库不超过8个.此外,当删除缓冲区对一个对象的捆绑时,内存中所有当前的页都被从缓冲区中清除.
>;sp_unbindcachepubs2
删除对数据库pubs2的捆绑
>;sp_unbindcachepubs2,titles
删除对pubs2库中对titles表的捆绑
>;sp_unbindcachepubs2,titles,titleidind
铲除对pubs2库中titles表上titleidind索引的捆绑.
>;改变命名数据缓冲区大小
可通过sp_cacheconfig指定一个新的空间以增加或减少指定缓冲区的大小,所有新增空间都将从缺省数据缓冲区defaultdatacache内的2K缓冲池中被加到指定缓冲区内的2K页缓冲池中,所有减少的空间亦从指定缓冲区内的2K页缓冲池中被释放到缺省数据库缓冲区defaultdatacache内的2K缓冲池中。
>;sp_cacheconfigpubs_cache
CacheNameStatusTypeConfigvalueRunvalue
--------------------------------------------
pubs_cacheActivemixed10.00MB10.00MB
-------------------------------
Total10.00MB10.00MB
=======================================
Cache:pubs_cache,status:Active,Type:mixed
ConfigSize:10.00MB,Runsize:10.00MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB720KB0.00MB3.00MB
4KB1024KB4.00MB4.00MB
16KB1424KB3.00MB3.00MB
现以sp_cacheconfigpubs_cache,”20M“后重启,则改变如下:
>;sp_cacheconfigpubs_cache
CacheNameStatusTypeConfigvalueRunvalue
----------------------------------------------
pubs_cacheActivemixed20.00MB20.00MB
-------------------------------
Total20.00MB20.00MB
========================================
Cache:pubs_cache,status:Active,Type:mixed
ConfigSize:20.00MB,Runsize:20.00MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB13.00MB
4KB1024KB4.00MB4.00MB
16KB1424KB3.00MB3.00MB
返回pubs_log缓冲区报告:
>;sp_cacheconfigpubs_log
CacheNameStatusTypeConfigvalueRunvalue
-------------------------------------------
pubs_logActivelogonly7.00MB7.00MB
-------------------------------
Total7.00MB7.00MB
====================================
Cache:pubs_log,status:Active,Type:logonly
ConfigSize:7.00MB,Runsize:7.00MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB4.00MB
4KB1024KB3.00MB3.00MB
再运行以指令sp_cacheconfigpubs_log,”6M“后重启,则改变为:
>;sp_cacheconfigpubs_log
CacheNameStatusTypeConfigvalueRunvalue
----------------------------------------------
pubs_logActivelogonly6.00MB6.00MB
-------------------------------
Total6.00MB6.00MB
==========================================
Cache:pubs_log,status:Active,Type:logonly
ConfigSize:6.00MB,Runsize:6.00MB
IOSizeWashSizeConfigSizeRunSize
-----------------------------------
2KB512KB0.00MB3.00MB
4KB1024KB3.00MB3.00MB
欲彻底删除一个数据缓冲区,将其大小复位为0可使用sp_cacheconfigpubs_log,”0“. 则将缓冲区状态变为”pend/del“,重启SQLSERVER后此改变生效.在执行该操作前,缓冲区需保持激活状态,捆绑至缓冲区的所有对象仍使用该缓冲区执行I/O操作.若有对象捆绑于待删除的数据缓冲区,则SQLSERVER重启后,缓冲区的捆绑被标记为无效,所有无效缓冲区捆绑的对象都使用默认数据缓冲区.当捆绑被标记为无效时,警告信息将被输入错误日志.注意,默认数据缓冲区不能删除。
(责任编辑:铭铭)
IGBT缓冲电路研究 篇3
全控型器件IGBT在电力电子装置中得到了广泛的应用, 随着IGBT功率和电压等级的不断提高, 对IGBT的保护就显得尤为重要。主回路中分布电感的存在, 导致在IGBT关断时出现尖峰电压。过高的尖峰电压会损坏IGBT, 也可能导致IGBT误导通, 带来更严重的后果。在IGBT的实际应用电路中, 均需要设置缓冲电路以吸收尖峰电压。
缓冲电路有有损缓冲和无损缓冲2种形式。无损缓冲电路在吸收尖峰电压的同时可以减少IGBT的开关损耗, 但是在主回路中增加了缓冲电感, 无法应用于大功率场合。有损缓冲虽然有一定的能量损耗, 但是结构简单、效果明显, 因此应用较为广泛。
1 常用缓冲电路
分布电感是主电路的固有特性, 在IGBT关断时会导致尖峰电压的出现。虽然可以通过适当方法减小分布电感, 但是无法完全消除, 所以必须通过外加缓冲电路来吸收尖峰电压。逆变器采用的拓扑结构通常有两电平和三电平2种形式。
1.1 两电平拓扑结构的缓冲电路
图1为两电平逆变器缓冲电路的常见形式, 根据主电路额定电流的大小选取不同的形式。形式 (a) 结构简单, 应用于主电路电流为10~100 A的小功率场合;形式 (b) (c) 应用于主电路电流为150~300 A的中小功率场合;形式 (d) (e) 应用于主电路电流大于400 A的中等功率和大功率场合。
1.2 二极管箝位型三电平拓扑结构的缓冲电路
对于三电平拓扑结构的缓冲电路, 主要有3种较为实用的形式, 如图2所示。形式 (a) 多应用于小功率场合;形式 (b) 多应用于中小功率场合, 但是缓冲电路中的电阻会消耗一部分能量, 采用形式 (c) 的缓冲电路可以解决这个问题;在大功率场合, 可以考虑应用形式 (c) 。
2 缓冲电路分析与设计
从图1和图2可以看出, RCD缓冲电路可以满足两电平和三电平的需要。以图1 (d) 所示的RCD缓冲吸收电路为例, 对缓冲电路吸收过电压的过程进行分析, 并给出参数的计算方法以及缓冲电路在器件选型方面的注意事项。
2.1 缓冲电路工作原理分析
VT1关断时, 两端电压升高, VDs1导通, 通过回路 (1) 向电容Cs1充电, Cs1的存在限制了VT1两端电压上升的速度, 消减了尖峰电压。同时, 由于Cs1限制电压上升的速度, 减小了上升电压和下降电流的重叠, 从而降低了IGBT的关断损耗。
VT1开通时, 两端电压下降, Cs1通过回路 (2) 向VT1放电, 有助于达到擎住电流值, 使VT1快速开通。由于电流上升的速率增加, 开通时间缩短, 同样可以减小电压和电流的重叠, 减小开通损耗。
2.2 缓冲电路的参数设计
2.2.1 电容Cs1参数设计
由于VT1的放电回路中存在电阻, 该电阻在放电过程中所消耗的能量即为电容Cs1充电 (通常是输入电压的2倍) 的能量。电容在放电前所储存的能量为所以在一个周期内Rs1的平均损耗为:
式中, T为IGBT管的开关周期。
式 (1) 表明, Rs1能量损耗与Cs1的大小成比例, 电容越大, 能量损耗越大。从能量损耗的角度考虑, Cs1值的选取应尽量小, 但是小的Cs1值会影响缓冲电路的效果, 因此需要综合考虑这2个方面的因素来确定Cs1值。下面给出一种较好的选择电容的方法。
当VT1开始关断时, 一部分集电极峰值电流向Cs1充电, Cs1两端电压升高, 假设流过Cs1的电流为峰值电流的一半, Cs1两端电压的上升时间为tf, 则有:
式中, Ip为集电极峰值电流;tf为IGBT集电极电流从初始值下降到0的时间。
缓冲电路中吸收电容的最小耐压值应为主回路中IGBT的额定电压值, 耐压值选取过小会给主回路的安全带来隐患。这里需要指出的是, 缓冲电路中的电容需要选择无感电容, 常用的无感电容品牌有美国的CDE、意大利的ICEL、印度的ALCON、加拿大的EACO、德国的WIMA等。
2.2.2 电阻Rs1参数设计
缓冲电路要求在每次IGBT关断之前, Cs1必须将电荷完全释放。因此, Rs1的选取必须保证在IGBT开通后, 将Cs1电荷释放到所充电荷的5%以下, 即:
式中, ton (min) 为最小导通时间, 可从器件手册上获得。
功率为:
同样, 缓冲电路的电阻也需要选择无感电阻, 常用的无感电阻的品牌有韩国的3RLab等, 国内众多生产电阻的厂商也有无感电阻。
2.2.3 二极管VDs1设计
缓冲回路所使用的二极管必须选用快恢复二极管, 如仙童公司的MUR系列。二极管最小耐压值选取为主回路中IGBT的额定电压值。
3 设计实例
为验证参数设计的正确性, 结合具体设计实例, 在PSpice软件中搭建仿真模型, 并进行仿真分析。
IGBT型号为BSM50GB120DLC;主电路参数为:Vdc=200 V, L=0.5 m H, Ls=75μH, fsw=5 k Hz。
依据式 (1) 、 (2) 、 (3) 可得, RCD参数为Rs=10Ω, PRs1=10 W;无感电容选择ALCON, 耐压值为2 000 V, Cs=0.44μF, 实际应用中选择2个0.22μF的电容并联使用;快恢复二极管型号为MUR860, 耐压值为600 V, 在实际应用中选择2个二极管串联使用。仿真结果如图3所示。
图4为硬件测试电路所得到的波形, 由于主电路电阻器功率的限制, 直流电压Vdc=10 V。从图4可以看出, RCD缓冲电路吸收了IGBT的关断尖峰电压。
4 结语
电力电子装置主回路中杂散电感的存在导致功率器件在关断时出现尖峰电压, 过高的尖峰电压会使功率器件因过电压而损坏, 影响系统的安全运行。而杂散电感是主回路的固有特性, 因此必须通过附加的缓冲电路来吸收尖峰电压。文中列举了当前比较实用的缓冲电路形式, 并指出RCD缓冲电路具有通用性。PSpice仿真和硬件仿真表明, RCD缓冲电路可以有效吸收功率器件的关断尖峰电压, 验证了理论设计的正确性和有效性。
参考文献
[1]吴忠智, 吴加林.GTR和IGBT吸收电路参数的选择[J].电力电子技术, 1994, 11 (4)
[2]周跃庆, 尹中明.一种新型IGBT缓冲电路的设计[J].电焊机, 2004, 34 (10)
缓冲造句精选 篇4
2. 当RAM访问速度与微处理器速度相比较慢时,高速缓冲区将是很有用的,因为高速缓冲存储器的速度总比RAM存储器要快。
3. 每个电极槽内的缓冲液中带有等量的阴离子和阳离子,并且在电泳槽放置在毛细管的末端。
4. 此输出缓冲器可快速地将输出电压切换为低电平和高电平。
5. 将资料录集物件的栏位资料成员聚集在一起,组成一个编辑缓冲区,储存一个资料录的选定资料行。
6. 要想创建一个更能经受用户检验的功能,我们除了需要正常的撤销堆栈外,还要创建一个收集所有已删除文本或者数据的独立缓冲区。
7. 没有执行时检查来这一防止写入超过缓冲区末尾,所以程式员必须在其自己的程式码中执行这一检查,否则继续下去会遇到问题。
8. 流水化的指令缓冲存储器通常被用于高频率处理器中,以提高取指带宽。
9. 提出了一种采用互感元件构成的缓冲式软开关电路的拓扑,同时给出了电路的分析结果和参数设计方法。
10. 相反,表的页宽是由相应的缓冲池的页宽来确定的,这个缓冲池也就是为包含该表的表空间所指定的缓冲池。
11. 降低顶缸速度是以增加换向时间和提高缓冲压力的代价来实现的。
13. 这个推理是基于:如果你不穿鞋的话,你就不得不用正确的方式跑步。因为我们穿鞋的时候大多数都用脚跟带动脚趾的前进方式,这很可能是因为跑步鞋在鞋跟的设计上注重缓冲。
14. 监狱局在部长和他的批评者中间扮演缓冲角色。
15. 更敏感的还有,朝鲜半岛要不要统一,要不要把北朝鲜设置成联合国保护下的缓冲带?
16. 被缓冲的值在代码块结末的不分必须被回复,因为别名可能重新起效。
17. 利用本实用新型提供的液压油缸,能快速精确的调整缓冲力,从而能提高生产效率及产品合格率。
18. 在履带式推土机中安装弹性悬架,可对其行走机构中的振动冲击进行有效的缓冲。
19. 应该只有在拖动光标进入自动滚屏敏感带时,对时间进行合理缓冲约半秒钟后再开始启动。
20. 作为机械设备的安全装置之一,缓冲器被广泛应用于交通电力建筑及动力机械等工程领域的抗震缓冲。
21. 整个妊娠期变化的要求,是通过妊娠后半期消耗体内储存的脂肪来缓冲的。
22. 任何允许外部实体来输入数据的程序都容易受到恶意的攻击,例如缓冲区溢出和嵌入式控制字符。
23. 在隔离墙的巴勒斯坦一侧有一个缓冲地带,它的宽度不一,管理的严格程度也和哨兵的心情有关。
24. 这款令人印象深刻的新鞋,其后跟的中底和大底在踏地时会向外延展以起到缓冲作用。
25. 那场感情,她豁出了自己,一丝也余力也没有留下。而他是在她最快乐的时候骤然离开,中途没有争吵,没有冷战,没有给过她机会缓冲,让热情消散,如同一首歌,唱到了最酣畅处,嘎然而止。辛夷坞
26. 现如今,中国许多的繁荣城镇正在发挥着经济冲击缓冲器的作用,辛集也是其中的典型代表.
27. 方法:采用氯化钙和磷酸氢二钠缓冲溶液交替矿化的方法,在丝素膜上仿生沉积羟基磷灰石。
28. 碳酸氢钾溶液组成很好的缓冲溶液。
生产系统瓶颈缓冲建模研究 篇5
关键词:瓶颈缓冲,建模,多机工序,生产系统
瓶颈缓冲一般用时间缓冲[1]的形式表示, 即为保证瓶颈正常运行而提前一定时间单位向其投入在制品。瓶颈缓冲的设置对生产系统运行有重要影响, 缓冲过大, 物料在瓶颈工序前等待时间过长, 导致在制品库存增加;缓冲过小, 不能很好地保护瓶颈工序, 影响生产物流的平衡。
关于瓶颈缓冲问题, 国内外有不少学者进行研究, 如徐学军等[2]和王凤洲等[3]取瓶颈工序前各道工序加工时间之和的固定比例作为瓶颈缓冲量。Eli Schragenheim[4], RONENB[5], SCHRAGENHEI-ME[6], WUSY[7]都是取瓶颈机器生产前置时间一定比例作为瓶颈缓冲量。Vguide D R[8]提出Guide缓冲量计算模型, 以一个固定的缓冲尺寸系数乘以生产设备的最小加工时间作为缓冲量。Zequeira等[9]研究了最优缓冲库存量与期望设备维修率之间的关系, 为制定设备维修计划提供重要依据。李爱华等[10]建立了单产品下考虑平均维修时间、平均故障间隔时间的瓶颈缓冲模型。陈俊等[11]在李爱华研究的基础上针对再制造系统加工时间和加工路线的不确定性加入一个系数对模型进行修正。王国磊等[12]提出了一种基于可用度理论的缓冲时间估算方法, 将瓶颈前的每道工序看成独立的单部件可修系统, 由马尔可夫过程方法根据故障率和维修率得到该工序的持续时间, 从而估算必需的缓冲时间。陈伟达等[13]在考虑机器平均维修时间、平均故障间隔时间等生产波动影响因素的基础上, 结合再制造系统中废旧品损毁情况不确定所导致的零部件可再利用率不确定、某些零部件加工时产生回流生产的特性, 研究了再制造系统的瓶颈缓冲设置。叶涛锋等[14]在文献[10]研究的基础上, 基于对不同产品生产时间的切换研究了瓶颈缓冲。刘远等[15]针对灰信息 (如机器的故障率和修复率表现为灰数形式, 无法精确数值描述) 下关键设备生产缓冲问题, 构建关键设备生产缓冲的灰色Petri网模型, 结合遗传算法进行仿真运算, 探寻其最优解。
以上方法基本可归纳为两种情况, 一是基于经验估计瓶颈缓冲, 二是考虑机器平均维修时间、平均故障间隔时间等因素对缓冲建模。两种方法中, 前者不够精确, 依据的理由不够充分;后者考虑的因素因果关系明确, 结果相对准确, 但大多数论文都假定各个工序只有单个机器, 不完全符合生产实际。本文基于在制品库存成本、平均故障间隔时间, 平均维修时间建立了瓶颈缓冲的基本模型;并针对实际生产系统中单机工序、多机工序并存的情况, 面向可靠度最小的工序, 研究工序在制品对瓶颈缓冲的修正模型, 以及其他生产波动因素对缓冲的影响, 以期达到更加精确的瓶颈缓冲量。
1 瓶颈缓冲基本模型的建立
在设置生产系统的瓶颈缓冲时, 在制品库存成本、平均故障维修时间和平均故障间隔时间是直接关联的因素。缓冲量大, 虽然有利于生产系统稳定, 但也提高了生产成本, 需要在缓冲与生产成本之间找到平衡点。而如果工序故障的平均维修时间较短, 缓冲就可设置得小一些, 因为其所产生的系统波动较小。如果生产系统在平均故障间隔时间内不能恢复所设置的缓冲量, 则说明缓冲设置过小, 不足以弥补工序故障所带来的波动, 而对生产系统运行产生影响。因此瓶颈缓冲模型的建立将综合考虑这三方面因素。
1.1 以成本最小为目标建立瓶颈缓冲模型
为保证瓶颈正常运行, 避免因前面工序设备故障等因素引发瓶颈闲置, 往往将工序间的在制品量在正常生产所需的基本量的基础上再增加一定的量, 即在制品增量, 该增量所消耗的生产时间就是缓冲。假设I表示在制品增量, p瓶表示瓶颈的生产能力, 则瓶颈缓冲可表示为
实际生产中, 在制品增量I越少, 则缓冲导致的成本就越小, 但I如果太少又可能使瓶颈闲置等待而造成损失, 这里就涉及故障设备的维修度M系 (t) , 因此需要首先对维修度计算进行研究。
1.1.1 系统维修度M系 (t) 的计算
瓶颈前的生产系统模型, 如图1所示, 假设瓶颈前共有i3道工序, 其中k1=1、2, …i1为单机工序, μk1为设备k1的维修率, k2=i1+1, i1+2, …, i2, i2+1, …, i3为多机工序, nk2为k2工序中的设备数量, hk2=1, 2, …, nk2为某道多机工序中的某台设备, μhk2为设备hk2的维修率。
假设每台设备的维修度服从负指数分布, 即M (t) =1-e-μt,
某道多机工序的维修度
瓶颈前生产系统的维修度为:
1.1.2 成本最小的瓶颈缓冲的计算
设w为瓶颈工序闲置时的单位时间损失, W (I) 为瓶颈闲置的损失期望。Cv表示在制品单位时间内的单位库存成本。tr为平均故障间隔时间, L为计划期时间。在计划期L内, 由于瓶颈前的工序设备发生故障而导致的平均产出损失期望为
单位时间在制品库存占用成本与平均产出损失和[6]为
由此可得成本损失最小的瓶颈缓冲最优解BS1。
1.2 考虑平均维修时间下的缓冲设置
设tr为系统的平均维修时间, 当系统出现故障时, 缓冲量的设置至少要大于tr, 否则在系统的维修过程中, 瓶颈工序就会因饥饿而停机, 使系统运行不稳定。因此考虑平均维修时间时的瓶颈缓冲BS2可表示为
1.3 考虑平均故障间隔时间下的缓冲设置
设考虑平均故障间隔时间tF时的缓冲为BS3, pmin为瓶颈工序前生产能力最小的工序的生产能力, 则在平均故障间隔时间内, 瓶颈前各工序可输出的最大物流量为
由此可得
如果max (BS1, BS2) <BS3, 表明考虑前两因素所设置的缓冲在平均故障间隔时间内能得到补充而不影响在下次故障时的正常运作。
当max (BS1, BS2) >BS3, 表明考虑前两因素所设置的缓冲无法在平均故障间隔时间内得到完全补充而可能对下次发生故障时的系统运作产生影响。为避免这种情况发生, 瓶颈缓冲需增加每次故障无法补充的那部分量。令z=max (BS1, BS2) -BS3, 即平均故障间隔时间内缓冲量的不足部分, 此时,
其中:相当于在计划期L内的故障次数。
综上, 瓶颈缓冲的基本模型为
2 基于工序在制品的瓶颈缓冲基本模型的修正
以上研究仅是考虑在制品增量成本、平均故障间隔时间和平均维修时间的情况来设置瓶颈缓冲, 并没考虑到瓶颈工序前的某道工序出现故障时, 其之后工序加工的在制品也有部分可充当缓冲的情况。因为一个工序加工的在制品以转运批量的形式传递到下一道工序, 某一工序若发生故障, 其后的工序还可继续工作, 所完成的在制品还可继续向瓶颈输送。
在生产系统中, 一般是单机工序和多机工序并存, 即系统各工序是以串联并联混合的形式存在, 如图1所示, 而不同工序的故障对系统物流有不同的影响。对于瓶颈前有i3道工序的生产系统而言, 若其中某单机工序出现故障, 则使系统物流断流, 而故障工序到瓶颈工序之间的各工序仍可继续生产, 其在制品有部分可充当缓冲;如果是其中某一多机工序出现故障, 一般生产系统不会断流, 但会减少物流, 此时故障工序后原先生产的在制品仍将继续向瓶颈输送, 而故障后物流减少了的在制品也将送往瓶颈, 这些在制品有部分也可充当缓冲。因此需对前面的缓冲基本模型进行修正, 以准确设置瓶颈缓冲。
下面以生产系统中可靠度最小的工序出现故障的情况研究瓶颈缓冲基本模型的修正, 因为该工序出现故障的概率最大, 是最可能发生的情况, 由于这种情况可能出现在单机工序, 也可能是多机工序, 因而缓冲基本模型的修正分单机工序和多机工序两方面研究。
2.1 单机工序可靠度最小的情况
如图2所示, 假设每道工序间的转运批量为q, 整个生产系统可靠度最小的工序为单机工序k, 若其出现故障, 则之后共有 (i3-k) q的在制品能够到达瓶颈, 为了避免k工序重新正常运行后瓶颈出现断流, 这些在制品不能全部用作缓冲, 必需保留一定的量。
如何确定该保留量以保证生产系统不出现断流?根据TOC原理, 系统正常运行时以瓶颈的生产节拍控制瓶颈之前各工序的生产节拍。当故障工序k重新正常运行时, k到瓶颈前工序i3之间的生产链须以最快的速度生产以减少故障带来的损失, 由于其各工序的生产能力都大于瓶颈, 因此以其中生产能力最小的工序为生产节拍所需要的在制品加工时间即是系统需要的保留时间, 而这部分时间转化为在制品便是所需在制品的保留量。
设当单机工序k出现故障时, 其后的生产系统可作为缓冲量的部分为, 修正缓冲量为。根据上述分析, 的计算公式有
其中为单机工序k出现故障时, 之后工序正常运行下在制品到达瓶颈所需的时间。表示故障工序k恢复运行后各工序在制品到达瓶颈的最短时间。
因此, 单机工序k出现故障时瓶颈缓冲基本模型可修正为
2.2 多机工序可靠度最小的情况
当生产系统中可靠度最小的工序为多机工序时, 其中一台设备发生故障会出现两种情况, 一是提高工序中其他设备的利用率能够弥补故障设备的能力损失, 此时系统正常运行, 其瓶颈缓冲就是基本模型所得的大小BS*;二是提高了工序中其他设备的利用率仍不能弥补故障设备的能力损失, 此时该多机工序的生产能力降低, 输出物流减少, 其后到瓶颈工序之间的在制品量减少。这种情况下的瓶颈缓冲修正需要考虑该工序的生产能力损失率。
2.2.1 多机工序故障时的生产能力损失率
当多机工序中的某一设备故障且导致该工序生产能力降低, 表明该多机工序的生产能力受到损失。故障工序生产能力损失率是衡量该工序生产能力损失的一个参数, 用工序故障前的生产能力减去故障后生产能力的差值与故障前生产能力的比值来计算, 设ηk2表示第k2个多机工序中一台机器故障时的生产能力损失率, 其公式为
2.2.2 瓶颈缓冲的修正
若生产系统中多机工序k可靠度最小, 其中的某设备出现故障导致该多机工序出现能力损失, 设为其后生产系统可作为缓冲的部分, 计算式为
则修正的瓶颈缓冲BS'多计算为
综上, 当可靠度最小的k工序出现故障时, 考虑工序的在制品, 瓶颈缓冲的修正值BS'可归纳为
3 考虑生产系统其他波动的瓶颈缓冲基本模型的修正
对于一个系统而言, 除了机器故障与维修这两个方面的波动外, 还有如加工操作失败、原料短缺、加工时间变动、到达时间变动等等一些难以预料的波动产生, 这些波动往往无法全面考虑, 且不能很好地用定量的方式去研究。
通过生产周期的变化来整体衡量系统的波动情况。因为生产周期是系统运行的最终结果, 由各种波动相互影响、综合作用所致, 因此将瓶颈前各工序组成一个生产周期, 用该生产周期内正常运行不存在故障维修的生产周期方差 (DCT) , 从整体的角度去考量其他波动对生产周期的影响, 将其与平均生产周期 (MCT) 的比值[16]来表示生产系统异常波动的比例, 进而修正前面所设置的缓冲。
据此, 瓶颈缓冲的计算最终可修正为
4 算例分析
现以有八道工序 (最后一道工序为瓶颈工序) 的简单产品瓶颈前生产线为例, 如图3。图中数字表示工序数, 其中单机工序为第1、5道工序, 存在能力损失的多机工序为第2、4、6道工序, 不存在能力损失的多机工序为第3、7道工序, 多机工序内的设备数量都为3台。
各相关参数如表1所示。
当第一道单机工序为可靠度最小的工序, 则
当第二道多机工序为可靠度最小的工序, 则
5结语
缓冲包装专利技术综述 篇6
受我国政治经济等诸多客观因素的制约,我国的缓冲包装技术发展相比于欧美明显滞后。在20世纪80年代之前,我国的缓冲包装技术研发工作进展非常缓慢。改革开放后,随着我国经济体制的持续进步与发展,我国的缓冲包装技术也进入了发展时期。目前,我国在缓冲包装材料生产方面已具有量的优势,但在质的提高问题上,我国仍存在较大的提升空间。特别是进入21世纪后,节能环保的理念更为深入人心,走可持续发展的道路已势在必行。
2 国内外缓冲包装专利发展分析
2.1 国内专利发展分析
2.1.1 国内专利申请趋势分析。
受经济发展等因素的制约,我国的缓冲包装起步较晚,20世纪80年代初主要是依靠引进国外生产设备及技术。直至改革开放后,随着我国生产、制造业的发展,物流运输对缓冲包装的需求不断增强,我国缓冲包装得以加快发展。2000年后,缓冲包装技术的专利申请快速增长,如图1所示。
2.1.2 国内重要申请人分析。
缓冲包装的重要申请人大多分布在长三角、珠三角等制造业发达的地区,申请量居于首位的均是大规模的液晶显示器生产商,其对缓冲包装需求较大。其他缓冲包装生产企业与产品制造之间存在密切联系,缓冲包装生产企业以产品制造为依托,为其产品的运输提供合理的缓冲包装材料及包装设计方案。随着制造业的发展和商品流通的加剧,为避免商品运输过程中的破损,缓冲包装不断加速发展,缓冲包装生产企业也不再是简单的进行机械生产,而是更加注重“一体化服务”即集新型包装材料研发、包装产品设计与方案优化等于一体,更加注重知识产权保护,用自身技术占据市场。
2.1.3 国内专利申请领域分布。
图2为国内专利申请领域分布,从图中可以看出,缓冲包装的专利申请主要集中在缓冲包装自身的功能、结构领域,如B65D81/02、B65D81/03、B65D81/05等;缓冲包装的专利申请还集中在其针对的物品上,如B65D85/30、B65D85/48、B65D85/68;此外,缓冲包装通常还作为包装专利申请的部分特征,如B65D5/50、B65D77/26。
2.2 全球专利发展分析
2.2.1 全球专利申请趋势分析。
从图3中可以看出,缓冲包装在全球的发展经过了起步、缓慢发展、快速发展三个阶段。
(1)起步阶段。缓冲包装自起源至上世纪70年代处于起步阶段,相关专利申请较少。主要是由于此阶段经济水平相对落后,商品流通较少,对缓冲包装的需求较低。(2)缓慢发展阶段。上世纪70-90年代,商品流通的增多促进了缓冲包装的发展,但发展速度仍然缓慢,技术相对落后。(3)快速发展阶段。上世纪90年代后,全球化进程不断加快,商品流通的需求进一步促使缓冲包装快速发展,而缓冲包装技术的发展保障了商品流通的可行性,进而直接的影响着商品经济市场的发展。
2.2.2 全球专利申请国别及重要申请人分析。
图4是全球缓冲包装专利申请国别分布情况,从中可以看出,中国、美国、日本占据了全球申请量的一半以上,以上国家均为制造产业发达,进出口贸易繁荣的国家。而我国的缓冲包装虽然起步较晚,但发展迅速,已超越很多发达国家成为申请量最大的国家,这除了与我国是制造业大国、进出口贸易频繁相关外,还与我国近几年鼓励发明专利申请、注重知识产权保护有较大关系。
与国内申请人分布情况类似,全球重要申请人很多也是制造企业,本身生产能力强,工厂数量多、分布广泛,对缓冲包装有着较大的需求与要求,如MATSUSHITA DENKI SANGYO KK(松下电器产业株式会社);另外,虽然我国的缓冲包装专利申请总量已居世界首位,但专利申请分散,国内申请量首位的企业全球排名仅第10位,说明我国的缓冲包装不仅要在量上有较大的发展,更要注重自主研发,不断增强企业实力,实现质的提升。
3结束语
缓冲区溢出攻击与防范 篇7
关键词:缓冲区,溢出,攻击
0 引言
缓冲区溢出是一个很严重的安全问题。从攻击者的角度看,现在缓冲区溢出已经发展成了基于栈的缓冲区溢出、基于堆/BSS的缓冲区溢出、格式化缓冲区溢出等多种方式,而且有很多的模板可以直接套用,实现方便;而从编程人员角度,程序员难免会编写出缓冲区溢出漏洞的代码,即使是有经验的程序员也是如此。这两个因素共同作用,加剧了缓冲区溢出引发的安全问题。
1 缓冲区溢出攻击概述
缓冲区是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据。缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量,溢出的数据覆盖其他的数据缓冲区域。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。
一般情况下,缓冲区溢出会出现以下后果:
①被覆盖的其他数据区中的数据永远丢失;
②如果被覆盖的信息中有能够被程序调用的子程序的列表信息,将引起应用程序运行失败,甚至引起机器重新启动等;
③如果覆盖其他数据区的数据是黑客的入侵程序代码,黑客就获取了程序的控制权。如果该程序是以root运行的,黑客就获得了root权限,然后就可以编译黑客程序、留下入侵后门,实施进一步的攻击。按照这种原理进行的黑客入侵叫做缓冲区溢出攻击。
2 缓冲区溢出的原因
缓冲区溢出最根本的原因是使用不安全的语言,如C语言。很多操作系统以及在操作系统上运行的许多应用程序都是用C语言编写的,而C语言对数组和指针的操作没有自动的边界检查机制,更严重的是一些标准的对字符串操作的库函数本身就是不安全的。
3 缓冲区溢出攻击的原理
攻击者善于在系统当中发现容易产生缓冲区溢出之处,运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,感染或者攻击其他计算机。
下面是一个简单实例,可以显示缓冲区溢出是如何产生的以及缓冲区溢出是如何被黑客利用的:
下面是函数的执行情况:
(1)函数使用长度为240个字节的缓冲区,该缓冲区的内存地址是00000077
缓冲区地址(8字节)00000077
缓冲区内容(240字节)空白
旧基址指针(8字节)12345678
返回的指令指针(8字节)00401000
(2)程序被执行时,函数开始将B填写到缓冲区中
缓冲区地址(8字节)00000077
缓冲区内容(240字节)BBBBBBBBB……
旧基址指针(8字节)12345678
返回的指令指针(8字节)00401000
(3)超过240个字节,缓冲区被写满了,240个字节以后的内容溢出到下一个内存区域,覆盖旧基址指针和返回指令指针
缓冲区地址(8字节)00000077
缓冲区内容(240字节)BBBBBBBBB……
旧基址指针(8字节)BBBBBBBB
返回的指令指针(8字节)BBBBBBBB
(4)现在假设函数没有填写B,而是插入了恶意代码
缓冲区地址(8字节)00000077
缓冲区内容(240字节)恶意代码……
旧基址指针(8字节)12345678
返回的指令指针(8字节)40100000
(5)缓冲区被填满了恶意代码,旧基址指针也被改写
缓冲区地址(8字节)00000077
缓冲区内容(240字节)恶意代码……
旧基址指针(8字节)××××××××
返回的指令指针(8字节)00401000
(6)接下来返回的指令指针也被改写,不是随机而是根据现在包含恶意代码的缓冲区本身的地址
缓冲区地址(8字节)00000077
缓冲区内容(240字节)恶意代码……
旧基址指针(8字节)××××××××
返回的指令指针(8字节)00000077
(7)在缓冲区被填满之后,程序定位在指令指针提供的地址处,并且开始执行恶意代码。
4 缓冲区溢出攻击的方法
(1)在程序的地址空间里安排适当的代码
攻击者向被攻击的程序输入一个字符串,程序会把这个字符串放到缓冲区里,这个字符串包含的数据是可以在这个被攻击的硬件平台上运行的指令序列。攻击者对已经在被攻击的程序中的代码传递一些参数,然后使程序跳转到他们的目标位置。
(2)控制程序转移到攻击代码
该方法寻求改变程序的执行流程,使之跳转到攻击代码。最基本的就是溢出一个没有边界检查或者其他弱点的缓冲区,这样就扰乱了程序的正常执行顺序。
(3)综合代码植入和流程控制技术
攻击者定位一个可供溢出的自动变量,然后向程序传递一个很大的字符串,在引发缓冲区溢出改变激活纪录的同时植入了代码。
5 缓冲区溢出攻击的防范
5.1 编写正确的代码
为了帮助经验不足的程序员编写安全正确的程序,人们开发了一些工具和技术,这些工具可以通过人为的缓冲区溢出来寻找代码的安全漏洞以及侦测缓冲区溢出的存在。
5.2 非执行的缓冲区
通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。
5.3 数组边界检查
所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内。最直接的方法是检查所有的数组操作,但是通常可以用一些优化的技术来减少检查的次数。
5.4 程序完整性检查
(1)手写的堆栈监测
Snarskii为FreeBSD开发了一套定制的能通过监测CPU堆栈来确定缓冲区溢出的libc。这个应用完全用手工汇编写的,而且只保护libc中的当前有效纪录函数。这个应用达到了设计要求,对于基于libc库函数的攻击具有很好的防卫,但是不能防卫其它方式的攻击。
(2)堆栈保护:编译器生成的有效纪录完整性检测
堆栈保护是一种提供程序指针完整性检查的编译器技术,通过检查函数活动纪录中的返回地址来实现。
(3)指针保护:编译器生成程序指针完整性检查
通过在所有的代码指针之后放置附加字节来检验指针在被调用之前的合法性。如果检验失败,会发出报警信号和退出程序的执行,就如同在堆栈保护中的行为一样。
6 结束语
在本文中,我们详细叙述了缓冲区溢出攻击的概念、方法和防范措施,由于缓冲区溢出攻击是目前常见的攻击手段,所以进行这个方面的研究工作是有意义和成效的。事实研究表明,堆栈保护和非执行缓冲区技术对大多数的攻击都能有效地防御,指针保护的方法能对其它的攻击进行有效的防御。
参考文献
[1]徐卓峰.信息安全技术[M].武汉:武汉理工大学出版社,2004.
[2]李海泉,李健.计算机系统安全[M].北京:人民邮电出版社,2001.
[3]刘晨,张滨.黑客与网络安全[M].北京:航空工业出版社,1999.
电磁缓冲称重式油井计量技术 篇8
关键词:称重式,油井计量,电磁缓冲,冲击
1 引言
油井产量的计量是油田生产管理中的一项重要工作,对油井产量进行准确、及时的计量,对掌握油藏状况,制定生产方案,具有重要的指导意义。目前我国多数油田已经进入开发后期,需要准确及时的了解油井的生产状况,为生产管理提供真实可信的数据,对油井计量精度的要求必然越来越高。
国内常见的原油计量方法:1、玻璃管量油;2、电极液位量油;3、翻斗量油;4、液面恢复法;5、功图法。目前采油厂多为计量间计量,由专职的计量人员每天计量各采油井的产液量,不仅浪费人力与时间,而且每口油井的计量时间短,次数少,因而存在较大的人为因素引起的误差。由传统的计量方法所得到的产液量,无论是使用分离器常数换算还是差压液位换算,始终还是由测量液体体积,通过密度折算出来的产液量,由于其密度的差异性,因而所得到的产液量必然存在一定的误差。
称重式油井计量器解决了原油含气不易排出,人工计量难度大、费时费力的现状,该计量器能消除由于油中含气造成的假体积而带来的测量误差,采用称重的方式对流经计量器的原油进行称重,通过累计一定时间内流过计量器中的原油重量,计算出油井的产液量。该计量器集机、电于一身,操作简便[1]。
目前使用的称重式油井计量器,通过两个翻斗轮流翻转称重的方式实时在线计量原油产量,消除了油中含气、稠油沾粘带来的计量误差[2]。但是其翻斗轮流翻转过程中存在冲击力,容易造成器件损坏和影响计量准确度。有的采用液压原理解决翻斗翻转过程中的冲击力问题,但是难以实施[3]。本文针对其在翻转计量时经常产生冲击力,影响计量准确度的问题,提出电磁缓冲称重式油井计量技术,采用缓冲翻转的方式减小这个冲击力,以提高其计量准确性和减少维修次数,提高自动计量油井产量的效率。
2 称重式油井计量技术原理
如图所示称重式油井计量器主要由罐体、选井阀、计量翻斗、各种传感设备、PLC以及微机等控制系统组成。通过多通阀将被测油井的原油经分离器装入称重装置,利用产量算法即可得到累计流量,再换算成产量。电气系统是以S7200为核心,采入称重传感器、位置传感器、液位计、温度传感器等过程量。
在计量罐侧下部安装一多通阀,各路油井原油通过油井接口同时进入多通阀。通过计算机输入油井号,控制单相电机启、停,单相电机带动阀芯旋转,光电编码器安装在多通阀中作为位置检测,实现多通阀单路导通,从而实现单井产量的自动选井计量。
选定的单井原油送到罐体的顶部,进入分离器并经过翻斗称重,算出该口油井的产液量。其余油井的原油经罐体底部的管道流出直接进入出口汇管。
在计量罐顶部安装一分离伞,用来导出气体以便进行产气量的计量。计量罐底部装有液位自动控制调节器,以保证液面高于单井原油出口,实现单井产液量和产气量同时计量。
3 电磁缓冲翻斗翻转原理
如图2所示为翻斗翻转示意图。当液体进入到其中一个计量翻斗时,随着工作斗的液面逐渐升高,整个翻斗系统重心也逐渐偏移,而进入流体的不断增加,则这个翻斗的力矩不断的增加,当达到了翻斗翻转的条件是,工作斗的力矩大于闲置斗的力矩时,原有平衡将被打破,计量斗自动翻倒,将斗内液体倾倒在罐内,同时另一个斗开始工作。翻斗翻转条件为:
M1-翻斗1本身质量,Kg;M2-翻斗2本身质量,Kg;m1-翻斗1内流体质量,Kg;m2-翻斗2内残留流体质量,Kg;d1-翻斗1重心距轴中心距离,m;d2-翻斗2重心距轴中心距离,m;g-重力加速度,9.8m/s2。
电磁缓冲器利用计量器翻斗翻转产生的动力,带动永磁旋转式电磁制动装置转动,发出电能。由此产生与翻斗翻转方向相反的反转制动力矩,该制动力矩起到阻止翻斗翻转的作用,其输出的电能通过外接电阻转化为热能,达到缓冲的目的。
由于电阻消耗的热能与翻斗翻转速度成正比,翻斗翻转速度直接决定电阻能耗大小。翻斗静止时,不产生能耗。在翻斗和电磁制动装置之间配合增速齿轮组,并调整能耗电阻的阻值,可以调节缓冲效果,实现缓冲效果的最佳化。
如图3所示,电磁缓冲器由永磁旋转式电磁制动装置、增速齿轮组、设备法兰、拨叉等组成,翻斗上增加了机构引轴。计量过程中,翻斗引轴随翻斗作90度摆动,经过拨叉将运动传给增速齿轮组,带动永磁旋转式电磁制动装置转动,发出电能通过三个电阻消耗,达到能耗制动,实现缓冲效果的最佳化。
拨叉实现了翻斗与永磁旋转式电磁制动装置的连接,可以保证翻斗翻转初期为自由状态,不会影响计量的精度,翻转的后程才起到电磁制动缓冲的效果。
同时电器部分对电阻能耗进行检测,判断缓冲效果的好坏,以此监测电磁缓冲器的运行状况。图4所示为现场安装运行的缓冲器外观。
4 结束语
称重式油井计量器通过两个翻斗轮流翻转称重的方式实时在线计量原油产量,消除了油中含气、稠油沾粘带来的计量误差。采用缓冲翻转的方式减小了翻斗翻转时的冲击力,提了计量准确性,减少了维修次数。电磁缓冲称重式油井计量技术,解决了称重过程中内部机构机械冲击较大的问题,提高了设备的使用和维护周期。
参考文献
[1]孙兴革等.全自动称重式气液两相油井计量装置[P].发明专利:200510045861.2,2008年.
[2]丁亚军等.称重式油井计量器[P].实用新型专利:03211957.7,2005年.
给政策推广一个合理“缓冲期” 篇9
其一, 这种“柔性”退休制度有利于让那些身体健康、学历高、经验丰富的60多岁人员继续发挥余热。据相关专家解释:之所以要出台“柔性延长退休”政策, 是因为越是受教育年限长的人, 工作年龄越短。如果过早地让他们退休, 这也是一种人才浪费。当前, 上海提出柔性政策更主要的是针对这类人才。
其二, 我国人口平均预期寿命大幅延长, 意味着老龄化社会即将到来, 这也将会导致老人退休后养老金的支付压力会越来越大, 国家财政负担加重。而适当提高一些在重要岗位和关键部门的高端人才退休年龄, 一方面有利于增加养老金的积累, 另一方面有利于减缓由于人口老龄化带来的养老金支付压力。
其三, 这种“柔性”退休制度, 可以让那些不愿意延迟退休的同志到规定年龄时能正常退休, 保证其个人利益不受影响。况且, 老同志有老同志的经验, 年轻人有年轻人的魄力, 老中青结合, 工作才会配合得更好。
相关文章:
缓冲技术02-27
几种非金属矿缓冲回填材料性能研究02-27
缓冲包装方案设计02-27
缓冲结构02-27
工作满意感与建言行为的关系探索:组织承诺的缓冲影响02-27
柔性工装02-27
冲裁缓冲装置02-27
头脉冲试验02-27