精华内容
下载资源
问答
  • 并行与串行的概念
    万次阅读
    2019-04-03 19:58:29

    综述

    关于串行与并行,相信搞cs的很多人都不陌生。今天简答记录一下,总结自网络。

    概念

    串行接口

    串行接口,简称串口,也就是COM接口,是采用串行通信协议的扩展接口。串口的出现是在1980年前后,数据传输率是115kbps~230kbps,串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备,目前部分新主板已开始取消该接口。

    并行接口

    并行接口,简称并口,也就是LPT接口,是采用并行通信协议的扩展接口。并口的数据传输率比串口快8倍,标准并口的数据传输率为1Mbps,一般用来连接打印机、扫描仪等。所以并口又被称为打印口。

    区别

    并行接口

    并行接口是指数据的各位同时进行传送,其特点是传输速度快(1Mbps),但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高

    串行接口

    串行接口是指数据一位位地顺序传送,其特点是通信线路简单只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢(115kbps~230kbps)

    更多相关内容
  • 逻辑设计中经常会遇到并行串行逻辑的概念并行逻辑通常需要大量的逻辑块输入,如图1所示。采用并行逻辑后,可以减少逻辑的级数,从而改善设计的性能,提高器件工作速度。并行逻辑的速度提高是以器件的资源利用率...
  • 并行逻辑与串行逻辑

    2021-01-19 23:09:52
    逻辑设计中经常会遇到并行串行逻辑的概念并行逻辑通常需要大量的逻辑块输入,如图1所示。采用并行逻辑后,可以减少逻辑的级数,从而改善设计的性能,提高器件工作速度。并行逻辑的速度提高是以器件的资源利用率...
  • 了解了线程执行的基础概念之后再看一下什么是并发、并行串行。 并发: 在单核CPU中,系统调度只能在同一时间执行一个线程,此时执行的多线程,其实是cpu的控制权在多个线程之间来回快速切换。造成看起来就像是...

    使用多线程编程的主要目的是为了在有限的时间内充分利用计算机的处理能力做更多的事情(后文描述更精准)。而线程执行必须要先获取cpu的执行权,只有获取了cpu的执行权的线程才能被执行。了解了线程执行的基础概念之后再看一下什么是并发、并行、串行。

    并发:

    在单核CPU中,系统调度只能在同一时间执行一个线程,此时执行的多线程,其实是cpu的控制权在多个线程之间来回快速切换。造成看起来就像是同时执行了多个线程的幻觉。

    栗子:

    现在有ABC三个线程,三个线程之间首先会争夺CPU的控制权(假设是单核CPU),当A首先抢到控制权,那么B和C就会等待,等B抢到控制权A和C就会等待。这样三个线程之间快速切换,在同一时间内,只会有一个线程在运行。这就是并发。

    并行:

    在多核CPU中才会有并行,因为不同线程可以获取不同cpu的控制权,有了控制权就能被执行。简单的讲,并行就是在同一时间内,有多条线程同时执行。(注意:和并发有区别)

    串行:

    这个概念更好理解了,ABC几个线程,A先获取了CPU的控制权,那么A线程就会被执行,A执行完毕之后,B抢到控制权,在执行B线程,B线程执行完之后,再执行C线程……就按单核CPU线程排队办理业务就行了。

     

    线程越多就越好?

    开头说了使用多线程是为了在有限时间内处理更多的事情。这句话其实并不是特别准确,线程并不是越多越好

    (1)首先每多开一个线程就会多占用一部分内存,线程越多,资源消耗也就越大。

    (2)线程越多,CPU控制权需要在多个线程之间进行来回切换,而线程之间的切换也会消耗许多的时间,CPU的利用率反而下降了。

    (3)线程太多,CPU占用如果达到100%,长时间的满载状态也会加速计算机硬件老化。

    (4)反正就是不好

     

    展开全文
  • 先抛开语言不管,只聊概念,说起并发,就很容易想到它和串行并行的区别。 串行:一次只能取得一个任务并执行这个任务,这个任务执行完后面的任务才能继续; 并行:一次可以取得多个任务,并且可以同时执行这几个...

    先抛开语言不管,只聊概念,说起并发,就很容易想到它和串行并行的区别。

    串行:一次只能取得一个任务并执行这个任务,这个任务执行完后面的任务才能继续;

    并发:指的是在同一个时间段内,多条指令在CPU上同时执行;

    并行:指的是在同一时刻,多条指令在CPU上同时执行。

    并发和并行都是为了充分利用 CPU 多核计算资源提出来的概念。并发程序其实并不要求 CPU 具备多核计算的能力,在同一时间段内,多个线程会被分配一定的执行时间片,在 CPU 上被快速轮换执行。

    串行还是并发,这都是任务安排者视角看到的东西。前者要求你看到前一个任务结束了,下一个任务才能安排;而后者呢,你可以同时提交许多任务,执行者(们)之间会相互协调并自己安排执行顺序(但未必合理,比如可能出现死锁),你把任务安排下去就不用管了。相比之下,“并行”是任务执行者视角的东西,和前两者所处平面不同。

    尤其是,纠正一个错误的观念:并不像一般人以为的“单核单线程没有并行”;事实上,哪怕用了单核单线程 CPU 的电脑,它上面也存在真正的“并行”。只不过,这个并行并不是 CPU 内部的、线程之间的并行;而是 CPU 执行程序的同时,DMA 控制器也在执行着网络报文收发、磁盘读写、音视频播放/录制等等任务。

    典型案例:你买了个新硬盘,打算把自己的重要文件复制过去。于是你找到 music 目录,把所有的音乐文件夹选中,复制 50G 音乐到新硬盘;然后打开 photo 目录,把100G照片复制到新硬盘;又打开 mov 目录,把 800G 视频复制到新硬盘……

    最后,你看到 Windows 显示了10个文件复制窗口;其中一个窗口的提示是“还有一千六百个文件待复制,需要三天零八小时七分钟三十二秒”。

    这就是典型的“并发”任务。

    在这个场景里,你同时启动了10个文件复制进程,帮你复制十大类文件。如果没有“并发”支持,你只能先复制一个文件夹,等上半小时,看它复制完了才能继续复制下一个。这当然很累人。一旦有了并发支持,你就能同时启动十个复制任务。在计算机忙碌的同时,你完全可以出去旅个游。

    但是,细心的你可能会注意到:如果这十个文件复制任务没有分成十个进程去做,而是写个批处理甚至干脆用 Linux 的 dd 命令全盘复制,那么复制完所有文件只需五六个小时。这是因为,十个进程会彼此争抢资源;而每次进程执行权切换,硬盘就不得不重新寻道——这是非常非常浪费时间的。其结果,就是把本来五六个小时就能搞定的事情,争抢成了三天都搞不定……

    换句话说,这里面没有并行,只有并发。

    说的更清晰点,对电脑操作者,你的确是“并发”了十个任务;但对程序这个执行者来说,它们仍然是“串行”使用硬盘——进程1用200ms,交出控制权;换进程2用200ms硬盘,交出控制权;然后是进程3、4、5、6、7……

    它们只是快速切换执行权、从而让你得到了一个“同时执行”的假象而已。

    因此,对这类任务,其实你还是自己写个批处理更好。节省你的生命,也节省硬盘的使用寿命。

    当然,如果你的两台电脑分别装了块新硬盘,显然它们对各自硬盘读写就是“并行”的,互不干扰。你完全可以用第三台电脑远程登陆上去,然后分别在两者上面启动各自的复制进程。只要没有数据相关,先让电脑A复制完再去捣鼓电脑B,这显然是不明智的。

    类似的,同一台电脑里面,网卡收发信息和硬盘读写并不相关;CPU忙碌时让显卡空闲也是极大的浪费。换句话说,不同任务有不同的执行实体;那么我们当然不应该“在CPU上执行任务A”时“禁止任务B使用网卡”。没错,只要执行任务的硬件不同(包括但不限于不同的CPU核心、网卡A和网卡B、C、D、显卡、硬盘、打印机等等),它们就可以并行工作。

    一个好的程序,一方面不应该在单个硬件上造成过多切换(比如在一块硬盘上同时开10个文件复制进程就是一种极其低效的使用方式),另一方面则要尽量利用每个空闲的硬件(比如任务A使用硬盘时应该允许任务B使用网卡),这才不至于降低执行效率、使得硬件使用不够充分。

    综上,串行在执行单个简单任务时,执行速率是最高的。因为完全没有干扰,任何硬件想用就用。但是,串行方式的硬件利用率不高。比如当某个任务不需要使用打印机时,在它完成之前,打印机就只能闲置。

    为了解决这个问题,我们首先要允许“并发”。“并发”的意思是,你可以同时提交多个任务,但系统并不能保证它们可以并行执行。甚至于,在极端的、类似“单个硬盘上同时启动10个复制进程”的场景里,“并发”反而引起了过多的切换动作,成几倍甚至几十倍的降低了文件复制效率——这种场景下,并发甚至要不如串行。

    想要提高并发的效率,我们就必须深入进去,关注“这些任务之间究竟有没有出现并行”。比如,如果文件复制程序写的非常糙,那么很可能是“先从旧硬盘读取数据,然后写入新硬盘;数据写入新硬盘后,继续从旧硬盘读取数据”。这在单硬盘上是合理的,少了一些寻道操作;但在两块硬盘的场景下,这就相当于“串行使用两块硬盘”,这个利用效率显然太低了,每块硬盘只有50%左右的利用率(当然,现代OS会主动多读一些数据到磁盘缓存,这个机制可以有效提高硬盘利用率)。那么,如果同时启动两个复制进程,反而会不时出现“进程A读旧硬盘,同时进程B写新硬盘”这种场景,从而把每块硬盘的利用率提高到60%~80%。

    换句话说,“并发”的确经常能让“并行”自然而然的出现,硬盘利用率也的确被提高了;只是这种提高缺乏保证(比如,运气不好时,复制进程A可能和进程B争着读取旧硬盘,从而导致很多不必要的寻道动作);而且,由于并发并不保证合理的执行顺序,反而经常“搬起石头砸自己的脚”。比如,一旦同时启动更多复制进程(比如三五个),那么过多的进程切换引起的过多的磁盘重新寻道动作就会抵消一切好处。

    因此,很多时候,我们需要一个优秀的、头脑清醒的程序员;只有在他的有意识的安排下,才能在确保硬件利用率的同时、不因过多的争抢和切换降低执行效率。

    参考:

    并发和并行的区别

    并发与并行的区别是什么? - 知乎

    [并发概念] 串行、并行与并发_大唐雨夜的博客-CSDN博客_并行与串行的概念

    Have Fun

    展开全文
  • 并行传输和串行传输的区别

    千次阅读 2022-04-18 09:58:09
    并行传输:并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输,是在传输中有多个数据位同时在设备之间进行的传输。 串行传输:使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的...

    一、概念

            并行传输:并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输,是在传输中有多个数据位同时在设备之间进行的传输。

            串行传输:使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、外设之间的远距离通信。

    二、示例

            举两个例子来说明上面的两个概念。假设现在有1、2、3、4、5、6、7、8、9、10这10个数字需要从A传输到B。如果A和B之间有10条通道,那么每条通道传输一个数字,只需要一次就可以将10个数字同时传输过去。这就是并行传输。

            还是10个数字从A传输到B的例子,此时A和B之间只有一条通道,那么这10个数字需要依次通过这一条通道到达B,这就是串行传输。

    三、区别

            1、传输方式不同:一个是并行一个是串行

            2、效率不同:并行传输效率高,一次可传输多个数据;串行传输一次可传输一个数据。

            3、速度不同:这个要具体说一说,大多数情况下串行速度会快一些。

            4、并行传输适用于短距离,串行适用于长距离。

    四、比较效率和速度

            上面提到了效率和速度两个概念,在这里要做一个比较。光从并行和串行的概念来看,并行似乎传输速度要比串行快,但是实际上确实反过来的。为什么呢?

            原因是并行传输虽然一次可以发出多个数据,但是由于实际使用中,多条线路同时发送数据会造成线路震荡,为了避免这种干扰,就必须将两次发送之间的间隔时间加大。而串行传输不会有这个影响。举个不太准确的例子,并行传输一个发送10个数字,假设一秒钟可以发出5次(间隔时间已经加进去了),那么一秒钟一共发送了50 个数字;如果使用串行传输的话,虽然效率低,一次仅能传输一个数字,是例子中并行传输效率的1/10,但是串行传输一秒钟可以传输100次,所以同样的时间内,串行传输比并行传输多传输了50个数字。这就是为什么明明并行效率高却不如串行用途更广泛的原因,因为串行快。

    展开全文
  • 串行传输和并行传输的概念

    千次阅读 2021-06-26 03:55:23
    串行传输和并行传输介绍一、串行传输串行通信技术,是指通信双方按位进行,遵守时序的一种通信方式。串行通信中,将数据按位依次传输, 每位数据占据固定的时间长度,即可使用少数几条通信线路就可以完成系统间交换...
  • 串行与并行的理解

    千次阅读 2021-05-05 21:21:59
    什么是串行? 串行就是按顺序执行,好比银行只有1个窗口,有3个人要办事,那么必须排队,只有前面的人办完走人才可以继续下一个. ...js串行与事件循环 1.JS是单线程的 所以js中的代码都是串行的,前面没
  • 串行通讯与并行通讯

    千次阅读 2022-01-05 10:56:06
    这两个概念从文字表面就可以理解,专业些的解释是:串行通讯是指设备 之间通过少量数据信号线(一般是8根一下),地线以及控制信号线,通讯时数据按照一位一位地传输形式的通讯。并行通讯一般是指使用8、16、32及64...
  • Java8-Lambda编程[4] 串行与并行

    千次阅读 2021-03-09 17:35:21
    之相对的是并行,多个任务会同时运行在不同的cpu线程上,效率较高,但受限于cpu线程数,如果任务数量超过了CPU线程数,那么每个线程上的任务仍然是顺序执行的。而并发是指多个线程在宏观(相对于较长的时间区间而言...
  • 串行与并行的区别

    万次阅读 多人点赞 2019-08-15 11:30:19
    1.并行传输: 字符编码的各位(比特)同时传输。 特点: (1)传输速度快:一位(比特)时间内可传输一个字符,并行口传输8位数据一次送出.; (2)通信成本高:每位传输要求一个单独的信道支持;因此如果一个字符包含...
  • 本文节选自《FPGA之道》,来一起学习下作者对于并行与串行的讲解。
  • 并发、并行串行

    2020-11-17 22:12:18
    并发(concurrency)和并行(parallellism)的区别: 解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 解释二:并行是在不同...所以并发肯定是宏观概念,在微观上...
  • [并发概念] 串行并行与并发

    千次阅读 2019-12-31 07:29:43
    串行并行 串行是排队一个一个处理任务,并行是同时处理多个任务。 并发和并行 概念非常相似,难以区分。分别体现在两个方面。 并发(Concurrency),体现在(1)单个处理器;(2)逻辑上同步运行。 并行...
  • 原文转自:从串行并行,从并行到分布式 1. 概念 假设有AB两个任务,则串行并行、并发的区别如图1所示。 串行 A和B两个任务运行在一个CPU线程上,在A任务执行完之前不可以执行B。即,在整个程序的运行过程中...
  • 多道批处理系统宏观上并行微观上串行的含义:宏观上不同程序,不同设备并行,微观上同一设备串行王道里面并没有详细解释看题目更容易理解时间轴中不同程序为不同行,不同设备可以在时间轴的相同坐标,也就是 宏观上...
  • 1 概念 移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,...
  • 串行 A和B两个任务运行在一个CPU线程上,在A任务执行完之前不可以执行B。即,在整个程序的运行过程中,仅存在一个运行上下文,即一个调用栈一个堆。程序会按顺序执行每个指令。 转自:...
  • 交通信息控制工程系教案理论教学用 课程名称 微机原理接口技术 第 21 次 第 10 周 2 学时 上课教室 WM1310 课程类型 专业基础课 授课对象 自动化专业 章节名称 第9章 并行接口与串行接口9.3 9.4 教学目的 和要求...
  • 很多人对这几个常见的概念,似乎熟悉而又陌生。 二、理解 2.1 前缘 如果之前有同学看过我的 《我眼中的Java大牛之孤尽老师》 这篇文章,就会发现里面已经提及一二,遗憾的是大多数同学都是遇到问题的时候才想着去问...
  • 同步对应相对固定顺序的串行,此同步为前后直接制约关系。特别注意区别生活中两个人的同步,类并行。 异步对应非规律的并行段。 USB如今用的是串行并行在低频率是传输更快,高频率反之,因为会相互干扰。 .....
  • 串行接口与并行接口

    千次阅读 2020-06-30 21:54:57
    关于串行与并行,今天简答记录一下,总结自网络。 概念 串行接口 串行接口,简称串口,也就是COM接口,是采用串行通信协议的扩展接口。串口的出现是在1980年前后,数据传输率是115kbps~230kbps,串口一般用来连接...
  • 并发、并行串行、同步、异步的区别?

    千次阅读 多人点赞 2019-01-25 16:17:21
        并发和并行是即相似又有区别的两个概念并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,...
  •   串行并行与并发的理解   并发和并行的区别(图解) 一、串行(Serial)   1️⃣串:一连串(一列),行:向前走 ==》 一列的向前走   2️⃣在多任务的单处理器执行环境下的表现:     每次只能处理...
  • 实际开发中很多人会因为并发,并行串行,同步,异步等名词搞混,搞不清楚这些名称的意思和之间对应的关系。其实这也是实际开发中必须掌握一些知识点。掌握和理解这些概念也有助于我们去更好去开好。 1.并发编程...
  • 并行程序在效率上的简单比较问题:多核单核的CPU在运行串行并行程序时时,在效率上的差别。多核兴起:20世纪40年代第一台电子管计算机的发明标志计算工具进入了一个崭新的时代。20世纪50年代末,晶体管的发现...
  • 串行测试 并行测试 随着技术的进步,随着组织从手动测试转向Selenium测试自动化 ,测试解决方案变得比以往更具可扩展性。 但是,大多数组织仍在努力的领域之一是可并行运行多个测试的可伸缩性。 许多公司仍在使用...
  • 串行并行和并发

    千次阅读 2020-01-18 14:28:27
    串行并行和并发 并行和并发 并发:1.一个处理器。2.逻辑上的同时运行 并行:2.多个处理器。2.物理上的同时运行 并发:一个咖啡机,交替 并行:多个咖啡机 并行:真正的“同时”运行,在同一时刻,有...
  • 串口通信基本概念(一)——串行与并行通信,同步异步通信 一、串口通信简介 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,867
精华内容 25,146
热门标签
关键字:

并行与串行的概念