简答题

一个操作系统有20个进程,竞争使用30个同类资源,申请方式是逐个进行,一旦某个进程获得了它的全部资源,就马上归还所有的资源,每个进程最多使用30,最少使用一个资源。20个进程需要的资源总数小于50。如果仅考虑这类资源,系统会产生死锁吗?请说明理由。

正确答案

设max(i)表示第i个进程的最大资源需求量,
need(i)表示第i个进程还需要的资源量,
alloc(i)表示第i个进程已分配的资源量。
由题中所给条件可知:
max(1)+…+max(20)=(need(1)+…need(20))+(alloc(1)+…+alloc(20))<50
如果在这个系统中发生了死锁,那么一方面30个资源R应该全部分配出去,即(反证法)alloc(1)+…+alloc(20)=30
另一方面所有进程将陷入无限等待状态。
由上述两式可得:need(1)+…+need(20)<20(关键)
上式表示死锁发生后,20个进程还需要的资源量之和小于20,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。

答案解析

相似试题
  • 一个系统中存在某类资源m个,被n个进程共享。资源的分配和释放必须一个一个进行,请证明在以下两个条件下不会发生死锁: 每个进程需要资源的最大数在1~m之间; 所有进程需要的资源总数小于m+n;

    简答题查看答案

  • 若P、V操作的信号量S初值为2,当前值为1,则表示有()个等待进程。

    单选题查看答案

  • 系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用P、V操作写出这些进程使用打印机的算法。

    简答题查看答案

  • 个进程在执行过程中可以被中断事件打断,当相应的中断处理完成后,就一定恢复该进程被中断时的现场,使它继续执行。

    判断题查看答案

  • 临界资源是指在一段时间内,一次仅允许一个进程使用的共享资源。

    判断题查看答案

  • 进程控制块(PCB)是专为用户进程设置的私有数据结构,每个进程仅有一个PCB。

    判断题查看答案

  • 在执行V操作时,当信号量的值(),应释放一个等待该信号量的进程。

    单选题查看答案

  • 在操作系统中,引起进程调度的主要因素有哪些?

    简答题查看答案

  • 进程之间的互斥,主要源于进程之间的资源竞争,从而实现多个相关进程在执行次序上的协调。

    判断题查看答案