同步和互斥

最近因为在学习多进程,所以不可避免得要接触进程的同步和互斥。对于以前学过的概念,因为太久没去复习已经有点生疏了,于是今天特意找了一下相关的文章来看了一下。这篇东西算是今天学习的笔记。

相交进程之间的关系主要有两种,同步与互斥。

所谓互斥,是指散布在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。如果用对资源的访问来定义的话,互斥某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的

所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。如果用对资源的访问来定义的话,同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源

       按我的理解,两者的工作过程可以用下面两张图来表示(所有信号量都初始化为0)同步和互斥_第1张图片

 

所以说,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。

希望我的东西能给大家带来点帮助,同时给大家推荐个网站,这个网站有更加具体的介绍,地址是:http://oa.gdut.edu.cn/os/multimedia/oscai/chapter2/pages/ch26.htm 。

你可能感兴趣的:(工作,任务)