一、进程间相互作用
1、相关进程和无关进程
在一个多道程序系统中同时运行的并发进程通常有多个,在逻辑上具有某种联系的进程被称为相关进程,在逻辑上没有任何联系的进程被称为无关进程,并发进程相互之间可能是无关的,也可能是相关的。
如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,即它们是各自独立的,则说这些并发进程的相互之间是无关的。
如果一个进程的执行依赖其他进程的进展情况,或者说,一个进程的执行可能影响其他进程的执行结果,则说这些并发进程是相关的。
2、与时间有关的错误
进程执行的速度是不能由进程自身来控制的,对于相关进程来说,可能有若干并发进程同时使用共享资源,即一个进程一次使用未结束,另一进程也开始使用,形成交替使用共享资源。在这种情况下,使得程序的计算结果与并发程序的执行速度有关,这种随执行速度的不同而可能出现的错误,被称为“与时间有关的错误”。
二、进程的同步与互斥
1、进程的同步
进程的同步是指进程之间的一种直接的协同工作关系,一些进程相互合作,共同完成一项任务。进程之间的同步也是进程间的一种直接制约关系,一个进程的执行依赖另一个进程的消息,当一个进程执行到某一点时,必须得到另一个进程发来的消息,有没有得到另一个进程的消息时该进程应该等待,直到消息到达才被唤醒,继续进程的执行。
2、进程的互斥
在系统中,许多进程常常需要共享资源,而这些资源往往要求排他性的使用,即一次只能为一个进程服务。因此,各进程只能互斥使用这些资源,进程之间的这种关系就是进程的互斥。
3、临界区
若在系统中的某些资源一次只允许一个进程