哪些是同步通信 哪些是异步通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪些是同步通信 哪些是异步通信相关的知识,希望对你有一定的参考价值。

1.“异步通信”是一种很常用的通信方式(效率较低)异步通信在发送字符时,发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。所传送的数据以字节为单位。每个字节前加上一位起始位,每个字节的后面加上停止位。好处:异步通信的好处是通信设备简单、便宜,但传输效率较低。 2.“同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。同步通信是把所传送的数据以多个字节(100字节以上)为单位,在其前后添加标志。 参考技术A 时间一样。
相当于直播追答

不是转播

同步与异步到底是什么???

总得来说,同步异步出现在以下几个领域:

1  计算机网络。

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

     在网络协议(network protocol)的三大组成部分:语法,语义,同步。这时候同步指的是事件实现的顺序。比如建立tcp连接时候的三次握手实现顺序。



2   操作系统。

    中断系统的一个特点就是可以对异步事件响应。异步事件指的是断断续续,随机,没有时序关系的事件。同步事件反之,一个事件从头到尾顺序执行,没有间断。

   进程间的关系有同步与互斥。同步就是多个进程协调完成一个任务。比如,司机与售票员关系。司机停车---售票员开门----乘客上车---售票员关门---司机开车。在这个过程中任务就是拉乘客。司机和售票员作为两个进程协调工作。互斥指的是多个进程竞争同一个资源。这时资源叫做临界资源(任何时刻只允许一个进程访问,三个线程可以同时时一个变量iChange减1,但任何时间只允许一个对其进行操作,火车售票问题如果不加同步最终票数会出现负值。)。

   在现代操作系统中,有并发性,共享性,虚拟性,不确定性四大基础特征。而程序并发活动的实现是异步(一个程序走走停停),并发控制的时候需要用到同步技术。(Java多线程中可以使用Synchronized实现同步控制),所以并发控制需要同步,并发的实现是异步,同步过多又会导致死锁。在并发领域有一句经典的话,并发执行的可串行化。那么并行是什么?并行才是真正的并发。并发只不过在占用时间片不同上实现的。

   I/O模型中,频繁出现的有同步与异步,阻塞与非阻塞。要想弄清这个问题,必须了解冯诺依曼体系结构与进程状态模型。首先理解I/O在计算机体系中作用。

   技术分享



    一个输入操作包含两个过程:

       1   等待数据准备好

       2   从内核向进程复制数据。

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

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

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

      阻塞指的是进程访问的数据未就绪,进程必须等待。

      非阻塞指的是进程访问数据未就绪,进程可以不用等待。


技术分享

   进程一般有五种状态,创建进程,此时进程在就绪队列中等待cpu调度,当在cpu上执行时,此时为运行态,运行过程中可能遇到I/O请求此时进入阻塞状态,或者进程执行完,进入死亡状态。阻塞的时候,当所需资源满足时,从阻塞状态转化为就训态。如此反复。

   有了以上基础知识的积淀,现在来看常用I/O模型。

  技术分享

    完整模型请参考《Unix网络编程卷1》P127.

    举个例子吧:纯概念实在难以理解。

    如果说我(某个进程)去食堂吃饭(任务A),吃完后要去图书馆(任务B)。也可以去教室。(任务C)等待阿姨把饭做好。

    阻塞式I/O就是我一直在等阿姨做饭。直到吃上饭。

    非阻塞式I/O就是我在等的时候,会一直问阿姨饭好了没有,直到吃上饭。

    同步阻塞式I/O和同步非阻塞式I/O都会使得进程阻塞。(任务卡在A那里不动了)

    I/O复用涉及到select,poll函数,由于未深入理解,例子没想到。

    信号驱动式就是我在等的时候,也在等其他信号,比如阿姨使眼色我让我吃饭,直到吃上饭。

    异步I/O就是我在等的时候,可以去图书馆也可以去教室,饭好了后,阿姨会叫我吃饭。(发起任务A到通知结束A时候过程中可以执行选择性执行A,B,C,而不会把阻塞到任务A那里)。


    看了这么多,那究竟什么是同步与异步呢?必须放在具体的环境以及项目中去深入理解。

    这是我所知道的同步与异步在计算机中出现的地方,文中有很多观点是我自己理解的,可能不符合真实的含义,希望大家帮我纠正下。不甚感激。个人水平实在有限,没有贡献关于同步异步的代码。

    这是我的第一篇技术博客,没想到竟然花费了2个多小时。发现自己理解的---写出来----说出来---说出来让别人理解的难度水平在递增,写作过程也是一个梳理知识体系以及思考的过程。希望自己可以坚持写博客。

    

   










本文出自 “我的博客” 博客,请务必保留此出处http://thinklili.blog.51cto.com/10867130/1742869

以上是关于哪些是同步通信 哪些是异步通信的主要内容,如果未能解决你的问题,请参考以下文章

哪一个是同步通信或异步通信?为啥?

同步与异步通信

同步通信和异步通信的区别

《高性能利器》--异步调用有哪些实现方式?

同步通信和异步通信

同步通信和异步通信