导航:首页 > 源码编译 > 利用死锁定理的算法

利用死锁定理的算法

发布时间:2022-08-20 21:54:45

A. 考试求给力

1、操作系统的目标:(1)有效性(2)方便性(3)可扩充性(4)开放性。
2、操作系统的作用:
(1)作为用户与计算机硬件系统之间的接口:①命令方式;②系统调用方式;③图形、窗口方式(命令方式的一种);
(2)OS是计算机系统资源的管理者;
(3)OS实现对计算机资源的抽象。
3、单道批处理系统的特征:① 自动性;②顺序性;③单道性。
4、多道批处理系统的优缺点:
(1)优点: ①资源利用率高:CPU和内存利用率较高;
②作业吞吐量大:单位时间内完成的工作总量大;
(2)缺点:①用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;
②作业平均周转时间长:短作业的周转时间显着增长;
5、分时系统的概念:“分时”的含义分时是指多个用户分享使用同一台计算机。
分时系统指一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,各个用户都可通过自己的终端以交互方式使用计算机。
6、分时系统的特征:(1)多路性(2)独立性(3)及时性(4)人机交互性好
7、实时系统的概念:系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理。
8、操作系统的基本特征:
(1)并发性;(2)共享性;(3)虚拟技术;(4)异步性
9、进程与程序的区别:(从概念、并发执行出现的问题进行比较)
(1)程序的顺序执行:仅当前一操作(程序段)执行完后,才能执行后继操作。
程序顺序执行时的特征:①顺序性;②封闭性; ③ 可再现性;
程序并发执行时的特征:①间断性;②失去封闭性;③不可再现性 ;
(2)进程的特征和定义:①结构特征;②动态性 ;③并发性;④独立性;⑤异步性;
定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
11、进程的三种基本状态 :①就绪(Ready)状态 ;②执行状态;③ 阻塞状态 ;
13、进程控制块的作用:进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
14、引起创建进程的事件:(1)用户登录;(2) 作业调度;(3) 提供服务;(4) 应用请求。
15、进程的创建: (1)申请空白PCB; (2) 为新进程分配资源; (3) 初始化进程控制块;
(4)将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
16、进程的终止(稍看看就行):
(1) 正常结束;
(2)异常结束:①越界错误。这是指程序所访问的存储区,已越出该进程的区域;
② 保护错。进程试图去访问一个不允许访问的资源或文件,或者以不适当的方式进行访问,例如,进程试图去写一个只读文件;
③ 非法指令。程序试图去执行一条不存在的指令。出现该错误的原因,可能是程序错误地转移到数据区,把数据当成了指令;
④ 特权指令错。用户进程试图去执行一条只允许OS执行的指令;
(3)外界干预:① 操作员或操作系统干预;② 父进程请求;③ 父进程终止。
17、引起进程阻塞和唤醒的事件: (1)请求系统服务;(2) 启动某种操作;
(3)新数据尚未到达;(4)无新工作可做。
临界资源的概念:消费者进程可从一个缓冲区中取走产品去消费。尽管所有的生产者进程和消费者进程都是以异步方式运行的,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。
临界区的概念:人们把在每个进程中访问临界资源的那段代码称为临界区。
22、管道通信:所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。向管道(共享文件)提供输入的发送进程(即写进程), 以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程),则从管道中接收(读)数据。为了协调双方的通信,管道机制必须提供以下三方面的协调能力:
① 互斥,即当一个进程正在对pipe执行读/写操作时,其它(另一)进程必须等待。
② 同步,指当写(输入)进程把一定数量(如4 KB)的数据写入pipe,便去睡眠等待, 直到读(输出)进程取走数据后,再把他唤醒。当读进程读一空pipe时,也应睡眠等待,直至写进程将数据写入管道后,才将之唤醒。
③ 确定对方是否存在,只有确定了对方已存在时,才能进行通信。
25、处理机调度的层次(通看、理解每种调度的原理)P84-88
(1)高级调度 (作业调度、长程调度、接纳调度)
(2)低级调度(进程调度,短程调度):主要是决定就绪队列中的哪个进程应获得处理机,然后由分派程序(Dispatcher)分派处理机。
①低级调度的功能:保存处理机现场信息/按某种算法选取进程/把处理机分配给进程
②进程调度的三个进步机制 排队器/分派器/上下文切换机制:两对切换
③进程调度方式
(3)中级调度(中程):为提高系统吞吐量和内存利用率而引入的一 内--外存对换功能(换出时,进程为挂起或就绪驻外存状态)
三级调度的运行频率
 低>中>高。
