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

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

Info

Publication number
CN105335237B
CN105335237B CN201510758180.4A CN201510758180A CN105335237B CN 105335237 B CN105335237 B CN 105335237B CN 201510758180 A CN201510758180 A CN 201510758180A CN 105335237 B CN105335237 B CN 105335237B
Authority
CN
China
Prior art keywords
resource
queue
application
resources
operating system
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.)
Active
Application number
CN201510758180.4A
Other languages
English (en)
Other versions
CN105335237A (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 CN105335237A (zh) 2016-02-17
CN105335237B true 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)

Families Citing this family (2)

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

Citations (3)

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

Family Cites Families (1)

* 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

Patent Citations (3)

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

Also Published As

Publication number Publication date
CN105335237A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
CN102902587B (zh) 分布式任务调度方法、系统和装置
US10334034B2 (en) Virtual machine live migration method, virtual machine deployment method, server, and cluster system
US9218213B2 (en) Dynamic placement of heterogeneous workloads
US20170329643A1 (en) Distributed node intra-group task scheduling method and system
CN103576827B (zh) 一种云计算数据中心在线节能调度的方法
EP3129880A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
CN102739798A (zh) 具有网络感知功能的云平台资源调度方法
CN105335237B (zh) 一种操作系统的死锁预防方法
US20110131579A1 (en) Batch job multiplex processing method
CN105843678B (zh) 一种基于最优化理论的虚拟机的资源调度迁移方法及系统
CN103473137A (zh) 避免死锁的资源分配方法及系统
CN105022662A (zh) 一种分布式任务分配方法
US20160154676A1 (en) Method of Resource Allocation in a Server System
CN106528065B (zh) 一种线程获取方法及设备
CN103744735B (zh) 一种多核资源的调度方法及装置
CN105975049A (zh) 一种任务同步偶发任务低能耗调度方法
US20210168078A1 (en) Method, electronic device and computer program product of load balancing
CN108153583B (zh) 任务分配方法及装置、实时计算框架系统
US9430352B2 (en) Information processing apparatus, computer product, and information processing method
CN102427468B (zh) 一种云计算操作系统及其调度方法
CN102567120B (zh) 一种节点调度优先级确定方法及装置
CN106933670A (zh) 一种动态管理应用程序内存的方法
CN104657204B (zh) 短任务处理方法、装置及操作系统
Sirohi et al. Improvised round robin (CPU) scheduling algorithm
CN105024935A (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