一种防止网络爬虫死锁的资源配置方法技术

技术编号:11198681 阅读:60 留言:0更新日期:2015-03-26 05:31
本发明专利技术公开了一种防止网络爬虫死锁的资源配置方法,所述的方法主要包括:在系统运行过程中为爬虫进程动态的申请资源和试探性分配资源;计算此分配资源操作的安全性;基于安全性的分配成立或分配作废操作;重复以上操作,为系统各爬虫进程动态分配资源。通过采用所述防止网络爬虫死锁的资源配置方法,本发明专利技术提高了网络爬虫的效率和减少爬虫过程死锁的次数。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,所述的方法主要包括:在系统运行过程中为爬虫进程动态的申请资源和试探性分配资源;计算此分配资源操作的安全性;基于安全性的分配成立或分配作废操作;重复以上操作,为系统各爬虫进程动态分配资源。通过采用所述防止网络爬虫死锁的资源配置方法,本专利技术提高了网络爬虫的效率和减少爬虫过程死锁的次数。【专利说明】
本专利技术涉及,尤其涉及一种安全性判断的网络爬虫的资源配置方法。
技术介绍
当前,网络爬虫越来越成为人们获取信息和数据的主要渠道,传统的网络爬虫不能有效解决多线程网络爬虫中的死锁问题,且效率较低不能满足人们的需求。利用人工智能技术的进一步成熟和信息服务的多样化,网络爬虫算法正向着智能化、高效化、个性化的方向发展。 大型搜索引擎系统在抓取海量信息数据时,为了有效的提高网络爬虫的性能和效率,并满足系统数据下载需求,网络爬虫的设计通常包含一系列优化策略和原则,然而在长期的使用过程中,其容易发生死锁问题。
技术实现思路
本专利技术提出了,以解决现有技术中遇到的网络爬虫中死锁问题。 为解决上述问题,本专利技术所述的包括以下步骤:(1.1)在系统运行过程中为爬虫进程动态的申请资源和试探性分配资源;(1.2)计算此分配资源的安全性;(1.3)基于安全性的分配成立或分配作废操作;(1.4)重复执行步骤(1.1-1.3)为系统各爬虫进程动态分配资源。 进一步的,步骤(1.1)中所述的在系统运行过程中为爬虫进程动态的申请资源和试探性分配资源必须严格满足以下条件:爬虫进程提出某类资源分配请求时,请求的该类资源小于或等于该进程仍需要的这类资源数量;请求的资源小于或等于系统该类资源剩下的数量,若满足以上条件,系统做试探分配资源,修改资源分配数据;否则出错,等待用户重新申请或停止。 进一步的,步骤(1.2)中所述的计算此分配资源的安全性在于系统是否能找到一个安全序列。 进一步的,步骤(1.3)中基于安全性的分配成立或分配作废操作,若判断不会导致系统进入不安全状态,则(1.1)中爬虫进程的试探性分配成立;否则试探性分配作废,系统恢复原状,进程等待。 进一步的,系统为某个满足条件的爬虫进程做试探性分配资源时修改资源分配数据时,主要包括以下操作:(5.1)系统剩余资源更新:减去爬虫进程申请的资源数为更新后的结果;(5.2)爬虫进程仍需资源更新:减去爬虫进程申请的资源数为更新的结果; (5.3)系统已为该进程分配资源更新:加上爬虫进程申请的资源数为新的结果。 进一步的,安全序列是指对于序列中的每一个进程Pi,它以后尚需要的资源量不超过系统当前剩余资源量和所有爬虫进程Pj (j〈i)当前占有资源量之和。 进一步的,在试探性分配作废时,主要包含以下步骤:(7.1)系统剩余资源更新:加上爬虫进程申请的资源数为更新后的结果;(7.2)爬虫进程仍需资源更新:加上爬虫进程申请的资源数为更新后的结果;(7.3)系统已为该进程分配资源更新:减去爬虫进程申请的资源数为更新后的结果。 进一步的,安全序列的查找包含以下步骤:(8.1)设置工作向量Work,其初始值为当前系统各类资源剩余量;设置记录进程是否完成向量FINISH,对每个爬虫进程都设置为false,表示都未完成;(8.2)从爬虫进程集合中找到一个满足下述条件的爬虫进程=FINISH等于false ;仍需要的资源小于或等于Work向量,如找到,执行(8.3);否则,执行(8.4);(8.3)爬虫进程仍需要的资源小于系统剩余的资源,可以假设先将该进程执行,直至完成,从而释放资源,更新Work和FINISH向量,使Work等于Work加上该爬虫进程已经分配的资源,并将该进程FINISH设为true将并跳转到步骤(8.2);(8.4)如所有爬虫进程FINISH都等于true,则表示安全,即找到安全序列;否则表示系统不安全,无安全序列。 进一步的,步骤(1.4)中所述的重复执行步骤(1.1-1.3)为系统各爬虫进程动态分配资源,即重复为系统各爬虫进程申请资源、试探性分配资源、安全性检验、试探性分配成立或废除操作,实现系统各爬虫进程并行处理的过程。 本专利技术的有益效果是:本专利技术所构建的与一般的网络爬虫算法相比,能更好地满足高效率、少死锁的信息搜索要求。 【专利附图】【附图说明】 图1是本专利技术所述的防止网络爬虫死锁的资源配置方法示意图。 图2是本专利技术所述的防止网络爬虫死锁的资源配置方法流程图。 图3是本专利技术所述的系统安全序列查找方法流程图。 【具体实施方式】 为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实例施例,并参照附图,对本说明进一步详细说明。 图2为本专利技术所述的防止网络爬虫死锁的资源配置方法流程图,该方法包括以下步骤:步骤1:在系统运行过程中为爬虫进程动态的申请资源和试探性分配资源;若爬虫进程提出某类资源分配请求时,请求的该类资源小于或等于该进程仍需要的这类资源,且请求的资源小于或等于系统该类资源剩下的总量,则系统做试探分配资源,修改资源分配数据;否则出错,等待用户重新申请或停止。 定义资源向量S,是含有m个元素的数组,其中每个元素代表一类可利用的资源数目;定义最大需求矩阵M,它定义了系统中η个爬虫进程中的每个爬虫进程对m类资源的最大需求;定义分配矩阵A,它定义了系统中每一类资源当前已分配给每一个进程的资源数;定义需求矩阵N,表示每个进程尚需的各类资源数。 N=M-A(I)爬虫进程k提出请求R,则系统按如下规则进行判断: (I)如果R 〈=N ,则转到(2);否则,出错。 (2)如果 R 〈=S,则转到(3);否则,等待。 (3)系统试探分配资源,修改相关数据: S_=R A +=R N _=R 步骤2:计算此分配资源的安全性在于在系统中是否能找到一个安全的进程序列。安全序列的查找可按下面的步骤进行: (I)设置两个工作向量 Work 和 FINISH, Work=S ;FINISH= (false, false,…,false)。 (2)从爬虫进程集合中找到一个满足下述条件的进程: FINISH==false ; N〈=Work0 若找到,执行(3);否则,执行(4)。 (3)设进程获得资源,可顺利执行,直至完成,从而释放资源。 Work+=A ; FINISH=true ;跳到步骤(2)。 (4)若所有进程FINISH=true,则为找到安全序列,即为安全;否则即为找不到安全序列。 步骤3:基于安全性是否的分配成立或分配作废的实施,若在步骤2中得到试探性分配后系统存在安全序列,则试探性分配成立;否则试探性分配作废,系统恢复原状,进程等待。系统恢复原状操作: S+=R ; A _=R ; N +=R 。 步骤4:重复执行步骤I到3,直到各爬虫进程都运行完成,即在爬虫进程运行过程需要的资源都得到合理的分配。 以上所述的具体实例施例,对本专利技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本专利技术的具体实例而已,并不用于限制本专利技术,凡在本专利技术的精神和原则之内,所做的任何修改,等同替换、改进等,均应包含在本专利技术的保护范围之内。【权利要求】1.本文档来自技高网...

【技术保护点】
一种防止网络爬虫死锁的资源配置方法,其特征在于包括以下步骤:(1.1)在系统运行过程中为爬虫进程动态的申请资源和试探性分配资源;(1.2)计算此分配资源操作的安全性;(1.3) 基于安全性的分配成立或分配作废操作;(1.4)重复执行步骤(1.1‑1.3)为系统各爬虫进程动态分配资源。

【技术特征摘要】

【专利技术属性】
技术研发人员:李广凯王庆红周育忠韦嵘晖郑金
申请(专利权)人:中国南方电网有限责任公司电网技术研究中心南方电网科学研究院有限责任公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1