并发和并行的问题,老师是不是讲错了

Dorminmen Erlang 编程语言介绍 最后由 Dorminmen 于2016年10月07日回复

  • 3 解决
  • 1.6k 浏览

老师讲到:

在计算机操作系统中,并发指的是在一个时间间隔内有几个程序都处于已经启动运行到结束运行之间,且这几个程序都是在同一个处理机上被运行的,但是任意一个时刻点上只有一个程序在处理机上被运行。并发有三个特征

  • 几个程序在一个时间间隔内都在被运行
  • 几个程序是在同一个处理机上被运行
  • 同一时刻点只有一个程序会被运行 

并发能够给我们带来很多好处,可以提升我们系统的性能,创建可扩展和容错的系统。

首先带来的好处是提升系统的性能,设想有两个任务,任务A需要10秒的执行时间,任务B需要15秒得执行时间,如果只是在单个CPU上执行任务A和任务B,需要的时间就有25秒。但是如果是在有两个CPU的计算机上,任务A和任务B的需要得执行时间就只有15秒。如果要实现这样的性能提升,就需要并发程序。现在已经是多核计算机的时代,平时用的个人电脑都是多核,而8核CPU已经成为服务器的基本标配,32核心、64核心的计算机也已经不是什么稀罕的配置。而并发程序能够更好的利用多核CPU,最大限度的提升系统的性能。


请看下划线的文字描述,如果并发是指几个程序在同一个CPU上执行,为何在多CPU的情况下会得到性能提升? 前后矛盾啊?

  • Dorminmen 2016年10月07日 回答 #3楼
  • #1楼  @上海小胖 

    算了,我自己来回答吧,请老师下次讲的清楚些,避免误导学生, 下面是摘自<<计算操作系统>>的原文,老师并发的特征总结的是不严谨的:

    在单处理机系统中,每一时刻仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。

  • 0 评论
  • 上海小胖 2016年10月07日 回答 #1楼
  • 同学你好。

    这个就涉及到计算机原理了。

    理论上,一个core只能在一个时间点处理一件事情。

  • 0 评论