27、周转时间:是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间)。
28、响应时间:是指从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间,或者说,直到屏幕上显示出结果为止的一段时间间隔。
29、面向系统的准则:(1)吞吐量高(特别是批处理):单位时间完成作业数(2)处理机利用率好:(因CPU贵,特别是大中型多用户系统)(3)各类资源的平衡利用。
(3)高响应比优先调度算法:
 响应比Rp=(Tw+Ts)/Ts
 特点:
 (1)短作业RP大。
 (2)Ts(要求服务时间)相同的进程间相当于FCFS。
 (3)长作业等待一段时间仍能得到服务。
(4)基于时间片的轮转调度算法:时间片轮转
32、实时调度算法的分类:
(1)非枪占式调度算法:①非枪占式轮转调度算法;②非枪占式优先调度算法
(2)枪占式调度算法
33、产生死锁的原因和必要条件(重点)P103-106
(1)死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们将无法再向前推进。
(2)产生死锁的原因:
----竞争资源引起死锁。
1)可剥夺(CPU、内存)和非剥夺性(打印机,磁带机)资源
2)竞争非剥夺性资源——可造成死锁
3)竞争临时性资源:临时性资源是指由一个进程产生,被另一个进程使用一段时间后便无用的资源。
-----进程推进顺序不当引起死锁。
(3)产生死锁的必要条件:
①互斥条件(资源的临界性)
②请求和保持条件
③不剥夺条件
④环路等待条件
(4)处理死锁的基本方法
①预防死锁: 破坏4个条件之一:有效,使资源利用率低。
②避免死锁:防止进入不安全态。
③检测死锁:检测到死锁再清除。
④解除死锁:与“检测”配套。
34、预防死锁的方法(重点)P107-111
死锁预防:
(1)互斥条件是资源固有属性,不能避免。
(2)摒弃请求和保持条件:全分配,全释放(AND同步p52)
优点:简单且安全 缺点: 1)资源严重浪费2)延迟进程运行
(3)摒弃“不剥夺”条件
增加系统开销,且进程前段工作可能失效。
(4)摒弃“环路等待”条件:有序资源分配法:为资源编号,申请时需按编号进行。
缺点:1)新增资源不便,(原序号已排定);2)资源与进程使用顺序不同造成浪费;
3)用户不自由
死锁定理:死锁状态的充分条件,资源分配图不可完全简化
36、死锁的解除
(1)剥夺资源;(2) 撤消进程。

40、连续分配方式:
(1)单一连续分配
• 用于单用户,单任务中
(2)分区式分配
• 固定式
• 动态分区分配
• 可重定位分区分配
(3)可重定位分区分配(概念、了解)
动态重定位的引入:连续式分配中,总量大于作业大小的多个小分区不能容纳作业。
41、对换:是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。对换是提高内存利用率的有效措施。
44、虚拟存储器的基本概念、特征(理解)P141-144
(2)特征:
①多次性:局部装入,多次装入。
②对换性:换进、换出
③虚拟性:从逻辑上扩充内存
47、请求分段存储管理方式 P155-156
(1)段表机制
(2)缺段中断机构(了解):段不定长,处理起来比缺页中断复杂。
(3)地址变换机构

I/O设备的类型
----按设备的共享属性分:(掌握各特征)P161
• 独占设备:如临界资源
• 共享设备:磁盘
• 虚拟设备:如本身因有属性为独占,但通过虚拟技术将其变换为几个逻辑设备。

