1:解释并发与并行,并说明两者关系。
并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。
并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。
2:进程间有哪几种关系?分别要采用什么策略?
进程之间存在着直接制约和间接制约两种制约关系,其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。同步是因合作进程之间协调彼此的工作而控制自己的执行速度,即因相互合作,相互等待而产生的制约关系.而互斥是进程之间竞争临界资源而禁止两个以上的进程同时进入临界区所发生的制约关系。
3:为什么说进程的互斥也是一种同步?
进程互斥也是一种特殊的进程同步关系,即逐次使用进程互斥关系资源,也是对进程使用资源的次序的一种协调。
4:解释死锁与“饥饿”,并说明两者关系。
饥饿:是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。
死锁:是指在多道程序系统中,一组进程中的每一个进程都无限期等待被该组进程中的另一个进程所占有且永远不会释放的资源。
相同点:二者都是由于竞争资源而引起的。
不同点:死锁进程都处于等待状态,忙等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死;死锁进程等待永远不会被释放的资源,饿死进程等待会被释放但却不会分配给自己的资源,表现为等待时限没有上界(排队等待或忙式等待);死锁一定发生了循环等待,而饿死则不然。这也表明通过资源分配图可以检测死锁存在与否,但却不能检测是否有进程饿死;死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。
5:什么叫做临界区?如何解决进程对临界资源的访问冲突?
临界区:每个进程中访问临界资源的那段程序叫做临界区。进程对临界区的访问必须互斥,每次只允许一个进程进去临界区,其他进程等待。当有若干进程要求进入它们的临界区时,应在有限时间内使一进程进入临界区。换句话说,它们不应该相互等待而致使谁都不能进入。每次最多有一个进程处于临界区内。进程在临界区内逗留应在有限时间范围内。