CN105335237A - 一种操作系统的死锁预防方法 - Google Patents
一种操作系统的死锁预防方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 230000002265 prevention Effects 0.000 title claims abstract description 18
- 230000000903 blocking effect Effects 0.000 claims abstract description 22
- 230000026676 system process Effects 0.000 claims abstract description 8
- 238000013468 resource allocation Methods 0.000 abstract 1
- 238000010586 diagram 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 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)
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)
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 | 浙江大学 | 一种构件化硬件实时操作系统的实现方法 |
-
2015
- 2015-11-09 CN CN201510758180.4A patent/CN105335237B/zh active Active
Patent Citations (4)
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)
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 |