55、I/O软件的设计目标和原则
1)与具体设备无关
2)统一命名 3)对错误的处理 4)缓冲技术 5)设备的分配和释放 6)I/O控制方式
57、设备独立性:即设备无关性,指应用程序独立于具体使用的物理设备。
58、设备分配时应考虑的因素:P187
(1)设备的固有属性(掌握):①独享设备;② 共享设备;③ 虚拟设备。
(2)设备分配算法
(3)设备分配中的安全性
59、SPOOLING技术 (掌握概念、原理、组成、特点)P190-191
SPOOLing系统的组成:
1)输入#和输出#:
– 在磁盘上开辟的2个大存储空间,模拟输入和输出设备。
2)输入buf和输出buf(内存中)
– 输入设备——输入buf——输入#——用户区(1)
– 用户区——输出#——输出buf——设备(2)
3)输入Spi和输出SPo进程。
– 分别控制(1),(2)的动作。
– SPi相当于脱机输入控制器。
– SPo相当于脱机输出控制器。
(3)原理
(4)SPOOLing的特点
1)提高I/O速度:
– 对低速设备操作—>变为对输入/出#操作。
2)将独占设备改造为共享设备
– 分配设备的实质是分配输入/出#
3)实现了虚拟设备功能
60、 磁盘的类型:1)固定头磁盘:(每个磁道上有一个磁头,快)
2)移动头磁盘:每个盘面仅有一个磁头,慢
61、磁盘访问时间:(zhaNGWOrd)
1)寻道时间:TS=m*n+s
m:常量,n:磁道数,s:磁臂启动时间。
2)旋转延时间Tr:
指定扇区旋转到磁头下所需时间。
设每秒r转,则Tr=1/2r(均值)
3)数据传输时间Tt=b/rN
b:读写字节数
N:每道上的字节数
访问时间:Ta=Ts+1/2r+b/rN
65、逻辑结构类型:(掌握原理)
(1)顺序文件:通常是定长记录,(为何,因变长采用此方式查询速度慢)
(2)索引文件:
(3)索引顺序文件:顺序组织多个组,每组记录中的第一个记录设置一索引项。
66、连续分配(磁带,磁盘都可采用)的优缺点:
– 优点:
• 因磁头移动距离小,顺序访问容易且速度快.
– 缺点:
• 要求连续空间,一段时间后需整理磁盘以消除外部碎片。
• 必须事先知道长度,文件不易动态增长和删除。

1. 进程的基本的特征有 并发 、 动态 独立、异步和结构特征。
2. 处理死锁的方法有预防死锁、 避免死锁 、 检测死锁 和解除死锁
3. 在文件系统中,对目录管理的要求有 实现“ 按名存取” 、 文件共享 允许文件重名和提高对目录的检索速度。
4. 文件的外存分配方式主要有 连续分配 、 链式分配 和 索引分配 三种方式。
5. 为实现设备独立性,在系统中必须设置逻辑设备表,通常它包括 逻辑设备名 、 物理设备名 和 设备驱动程序入口地址 三项。
6. 处理机调度可分为三级,它们是____高级____、___中级_____和__低级_________。

