CN105335237B - 一种操作系统的死锁预防方法 - Google Patents
一种操作系统的死锁预防方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000002265 prevention Effects 0.000 title claims abstract description 16
- 230000026676 system process Effects 0.000 claims abstract description 15
- 230000000903 blocking effect Effects 0.000 claims abstract description 9
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception 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所述的一种操作系统的死锁预防方法,其特征是系统进程申请资源,判断申请的资源是否为可抢占资源,若为可抢占资源,则直接申请,并在所述的系统进程运行至结束后唤醒阻塞队列中的第一个进程。
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)
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)
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)
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 |
-
2015
- 2015-11-09 CN CN201510758180.4A patent/CN105335237B/zh active Active
Patent Citations (3)
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 |