CN105335237A - 一种操作系统的死锁预防方法 - Google Patents

一种操作系统的死锁预防方法 Download PDF

Info

Publication number
CN105335237A
CN105335237A CN201510758180.4A CN201510758180A CN105335237A CN 105335237 A CN105335237 A CN 105335237A CN 201510758180 A CN201510758180 A CN 201510758180A CN 105335237 A CN105335237 A CN 105335237A
Authority
CN
China
Prior art keywords
resources
resource
queue
operating system
deadlock
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
CN201510758180.4A
Other languages
English (en)
Other versions
CN105335237B (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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510758180.4A priority Critical patent/CN105335237B/zh
Publication of CN105335237A publication Critical patent/CN105335237A/zh
Application granted granted Critical
Publication of CN105335237B publication Critical patent/CN105335237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开一种操作系统的死锁预防方法,属于系统资源配置领域;系统进程申请资源,判断申请的资源是可抢占资源还是不可抢占资源,如果是可抢占资源,则允许进程直接申请资源,对于不可抢占资源,需要检查阻塞队列是否为空,为了不影响系统的运行效率,规定只有当阻塞队列中已经有进程时才让其他进程执行在申请资源前先释放资源的操作,在阻塞队列无进程的情况下,直接判断系统剩余资源数是否满足申请的资源数量;本发明与其他传统死锁预防方法相比,不仅能预防操作系统死锁产生,对操作系统的运行效率影响较小,系统操作简单。

Description

一种操作系统的死锁预防方法
技术领域
本发明公开一种操作系统的死锁预防方法,属于系统资源配置领域。
背景技术
在计算机操作系统领域,操作系统的死锁现象是一个始终没有被很好的解决的问题。所谓死锁,是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
为了解决死锁的问题,人们提出了一系列解决方法,其中应用最广的是利用银行家算法进行死锁的解放。银行家算法是把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配等等。银行家算法,虽然解决了死锁的问题,但是对系统性能的消耗非常大,在进行资源分配之前,需要先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构,非常复杂。本发明提供一种操作系统的死锁预防方法,判断申请的资源是可抢占资源还是不可抢占资源,如果是可抢占资源,则一定不会引发死锁,对于不可抢占资源,检查阻塞队列是否为空,规定只有当阻塞队列中已经有进程时才让其他进程执行在申请资源前先释放资源的操作,以预防死锁现象的发生,与现有死锁预防方法相比,不仅能预防操作系统死锁产生,对操作系统的运行效率影响小,而且操作简单。
发明内容
本发明针对现有技术中预防操作系统死锁时,对系统性能的消耗非常大,系统内部运算较复杂的问题,提供一种操作系统的死锁预防方法,与现有死锁预防方法相比,不仅能预防操作系统死锁产生,对操作系统的运行效率影响小,而且操作简单。
本发明提出的具体方案是:
一种操作系统的死锁预防方法:
系统进程申请资源,判断申请的资源是否为可抢占资源,若否检查阻塞队列是否为空,阻塞队列为空,则判断系统剩余资源是否大于申请资源,大于则申请成功,否则该进程进入阻塞队列为阻塞状态;阻塞队列非空,则被阻塞进程释放占用的不可抢占资源,进程一次性申请在之前释放的资源与所需的新的资源,申请成功,则得到所需的全部系统资源,否则该进程唤醒阻塞队列中的第一个进程,该进程进入阻塞队列为阻塞状态,等待下次操作。
进程进入阻塞队列为阻塞状态,系统根据进程需要不可抢占资源的多少,排列进程在阻塞队列中的位置。
系统进程申请资源,判断申请的资源是否为可抢占资源,若为可抢占资源,则直接申请,进程运行至结束后唤醒阻塞队列中的第一个进程。
本发明的有益之处是:
本发明方法对系统进程申请资源,判断申请的资源是可抢占资源还是不可抢占资源,如果是可抢占资源,则允许进程直接申请资源,对于不可抢占资源,需要检查阻塞队列是否为空,为了不影响系统的运行效率,规定只有当阻塞队列中已经有进程时才让其他进程执行在申请资源前先释放资源的操作,在阻塞队列无进程的情况下,直接判断系统剩余资源数是否满足申请的资源数量;本发明与其他传统死锁预防方法相比,不仅能预防操作系统死锁产生,对操作系统的运行效率影响较小,系统操作简单。
附图说明
图1本发明方法工作流程示意图。
具体实施方式
一种操作系统的死锁预防方法:
系统进程申请资源,判断申请的资源是否为可抢占资源,若否检查阻塞队列是否为空,阻塞队列为空,则判断系统剩余资源是否大于申请资源,大于则申请成功,否则该进程进入阻塞队列为阻塞状态;阻塞队列非空,则被阻塞进程释放占用的不可抢占资源,进程一次性申请在之前释放的资源与所需的新的资源,申请成功,则得到所需的全部系统资源,否则该进程唤醒阻塞队列中的第一个进程,该进程进入阻塞队列为阻塞状态,等待下次操作。
根据上述方法及发明内容,结合附图,具体阐述预防操作系统进程发生死锁的方法:
对于系统中的每一个进程,执行如下操作:
进程在运行过程中,发现还要申请其他的资源(a),
则进程判断该资源属于可抢占资源还是不可抢占资源(b),
如果是可抢占资源,则直接申请(c)。
如果是不可抢占资源,则检查当前阻塞队列是否为空(d),
如果为空,则说明当前系统中没有被阻塞的进程,
若系统中剩余的资源数大于进程申请的资源数(e),则申请资源成功(f)。
若系统中剩余的资源数小于进程申请的资源数,则资源申请失败,该进程进入阻塞状态(g)。系统根据进程需要不可抢占资源的多少,排列进程在阻塞队列中的位置;
如果阻塞队列非空,说明当前系统中存在被阻塞的进程,则进程释放已经占有的全部不可抢占资源(h),进程一次性申请在之前释放的资源与所需的新的资源(i),
若资源申请成功,则得到所需的全部系统资源,进程继续运行(j),资源申请成功的进程运行结束后释放占有的所有资源并唤醒在阻塞队列中的第一个进程(m)。
否则申请资源失败,此时该进程需要唤醒阻塞队列中的第一个进程(k),然后系统根据该进程需要不可抢占资源的多少,排列进程在阻塞队列中的位置,比如该进程占用不可抢占资源较多,将其排列在阻塞队列的尾部并转化为阻塞状态(l)。
基于上述方法,本发明首先判断申请的资源是可抢占资源还是不可抢占资源。如果是可抢占资源,则允许进程直接申请资源,对于不可抢占资源,需要检查阻塞队列是否为空,为了不影响系统的运行效率,规定只有当阻塞队列中已经有进程时才让其他进程执行在申请资源前先释放资源的操作。在阻塞队列无进程的情况下,直接判断系统剩余资源数是否满足申请的资源数量。不仅能预防操作系统死锁产生,对操作系统的运行效率影响较小。

Claims (3)

1.一种操作系统的死锁预防方法,其特征是
系统进程申请资源,判断申请的资源是否为可抢占资源,若否检查阻塞队列是否为空,阻塞队列为空,则判断系统剩余资源是否大于申请资源,大于则申请成功,否则该进程进入阻塞队列为阻塞状态;阻塞队列非空,则被阻塞进程释放占用的不可抢占资源,进程一次性申请在之前释放的资源与所需的新的资源,申请成功,则得到所需的全部系统资源,否则该进程唤醒阻塞队列中的第一个进程,该进程进入阻塞队列为阻塞状态,等待下次操作。
2.根据权利要求1所述的一种操作系统的死锁预防方法,其特征是进程进入阻塞队列为阻塞状态,系统根据进程需要不可抢占资源的多少,排列进程在阻塞队列中的位置。
3.根据权利要求1或2所述的一种操作系统的死锁预防方法,其特征是系统进程申请资源,判断申请的资源是否为可抢占资源,若为可抢占资源,则直接申请,进程运行至结束后唤醒阻塞队列中的第一个进程。
CN201510758180.4A 2015-11-09 2015-11-09 一种操作系统的死锁预防方法 Active CN105335237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510758180.4A CN105335237B (zh) 2015-11-09 2015-11-09 一种操作系统的死锁预防方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510758180.4A CN105335237B (zh) 2015-11-09 2015-11-09 一种操作系统的死锁预防方法

Publications (2)

Publication Number Publication Date
CN105335237A true CN105335237A (zh) 2016-02-17
CN105335237B CN105335237B (zh) 2018-09-21

Family

ID=55285792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510758180.4A Active CN105335237B (zh) 2015-11-09 2015-11-09 一种操作系统的死锁预防方法

Country Status (1)

Country Link
CN (1) CN105335237B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107305507A (zh) * 2016-04-25 2017-10-31 北京京东尚科信息技术有限公司 死锁控制方法和装置
CN109783241A (zh) * 2018-12-03 2019-05-21 惠州市德赛西威汽车电子股份有限公司 一种抢占系统的资源抢占冲突检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
CN101256509A (zh) * 2008-04-07 2008-09-03 中兴通讯股份有限公司 一种锁机制的加锁方法、解锁方法和实现方法
CN102693159A (zh) * 2012-05-09 2012-09-26 上海晨思电子科技有限公司 基于用户模式多任务下控制硬件设备的方法及其装置
CN103440171A (zh) * 2013-08-25 2013-12-11 浙江大学 一种构件化硬件实时操作系统的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
CN101256509A (zh) * 2008-04-07 2008-09-03 中兴通讯股份有限公司 一种锁机制的加锁方法、解锁方法和实现方法
CN102693159A (zh) * 2012-05-09 2012-09-26 上海晨思电子科技有限公司 基于用户模式多任务下控制硬件设备的方法及其装置
CN103440171A (zh) * 2013-08-25 2013-12-11 浙江大学 一种构件化硬件实时操作系统的实现方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107305507A (zh) * 2016-04-25 2017-10-31 北京京东尚科信息技术有限公司 死锁控制方法和装置
CN107305507B (zh) * 2016-04-25 2020-05-01 北京京东尚科信息技术有限公司 死锁控制方法和装置
CN109783241A (zh) * 2018-12-03 2019-05-21 惠州市德赛西威汽车电子股份有限公司 一种抢占系统的资源抢占冲突检测方法

Also Published As

Publication number Publication date
CN105335237B (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
US10503555B2 (en) Selecting type and quantity of application masters that need to be started in advance
CN109582447B (zh) 计算资源分配方法、任务处理方法及装置
CN107301093B (zh) 一种管理资源的方法和装置
CN109815021B (zh) 针对递归树建模程序的资源关键树方法及系统
CN104239147A (zh) 一种处理死锁循环方法及系统
CN107515785A (zh) 一种内存管理方法及装置
CN111258746B (zh) 资源分配方法和服务设备
CN108111337B (zh) 分布式系统仲裁主节点的方法及设备
CN104536834A (zh) 一种授权锁权限的方法和分布式锁管理器
CN105373434A (zh) 资源管理系统及方法
US11438271B2 (en) Method, electronic device and computer program product of load balancing
CN105335237A (zh) 一种操作系统的死锁预防方法
CN112073532B (zh) 一种资源分配的方法及装置
US20140359184A1 (en) Method and apparatus for allocating interruptions
CN105740085A (zh) 容错处理方法及装置
US20130262905A1 (en) Information processing apparatus, computer product, and information processing method
CN104156260B (zh) 一种基于任务窃取的并发队列访问控制系统
CN107291557A (zh) 一种业务处理方法和装置
CN110083441B (zh) 一种分布式计算系统及分布式计算方法
CN103810037A (zh) 一种作业调度方法和计算装置
Okamura et al. Optimal trigger time of software rejuvenation under probabilistic opportunities
CN104657204B (zh) 短任务处理方法、装置及操作系统
Sirohi et al. Improvised round robin (CPU) scheduling algorithm
Gratia et al. Adaptation of run to mixed-criticality systems
CN110955616B (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