2.5、本章疑难点

1、进程与撑血的区别与联系

2、死锁与饥饿

具有等待队列的信号量的实现可能导致这样的情况:两个或多个进程无限的等待一个事件,而该事件只能由这些等待进程之一来产生。这里的事件是V操作的执行,当出现这样的状态时,这些进程成为死锁。

说一组集成处于死锁状态是指:组内的每个进程都等待一个事件,而该事件只可能由组内的另一个进程产生。这里关心的主要事件是资源的获取和释放。

与死锁相关的另一个问题是无限期阻塞或“饥饿”,即进程在信号量内无穷等待的情况。

产生饥饿的主要原因是:在一个动态系统中,对于每类系统资源,操作系统需要确定一个分配策略,当多个进程同时申请某类资源是,由分配策略确定资源分配给进程的次序。有的时候资源分配策略可能是不公平的,既不能保证等待时间上界的存在。在这种情况下,及时系统没有发生死锁,某些进程也可能会长时间等待。当等待时间给进程推荐和响应带来明显影响时,城发生了进程“饥饿”,当“饥饿”到一定程度的进程所赋予的任务即使完成也不再具有实际意义时就成该进程被“饿死”。

“饥饿”并不表示系统一定死锁。但至少有一个进程的执行被无限期的推迟,“饥饿”与死锁的主要区别有:

1)进入饥饿状态的进程可以只有一个,但由于循环等待条件进入死锁状态的进程却必须大于或等于两个。

2)处于饥饿状态的进程可以处于就绪状态,而处于死锁状态的进程则必定是处于阻塞状态。

3、银行家算法的工作原理

银行家算法的主要思想是避免系统进入不安全状态。在每次进行资源分配时,它首先检查系统是否有足够的资源满足要求,如果有,则先进行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资源,否则就拒绝分配上述资源。这样,它保证系统始终处于安全状态,从而避免死锁现象的发生。

4、进程同步、互斥的区别和联系

并阿发进程的执行会产生想制约的关系:一种是进程之间竞争使用临界资源,只能让它们逐个使用,这种现象称为互斥,是一种竞争关系;另一种是进程之间协同完成任务,在关键点上等待另一个进程发来的消息,以便协同一致,是一种协作关系。

5、作业和进程的关系

进程是系统资源的使用者,系统的资源大部分都是以进程为单位分配的。而用户使用计算机是为了实现一串相关的任务,通常把用户要求计算机完成的这一串任务称为作业。

批处理系统中的可以通过磁记录设备或系统提交作业,由系统的SPOOLLing输入进程将作业放入磁盘的输入井中,作为后备作业。作业调度程序(一般也作为独立的进程运行)每选择一刀后备作业运行时,首先为该作业创建一个进程(称为该作业的根进程)。该进程将执行作业控制语言解释程序