1. ( 并行性 )是指在同一时间间隔内发生两个或多个事件,而( 并发性 )是指在同一时刻内发生两个或多个事件。
2. 对调度算法进行评价时,可以从(作业平均周转时间)和(作业平均带权周转时间)等方面考虑。
3. (线程)是程序的一次相对独立的运行过程,现代OS中,它也是系统调度的最小单位。它没有资源,是依赖于进程存在的。
4. 一般,把系统态下执行的某些具有持定功能的程序段称为(原语)。
5. 产生死锁的必要条件:(互斥条件)、(不剥夺条件)、请求和保持条件、环路条件。
6. 在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否则予以分配。这就是(死锁避免)。
7. (抖动)是指当给进程分配的内存小于所要求的工作区时,由于内存外存之间交换频繁,访问外存的时间和输入输出处理时间大大增加,反而造成CPU因等待数据而空转,使得整个系统性能大大下降。
8. (通道)是一个独立与CPU的专管输入/输出控制的机构,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些指令受CPU启动,并在操作结束时向CPU发中断信号。
9. 目录管理的要求: (1)(实现“按名存取”),(2)(提高目录检索速),(3)文件共享,(4)允许文件重名
10. 文件系统中,以索引结点为目录项比直接以FCB为目录项要减小目录文件的长度,若一个FCB为64B,而一个索引结点为16B时,若目录文件以索引结点为目录项,则比以FCB为目录项要减小(4倍)。
11. 磁盘容错技术中,(磁盘镜像)是磁盘驱动器故障的容错,而(磁盘双工)是磁盘控制器或控制器与CPU之间的通道故障的容错。
12. 在计算机网络中,为使在个计算设备之间能正确地传送信息,必须有一组关于信息的传输顺序、信息格式和信息内容等的约定或规则。人们把这种规定或规则称为(网络协议)。
13. 客户/服务器模式的优点是(数据分布存储)和(数据分布处理)。
14. 系统安全性包括(物理安全)、(逻辑安全)和安全管理等三个方面的内容。
15. 为了使用户能够对自己所运行的进程进行控制,UNIX系统向用户提供了一组用于对进程进行控制的系统调用,包括用于创建一个新进程的(fork)系统调用;用于实现进程自我终止的(exit)系统调用。
周转时间指的是从作业被提交给系统开始,到作业完成为止的这段时间间隔。
2. PCB 是保存进程状态,控制进程转换的标志,也是进程存在的惟一标志。
3.产生死锁的四个必要条件是请求与保持、 环路等待、互斥和不剥夺。
4.置换算法是在主存中没有空闲块 时被调用的,它的目的是选出一个被 淘汰 的页面。
5.使用共享文件实现进程通信的方式被称为管道通信 。
6.逻辑设备表的主要功能是实现设备独立性 和实现设备分配的灵活性 。
7.并发和共享 是操作系统的两个最基本的特征,两者之间互为存在条件。
8.系统中各进程之间逻辑上的相互制约关系被称为进程同步 。
9.在段式存储管理系统中,段保护措施常有越界保护 和存取控制两种。
10.根据系统管理员或用户所规定的存取控制属性,文件可分为只执行文件、只读文件和读写文件。
11.从用户观点出发所看到的文件组织形式称为逻辑结构 。
12.设备按共享属性分为: 独占设备、共享设备、虚拟设备 。
13.在文件系统中必须为每个文件建立一个文件控制块,其中包含有文件名和文件的物理地址
等信息。
14.文件的二级目录结构是由主文件目录 和用户文件目录组成的。
15.分时系统与实时系统的主要区别是可靠性

1.响应时间指的是是从用户通过键盘提交一个请求开始,直至系统首次响应为止的时间。
2.将进程的PCB 链接在一起就形成了进程队列。
4.虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一个存储系统。
5.发送进程利用OS 提供的发送命令,直接将格式化的消息发送给目标进程的通信方式称
为直接通信。
6.逻辑设备表的主要功能是实现设备独立性 和实现设备分配灵活性。
7.并发 和共享是操作系统的两个最基本的特征,两者之间互为存在条件。
8.有m 个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信
号量值的变化范围是[-m+1,1]。
9.在段式存储管理系统中,段保护措施常有越界保护 和存取控制 两种。
10.根据文件的用途的不同,相将文件分为系统 、用户文件和 库文件 。
11.从实际出发,文件在外厚上存放组织形式称为文件的物理结构 。
12.设备按信息交换单位分为:字符设备、存取控制。
13.文件目录是文件控制块的有序的集合。
14.文件的二级目录结构是由主文件目录和 用户文件目录 组成的。
15.实时系统具务的两个基本特征是及时性、高可靠性 。

B. 死锁定理是用于处理死锁的哪一种方法

死锁定理用于检测死锁。
系统处于死锁的充分条件是:当且仅当此状态的进程-资源分配图(是对当前状态的图形化描述)是不可完全简化的,这一充分条件称为死锁定理。由定理可知,这是一种检测方法。

