资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,操作系统概念习题课,-,死锁与内存管理,2016.5.12,死锁,概念:,多道程序环境下,多个进程可能竞争一定数量的资源。进程所申请的资源被其他等待进程占有,该进程可能无法改变其状态,成为死锁。,必要条件:,资源互斥,占有并等待,非抢占,循环等待,死锁,明确死锁产生的四个必要条件,明确死锁的处理方法,明确死锁预防的处理方法,明确死锁避免的处理方法(包括安全状态、死锁状态关系等),死锁,处理方法,死锁预防,死锁避免,死锁检测,忽略,互斥,-,通常无计可施,占有并等待,-,静态分配,非抢占,-,允许抢占,循环等待,-,有序申请资源,安全状态和安全队列,资源分配图算法,银行家算法,死锁恢复,终止进程,资源抢占,单实例,等待图,多实例,类似银行家,检测算法的应用问题,选择题,某系统中有三个并发进程,都需要同类资源,4,个,试问该系统不会发生死锁的最少资源数是,_,A.9 B.10 C.11 D.12,答案:,B,【,例,】,某系统采用了银行家算法,则下列叙述正确的是(),A,系统处于不安全状态时一定会发生死锁,B,系统处于不安全状态时可能会发生死锁,C,系统处于安全状态时,可能会发生死锁,D,系统处于安全状态时,一定会发生死锁,【,解答,】B,【,例,】,在下列选项中,属于解除死锁的方法是(),A,剥夺资源法,B,资源分配图算法,C,银行家算法,D,资源静态分配法,【,解答,】A,另一种方法是,终止进程,=,资源抢占,【,例,】,资源静态分配法可以预防死锁的发生,因它使死锁四个条件中的()不成立,A,互斥条件,B,占有并等待,C,非抢占,D,循环等待,【,解答,】B,【,例,】,下面,4,个选项中,属于处理死锁的基本方法是,(),A,资源独占,B,资源共享,C,进程并发,D,预防死锁,【,答案,】D,【,例,】,在银行家算法的数据结构中,其中最大需求矩阵,Max,分配矩阵,Allocation,和需求矩阵,Need,三者之间的关系是,(),A Needi,j=Allocationi,j-Maxi,j,B Needi,j=Maxi,j+Allocationi,j,C Needi,j=Maxi,j-Allocationi,j,D Needi,j=Maxi,j*Allocationi,j,【,答案,】C,【,例,】,系统死锁可利用()来描述。,A,进程,B,程序,C,系统流程图,D,资源分配图,【,答案,】D,【,例,】,按序分配资源是为了(),A,死锁的检测,B,死锁的防止,C,死锁的避免,D,死锁的解除,【,答案,】B,【,例,】,死锁的预防是根据()而采取措施实现的,A,配置足够的系统资源,B,使进程的推进顺序合理,C,破坏死锁的四个必要条件之一,D,防止系统进入不安全状态,【,解答,】C,【,例,】,在下列解决死锁的办法中,属于死锁预防策略的是(),A,化简进程的资源分配图,B,银行家算法,C,资源的有序分配法,D,死锁检测法,【,解答,】C,【,例,】,死锁产生的必要条件有,4,个,要预防死锁发生,必须破坏死锁的四个必要条件之一,但破坏()条件是不太实际的。,实现起来最简单的条件是(),A,请求和保持,B,互斥,C,不剥夺,D,环路等待,【,解答,】B,。因为这是由设备的固有特性决定的,A,采用静态分配方法实现,在进程开始运行前,将它需要的全部资源分配给它。在运行过程中,不再请求。这是早期操作系统采用的方法,但资源的利用率不高。,【,例,】,通过撤消进程可进行死锁恢复,还可以采用()方法解除死锁,A,阻塞进程,B,资源剥夺,C,提高进程优先级,D,降低进程优先级,【,解答,】B,采用资源剥夺法,将剥夺的资源分配给死锁进程,以解决死锁。,【,例,】,以下关于资源分配图的描述中正确的是(),A,有向边包含进程指向资源类的分配边和资源类指向进程申请边两类,B,矩阵框表示进程,其中的原点表示申请同一类资源的各个进程,C,圆圈结点表示资源类,D,资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态,【,答案,】D,【,例,】,死锁的,4,个必要条件中,无法破坏的是(),A,环路等待资源,B,互斥使用资源,C,占有且等待资源,D,非抢夺式分配,【,答案,】B,【,例,】,从下面关于安全状态和非安全状态的论述中,正确的论述是(),A,安全状态是没有死锁的状态,非安全状态是有死锁的状态,B,安全状态是可能有死锁的状态,非安全状态也是可能有死锁的状态,C,安全状态是可能没有死锁的状态,非安全状态是有死锁的状态,D,安全状态是没有死锁的状态,非安全状态是可能有死锁的状态,【,解答,】D,【,例,】,关于产生死锁的现象,下面的描述最准确的是(),A,每个进程共享某一个资源,B,每个进程竞争某一个资源,C,每个进程等待着某一个不能得到且不可释放的资源,D,某个进程因等待着某一个资源而无法进行下去,【,解答,】C,【,例,】,银行家算法是一种()算法,A,死锁解除,B,死锁避免,C,死锁预防,D,死锁检测,【,解答,】B,【,例,】,下列说法正确的是(),A,死锁是指系统的全部进程都处于阻塞状态,B,操作系统处理死锁,只要采用预防,解除,检测,避免等方法中的一种就足够了,C,如果系统在所有进程运行前,一次性地将其在整个运行过程所需的全部资料分配给进程,即所谓”静态分配“,是预防死锁发生的。,D,多个进程竞争比进程数目少的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,且这个安全序列是唯一的。,【,解答,】C,【,例,】,下列说法错误的是(),A,产生死锁的原因可以归结为两点:竞争资源和进程推进顺序非法,B,用于处理死锁的方法可归结为以下四种:预防死锁;避免死锁;检测死锁;解除死锁,C,在死锁的预防中,摒弃”请求和保持“条件的方法的缺点是资源严重浪费;进程延迟运行,D,当由于为进程分配资源而使系统处于不安全状态时,系统一定会导致死锁,【,解答,】AD,【,例,】,正确的是,(),A,预防死锁的方法,优点是简单,易于实现且很安全,而且资源利用率高,进程也能较快地进行,B,检测死锁能够有效地解除进程的死锁状态解,C,当由于为进程分配资源使系统处于不安全状态时,系统一定会导致死锁,D,采用资源静态分配算法可以预防死锁的发生,【,答案,】D,【,例,】,假设现在有,p,个进程,每个进程最多需要,m,个资源,并且有,r,个资源可用,什么样的条件可以保证死锁不会发生。,【,解答,】,如果一个进程有,m,个资源它就能够结束,不会使自己陷入死锁中。因此,最差的情况是每个进程有,m-1,个资源并且需要另外一个资源。如果留下有一个资源可用,那么其中某一个进程就能够结束并释放它所有的资源,使其他进程也能结束。所以避免死锁的条件是:,r=p(m-1)+1,【,例,】,一台计算机有,6,台磁带机,由,n,个进程竞争使用,每个进程可能需要两台磁带机,那么,n,是多少时,系统才没有死锁的危险?,【,解答,】,对于三个进程,每个进程能够有两个驱动器。对于,4,个进程,驱动器可以按照(,2,,,2,,,1,,,1,)的方法进行分配,使前面两个进程先结束。,对于,5,个进程,可以按照(,2,,,1,,,1,,,1,,,1,)的方法进行分发,使一个进程先结束。,对于六个进程,每个进程都拥有一个磁带驱动器同时需要另外一个驱动器,产生了死锁。因此,对于,n6,的系统来说是无锁的。,【,例,】,设系统中仅有一个资源类,其中共有,3,个资源实例,使用此类资源的进程共有,3,个,每个进程至少请求一个资源,它们所需资源最大量的总和为,X,,则发生死锁的必要条件是(,X,的取值),【,解答,】,假设,3,个进程所需该类资源数分别是,a,b,c,个,因此有:,a+b+c=X,假设发生了死锁,也即当每个进程都申请了部分资源,还需最后一个资源,而此时系统中已经没有了剩余资源,即:,(a-1)+(b-1)+(c-1)3,X=a+b+c 6,因此,如果发生死锁,则必须满足的必要条件是(,X 6,),【,例,】,假设某系统中有,4,种资源,(R1,R2,R3,R4),,在某时刻系统中共有,5,个进程,进程,P1,,,P2,,,P3,,,P4,,,P5,的最大资源需求数量和此刻已分配到资源数向量分别如下,系统中当前可用资源向量为,(2,1,0,0),问,1,当前系统是否是安全的?,2,如果进程,P3,发出资源请求向量,(0,1,0,0),,系统能否将资源分配给它?,【,分析,】(1),进程的最大资源需求数减去当前进程已获得的资源数就是进程仍需要的资源数,此刻各个进行的仍需要资源数向量为:,P1,(0,0,0,0);P2(0,7,5,0);P3(6,6,2,2);P4(2,0,0,2);P5(0,3,2,0),而系统的可用资源向量为,(2,1,0,0),这时存在如下执行序列,使进程顺序执行完毕,状态安全,进程 可用资源数,P1,完成后,(2,1,1,2),P4,完成后,(4,4,6,6),P5,完成后,(4,7,9,8),P2,完成后,(6,7,9,8),P3,完成后,(6,7,1,12),满足资源需求的进程执行序列为:,进程名 可用资源数,P1,完成后,(2,0,1,2),P4,完成后,(4,3,6,6),P5,完成后,(4,6,9,8),此时可用资源不能满足,P2,P3,的需求,即此时系统状态是不安全的,将拒绝资源请求,此时系统可用资源为,(2,0,0,0),,各进程仍需要资源向量为:,P1(0,0,0,0);,P2(0,7,5,0);,P3(6,5,2,2);,P4(2,0,0,2);,P5(0,3,2,0),在,P3,发出资源请求,(0,1,0,0),后,假设系统把资源分配给,P3,则各进程已分配资源数为:,P1 (0,0,1,2);,P2 (2,0,0,0);,P3 (0,1,3,4);,P4 (2,3,5,4);,P5 (0,3,3,2),1,2,内存管理,背景,交换,连续,内存分配,分页,分段,页表结构,基本硬件,地址绑定,动态加载和动态链接,CPU,和内存,,cache,用户空间和内核空间,基址寄存器,界限寄存器,首次适应算法,最佳适应算法,最差适应算法,循环首次适应算法,碎片问题,外部,页表映射方法,保护,-,有效无效位,只存在,内部碎片,内部,硬件支持,TLB,基本思想,段表映射方法,逻辑地址和物理地址,非连续,内存分配,1.,下面关于存储管理的叙述中正确的是(),A.,现在操作系统中,允许用户干预内存的分配,B.,固定分区存储管理是针对单道系统的内存管理方案,C.,可变分区存储管理可以对作业分配不连续的内存单元,D.,页式存储管理中,页面大小是在硬件设计时确定的,【,解答,】D,选择题,2.,在存储管理中,把目标程序中的逻辑地址转换成主存空间的物理地址的过程称为,。,A.,存储分配,B.,地址重定位,C.,地址保护,D.,程序移动,B,3.,作业在执行中发生了缺页中断,经操作系统处理后,应让其执行,指令。,A,被中断的前一条,B,被中断的,C,被中断的后一条,D,启动时的第一条,B,4.,下面最有可能使得高地址空间成为大的空闲区的分配算法是(,)。,A,首次适应算法,B,最佳适应法,C,最坏适应法,D,循环首次适应法,A,5.,在几种基本的放置策略中,空白区是按大小递增的顺序链接在一起的是()策略。,A,首次匹配,B,最佳匹配,C,最坏匹配,D,以上三者,B,6.,虚拟内存的可行性的基础是()。,A,程序执行的离散性,B,程序执行的顺序性,C,程序执行的局部性,D,程序执行的并发性,C,7.,分区管理要求对每一个作业都分配()的内存单元。,A,地址连续,B,若干地址不连续,C,若干连续的帧,D,若干不连续的帧,A,8.,分区管理和分页管理的主要区别是(,)。,A,分区管理中的块比分
展开阅读全文