如大家所了解的,进程互斥是由互斥资源引起的,即各进程之间共享互斥资源的使用权,这种竞争没有确定的必然联系,哪个进程竞争到互斥资源的使用权,则该资源就归哪个进程使用,从而获得所需资源的进程就可以获得 CPU 继续执行,直到它不再需要该资源时才放弃该资源的使用权,而那些未申请到互斥资源的进程则不能执行,直到得到所申请的互斥资源。
因此,进程互斥是通过互斥资源来制约各进程执行的,这种互斥无法事先指定进程对资源的访问顺序,即访问时无序的。
进程同步则是指相互协作的并发进程之间存在着必然的联系,若当前运行进程执行过程中需要进行同步时,在没有得到协同工作的其他合作进程发来的同步消息之前,当前运行进程则不能继续向前推进(运行)。
在进程同步中,虽然互斥资源仍然制约着进程的执行,但协调个进程向前推进的只能是进程同步,即通过进程同步来协调和制约各合作进程的执行,即进程同步是在互斥的基础上(大多是情况),通过对资源的有序访问去完成一个共同的任务。