C. 什么是死锁,怎样引入死锁

1.死锁:如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。
2.产生死锁的原因:
(1)竞争不可抢占性资源。
(2)竞争可消耗资源。
当系统中供多个进程共享的资源如打印机,公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。12

(3)进程推进顺序不当。
进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。12

如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
一个线程也可引起死锁。12

3.产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求和保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不可抢占条件:进程已获得的资源,在末使用完之前,不能强行剥夺,只能在进程使用完时由自己释放。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。因此可以写下如下的预防死锁的方法。
4.避免死锁的方法:
(1)破坏“互斥”条件:就是在系统里取消互斥。若资源不被一个进程独占使用,那么死锁是肯定不会发生的。但一般“互斥”条件是无法破坏的。因此,在死锁预防里主要是破坏其他三个必要条件,而不去涉及破坏“互斥”条件。
(2)破坏“请求和保持”条件:在系统中不允许进程在已获得某种资源的情况下,申请其他资源。即要想出一个办法,阻止进程在持有资源的同时申请其他资源。
方法一:所有进程在运行之前,必须一次性地申请在整个运行过程中所需的全部资源。这样,该进程在整个运行期间,便不会再提出资源请求,从而破坏了“请求”条件。系统在分配资源时,只要有一种资源不能满足进程的要求,即使其它所需的各资源都空闲也不分配给该进程,而让该进程等待。由于该进程在等待期间未占有任何资源,于是破坏了“保持”条件。
该方法优点:简单、易行且安全。
缺点:a.资源被严重浪费,严重恶化了资源的利用率。
b.使进程经常会发生饥饿现象。12

方法二:要求每个进程提出新的资源申请前,释放它所占有的资源。这样,一个进程在需要资源S时,须先把它先前占有的资源R释放掉,然后才能提出对S的申请,即使它可能很快又要用到资源R。
(3)破坏“不可抢占”条件:允许对资源实行抢夺。
方法一:如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占有的资源,如果有必要,可再次请求这些资源和另外的资源。
方法二:如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。只有在任意两个进程的优先级都不相同的条件下,该方法才能预防死锁。
(4)破坏“循环等待”条件:将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出。这样做就能保证系统不出现死锁。
利用银行家算法避免死锁:
银行家算法:
设进程i提出请求Request[j],则银行家算法按如下规则进行判断。
(1) 如果Request[j]≤Need[i,j],则转向(2),否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2) 如果Request[j]≤Available[j],则转向(3);否则表示尚无足够资源,Pi需等待。
(3) 假设进程i的申请已获批准,于是修改系统状态:
Available[j]=Available[j]-Request[i]
Allocation[i,j]=Allocation[i,j]+Request[j]
Need[i,j]=Need[i,j]-Request[j]
(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。
安全性算法:
(1) 设置两个工作向量Work=Available;Finish[i]=False
(2) 从进程集合中找到一个满足下述条件的进程,
Finish [i]=False;

Need[i,j]≤Work[j];

如找到,执行(3);否则,执行(4)123456

(3) 设进程获得资源,可顺利执行,直至完成,从而释放资源。
Work[j]=Work[j]+Allocation[i,j];

Finish[i]=True;

Go to step 2;123456

(4) 如所有的进程Finish[i]=true,则表示安全;否则系统不安全。
5.死锁的解除:
一旦检测出死锁,就应立即釆取相应的措施,以解除死锁。死锁解除的主要两种方法:
1) 抢占资源。从一个或多个进程中抢占足够数量的资源,分配给死锁进程,以解除死锁状态。
2) 终止(或撤销)进程。终止(或撤销)系统中的一个或多个死锁进程,直至打破循环环路,使系统从死锁状态解脱出来。
总结:
一般情况下,如果同一个线程先后两次调用lock,在第二次调用时,由于锁已经被占用,该线程会挂起等待别的线程释放锁,然而锁正是被自己占用着的,该线程又被挂起而没有机会释放锁,因此就永远处于挂起等待状态了,这叫做死锁(Deadlock)。另⼀一种典型的死锁情形是这样:线程A获得了锁1,线程B获得了锁2,这时线程A调⽤用lock试图获得锁2,结果是需要挂起等待线程B释放锁2,而这时线程B也调⽤用lock试图获得锁1,结果是需要挂起等待线程A释放锁1,于是线程A和B都永远处于挂起状态了。12

