• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

计算机操作系统题库之互斥和死锁(二)

极客题库 Geekerstar 11个月前 (06-08) 435次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

产生死锁的四个必要条件是:( )、不剥夺条件、( )、环路等待条件。

互斥条件,请求与保持条件

某系统中有3个并发的进程,都需要同类资源4个,该系统中不会因这类资源发生死锁的最少资源数目是( )。

10

在计算机中有许多资源一次只能允许一个进程使用,如果多个进程同时使用这些资源,则有可能造成系统的混乱,这些资源被称为( )。

临界资源

死锁产生的四个必要条件是:( )、( )、( )和( )。

互斥条件,请求与保持条件,不剥夺条件,环路等待条件

为什么说互斥也是一种同步?

互斥指的是某种资源一次只允许一个进程使用,即你在使用的时候我不能使用;

我在使用的时候你不能使用。这就是一种协调,一种”步伐”上的一致,因而也就是一种同步。

但是,为了求解实际问题,将”同步”与”互斥”加以区别是有好处的,因为这两种问题的求解方法是不同的

简述解互斥问题的软、硬件方法的异同。

软件方法是通过互斥地进入同类临界区来解互斥问题的,而硬件方法是设计相应的机器指令和机器指令执行的不可中断性来解互斥问题的。

何为死锁?产生死锁的原因和必要条件是什么?


1、死锁是指多个进程因竞争资源而造成的一种僵持状态。若无外力作用,这些进程都将永远处于阻塞状态,不能再运行下去。

2、产生死锁的原因有:资源不足、进程推进次序不当。

3、产生死锁的必要条件有:互斥条件、请求和保持条件、环路等待条件。

4、不可被剥夺

比较三种解决死锁的方法?

比较三种解决死锁的方法:

1、预防死锁方法,主要是破坏产生死锁的必要条件。该方法是最容易实现的,但系统资源利用率较低。

2、避免死锁方法,比较实用的有银行家算法(Banker Algorithm)。该算法需要较多的数据结构,实现起来比较困难,但资源利用率最高。

3、检测死锁方法是基于死锁定理设计的。定期运行该算法对系统的状态进行检测,发现死锁便予以解除。其中,需要比较一下各咱死锁解除方案的代价,找到代价最小的方案。该方法最难实现,资源利用率较高。

预防死锁方法是破坏产生死锁的必要条件?


1、摈弃请求和保持条件。采用静态分配方案,一次性地分配给进程所请求的全部资源。进程运行过程中不可再请求新资源。

2、摈弃不剥夺条件。采用动态分配方案,进程运行中可以请求新资源。若进程请求资源不能满足时,就应使其释放已占有的资源。

3、摈弃环路等待条件。采用动态分配方案,要求进程请求资源时,按资源序号递增(或递减)顺序提出。

4、摈弃不可剥夺条件。利用Spooling系统将独享设备改造成共享设备。

何谓安全分配方式和不安全分配方式?

安全分配方式和不安全分配方式的说明如下:

1、安全分配是一种”摒弃请求和保持条件”的资源分配方式。在这种方式中,一个进程请求资源一旦获得(例如I/O请求时获得所需的设备),该进程就由运行状态变为阻塞状态,使它不可能再请求新资源。

相反,当该进程再开始运行时(例如I/O完成后被唤醒),它已不再占有该资源。

因此,这种分配摒弃了造成死锁的一个条件,分配是安全的。

这种分配方式的缺点是进程推进速度慢,因为进程与I/O是串行的。

2、不安全的分配方式是指进程在提出字请求时(例如I/O请求)并不将它阻塞,而是允许它继续使用CPU,并提出第二次资源请求。

这样,若第二次请求的资源已被其他今年成占用使该进程被阻塞时,则该进程具备了”请求和保持”条件,可能产生死锁,因而说,这种分配是不安全的分配。

何为死锁?产生进程死锁产生的原因和必要条件是什么?

所谓死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程将无法再向前推进。

产生的原因有两点:

1、竞争资源

2、进程推进顺序非法。

产生死锁的必要条件是:

1、互斥条件

2、请求与保持条件

3、不剥夺条件

4、环路等待条件。

解除死锁,在选择撤消进程或抢占资源进程时,可考虑那些因素?

可考虑的因素有:

1、优先权;

2、进程已执行的时间;

3、估计剩余的执行时间;

4、已产生的输出量;

5、已获得的资源量和资源类型;

6、还需要的资源量;

7、进程的类型;

8、需要撤消的进程数目等。

简述解决死锁问题的三种方法。

① 死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。

② 死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。

③ 死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就呆把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。

产生死锁的原因是什么?

① 系统资源不足;

② 进程推进顺序不合适。

在早期的系统中,由于系统规模较小,结构简单,以及资源分配大多采用静态分配法,使得操作系统死锁问题的严重性未能充分暴露出来。

但今天由于多道程序系统,以至于数据系统的出现,系统中的共享性和并行性的增加,软件系统变得日益庞大和复杂等原因,使得系统出现死锁现象的可能性大大增加。

计算机系统的资源包括哪些?

计算机系统的资源包括两大类:硬件资源和软件资源。

硬件资源主要有中央处理器、主存储器、辅助存储器和各种输入输出设备。

软件资源有编译程序、编辑程序等各种程序以及有关数据。

简述死锁的防止与死锁的避免的区别。

死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配从而防止死锁的发生。

而死锁的避免是当进程提出资源申请时系统测试资源分配仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。

试说明资源的静态分配策略能防止死锁的原因。

资源静态分配策略要求每个过程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。

这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一”占有并等待条件”,从而防止死锁的发生。

死锁发生的必要条件有哪些?

发生死锁的必要条件有四点:互斥条件、不可抢占条件、部分分配条件和循环等待条件。

① 互斥条件:系统中存在一个资源一次只能被一个进程所使用;

② 非抢占条件:系统中存在一个资源仅能被占有它的进程所释放,而不能被别的进程强行抢占。

③ 占有并等待条件:系统中存在一个进程已占有了分给它的资源,但仍然等待其他资源。

④ 循环等待条件:在系统中存在一个由若干进程形成的环形请求链,其中的每一个进程均占有若干种资源中的某一种,同时每个进程还要求(链上)下一个进程所占有的资源。

采用银行家算法防止死锁,用Pi→n表示Pi 进程申请n个资源,用Pi←n表示Pi 进程占有n个资源。如果占有n个资源的进程被阻塞,可以用Pi*←n 来表示,假设系统中有某类资源10个,进程P1, P2, P3各自的最大需求量为3,7,10个,各进程T0时刻开始运行: T1时刻发生: P1→2, P2→3, P3→3 T2时刻发生: P2→1, P3→2 T3时刻发生: P1→1, P2→1 根据银行家算法,填写三个时刻的进行占有和阻塞情况.

进程 T0 T1 T2 T3
P1 P1←0 P1←2 P1←2 P1←3
P2 P2←0 P2←3 P2←4 P2*←4
P3 P3←0 P3←3 P3*←3 P3*←3

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:计算机操作系统题库之互斥和死锁(二)
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00