1. 请解释时间片轮转调度算法的原理,并解释如何确定时间片的大小。
在轮转(RR)法中,系统根据FCFS策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔即产生一次中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给队首进程,令其执行。当该进程的时间片耗尽或运行完毕时,系统再次将CPU分配给新的队首进程(或新到达的紧迫进程)。由此,可保证就绪队列中的所有进程在一个确定的时间段内,都能够获得一次CPU执行。
一个较为可取的时间片大小是略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成,从而可以获得很小的响应时间。
2. 何谓“优先级倒置”问题?如何解决?
高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞。
假如进程P3在进入临界区后P3所占用的处理机就不允许被抢占。
一个比较实用的方法是建立在动态优先级继承基础上的。该方法规定,当高优先级进程P1要进入临界区,去使用临界资源R,如果已有一个低优先级进程P3正在使用该资源,此时一方面P1被阻塞,另一方面由P3继承P1的优先级,并一直保持到P3退出临界区。
3. 银行家算法应用
4. 简述死锁的检测和解除相结合方法的设计思想。
为了能对系统是否已发生了死锁进行检测,必须
1.用某种数据结构来保存资源的请求和分配信息;
2.提供一种算法,利用上述信息来检测系统是否已进入死锁状态。
解除死锁的主要方法有
1.资源剥夺法:挂起(暂时放到外存上)某些死锁进程,并抢占它的资源,将这样资源分配给其他的死锁进程。但是应该防止被挂起的进程长时间得不到资源而饥饿。
2.撤销进程法(或终止进程法):强制撤销部分、甚至全部死锁进程,并剥夺这些进程的资源。这种方式的优点是实现简单,但所付出的代价可能会很大。因为有些进程可能已经运行了很长时间,已经接近结束了,一旦被终止可谓功亏一篑,以后还得从头再来。
3.进程回退法。让一个或多个死锁进程回退到足以避免死锁的地步。这就要求系统要记录进程的历史信息,设置还原点。