操作系统中

同步

在并发环境下,保持操作之间的偏序关系的行为。

进程同步是指多个进程中发生的事件存在某种时序关系,必须协同动作共同完成一个任务。简单来讲同步是一种协作关系。

同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系

举几个例子:
当两个进程运行时,进程A需要获取进程B此时运行到某一步的运行结果或者信息,才能进行自己的下一步工作,这个时候就得等待进程B与自己通信(发送某一个消息或信号),进程A再继续执行。这种进程之间相互等待对方发送消息或信号的协作就叫做进程同步。或者工厂的流水线,每道工序都有自己特定的任务,前一道工序没有完成或不合格后一道工序就不能进行。再或者ABC三个进程分别负责输入、处理、输出数据,A必须先执行,B次之,最后C。

异步

异步性:是指进程以不可预知的速度向前推进。在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系(一般是资源问题)。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,程序总共需要多少时间才能完成等,都是不可预知的。

互斥

多个进程在运行过程中,都需要某一个资源时,它们便产生了竞争关系,它们可能竞争某一块内存空间,也可能竞争某一个IO设备。当一方获取资源时,其他进程只能在该进程释放资源之后 才能去访问该资源,这就是进程互斥。简单来说,互斥是一种竞争关系。
举例:假如多个进程同时申请一台打印机,而先申请打印机的一方先使用打印机,当它用完时在给其他进程使用。在一个进程使用打印机期间,其他进程对打印机的使用申请不予满足,这些进程必须等待。

同步和异步

在现代操作系统中,有并发性,共享性,虚拟性,不确定性四大基础特征。而程序并发活动的实现是异步(一个程序走走停停),并发控制的时候需要用到同步技术。

所以并发控制需要同步,并发的实现是异步,同步过多又会导致死锁。在并发领域有一句经典的话,并发执行的可串行化。那么并行是什么?并行才是真正的并发。并发只不过在占用时间片不同上实现的。

计算机网络:

同步通信简单的说就是你在发送数据时候我必须同时接受。这个过程有精确的时钟控制。

而异步通信是你在发数据时候必须加上开始与结束符号,这样我才可以接受,异步通信没有时钟控制。因为没有了时钟的控制(额外硬件),所以成本低,设备简单,但是传输效率较低。(开始与结束符占了开销)。

机组:

同步与异步在I/O中指的是一种数据访问机制。

同步指的是主动请求后等待I/O,数据就绪后读写必须阻塞。

异步指的是主动请求后,可处理其他任务,等I/O完毕后通知。

总结:

这三者的同步和异步相类似。只是操作系统中的同步和异步并不像相对关系。

操作系统中,同步是对于进程和进程而言。异步更像是宏观的看各个进程。

同步

  1. 同步是阻塞模式;
  2. 同步是按顺序执行,执行完一个再执行下一个,需要等待,协调运行;

异步:

  1. 异步是非阻塞模式,无需等待;
  2. 异步是彼此独立,在等待某事件的过程中,继续做自己的事,不需要等待这一事件完成后再工作。线程是异步实现的一个方式。

参考链接

操作系统中的同步和异步
同步与异步到底是什么???