注意:
写程序时应该尽量避免同时获得多个锁,如果一定有必要这么做,则有一个原则:如果所有线程在需要多个锁时都按相同的先后顺序(常见的是按Mutex变量的地址顺序)获得锁,则不会出现死锁。比如一个程序中用到锁1、锁2、锁3,它们所对应的Mutex变量的地址是锁1<锁2<锁3,那么所有线程在需要同时获得2个或3个锁时都应该按锁1、锁2、锁3的顺序获得。如果要为所有的锁确定一个先后顺序比较困难,则应pthread_mutex_trylock调用代替pthread_mutex_lock 调用,以免死锁。

D. 什么是死锁及死锁的必要条件和解决方法

(1)
互斥条件:一个资源每次只能被一个进程使用。
(2)
请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)
不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4)
循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

E. 什么是死锁定理

“S为死锁状态的充分必要条件是:当且仅当S状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理”——《计算机操作系统》

F. 什么是死锁如何解决死锁问题

死锁的条件 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。 请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。 非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。 循环等待条件(Circular wait):系统中若干进程组成环路,改环路中每个进程都在等待相邻进程正占用的资源。 处理死锁的策略 1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。 2.检测死锁并且恢复。 3.仔细地对资源进行动态分配,以避免死锁。 4.通过破除死锁四个必要条件之一,来防止死锁产生。

G. 死锁的必要条件,怎么处理死锁

什么是死锁?如果一个进程集合里面的每个进程都在等待只能由这个集合中的其他一个进程(包括他自身)才能引发的事件,这种情况就是死锁。这个定义可能有点拗口,一个最简单的例子就是有资源a和资源b,都是不可剥夺资源,现在进程c已经申请了资源a,进程d也申请了资源b,进程c接下来的操作需要用到资源b,而进程d恰好也在申请资源a,那么就引发了死锁。这个肯定每个人都看过了。然后套用回去定义:如果一个进程集合里面(进程c和进程d)的每个进程(进程c和进程d)都在等待只能由这个集合中的其他一个进程(对于进程c,他在等进程d;对于进程d,他在等进程c)才能引发的事件(释放相应资源)。这里的资源包括了软的资源(代码块)和硬的资源(例如扫描仪)。资源一般可以分两种:可剥夺资源(preemptable)和不可剥夺资源(nonpreemptable)。一般来说对于由可剥夺资源引起的死锁可以由系统的重新分配资源来解决,所以一般来说大家说的死锁都是由于不可剥夺资源所引起的。死锁的四个必要条件互斥条件(mutual
exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(hold
and
wait):已经得到资源的进程可以再次申请新的资源。
非剥夺条件(no
pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
2.检测死锁并且恢复。
3.仔细地对资源进行动态分配,以避免死锁。
4.通过破除死锁四个必要条件之一,来防止死锁产生。

阅读全文

与利用死锁定理的算法相关的资料

热点内容
linuxredis30 浏览:541
狸窝pdf转换器 浏览:696
ajax调用java后台 浏览:904
活塞式压缩机常见故障 浏览:614
break算法 浏览:731
换电池的app是什么 浏览:771
单片机ad采样快速发送电脑 浏览:22
第五人格服务器错误是什么回事儿 浏览:467
查看手机谷歌服务器地址 浏览:191
python操作zookeeper 浏览:705
苹果手机dcim文件夹显示不出来 浏览:430
如何压缩文件夹联想电脑 浏览:583
程序员的学习之旅 浏览:440
apkdb反编译 浏览:922
雪花算法为什么要二进制 浏览:825
在文档中打开命令行工具 浏览:608
android图标尺寸规范 浏览:369
python实用工具 浏览:208
流量计pdf 浏览:936
科东加密认证价格 浏览:532