抛丸机吊钩配件图片:进程的同步与互斥间的联系

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 15:21:03
是关于linux操作系统里面的问题

首先要了解并发。
并发进程间的关系可以是无关的,也可以是有交往的。并发进程间无关是指它们是各自独立的,即如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,不需要特别的控制;并发进程间有交往是指一个进程的执行可能影响其他进程的执行结果,即一个进程的执行依赖其他进程的进展情况。有交往的并发进程一定共享某些资源。
进程之间互相竞争某一个资源,这种关系就称为进程的互斥,也就是说对于某个系统资源,如果一个进程正在使用,其他的进程就必须等待其用完,不能同时使用。例如,A,B两个进程共享一台打印机,如果系统已经将打印机分配给了A进程,当B进程需要打印时因得不到打印机而阻塞,只有A进程将打印机释放后,系统才将B进程唤醒,B进程才有可能获得打印机。
并发进程使用共享资源时,除了竞争之外有协作,要利用互通消息的办法来控制执行速度,使相互协作的进程正确工作。进程之间的相互合作来完成某一任务,把这种关系称为进程的同步。例如(生产者和消费者)A,B两个进程通过一个缓冲区合作完成一项任务,A进程将数据送入缓冲区后通知B进程缓冲区中有数据,B进程从缓冲区中取走数据再通知A进程缓冲区现为空。当缓冲区空时,B进程因得不到数据而阻塞,只有当A进程将数据送入缓冲区的时才将B进程唤醒。反之,当缓冲区满时,A进程不能继续送数据而阻塞,只有当B进程取走数据时才唤醒A进程。

总的来说:

互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源