计算机系统中几对重要的概念区分——并发和并行

还是先看看csapp上的解释:并发(concurrency)是指一个通用上的概念,指一个同时具有多个活动的系统;并行(parallelism)指的是用并发使一个系统运行得更快。
    百度的解释:并发, 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。也就是实际上,并发使指的在逻辑上,宏观上,一个计算机能够同时执行多个任务多个程序,但是微观上看,在同一个时刻,只有一个程序在运行,但是由于处理器速度非常快的在几个程序来回切换,让我们觉得是好几个程序同时在执行。
    而并行则是真正的让计算机在物理上同时执行多个活动。
    举个例子,妈妈(cpu)在上午10点后开始做家务(程序),首先是收拾房间,收拾完房间后,开始洗衣服,洗完衣服后开始做午饭,那么到中午12点,妈妈一共做了3件事情(程序),从宏观上看,妈妈在一个上午的时间同时做了3个家务,但是实际上这三件事并不是同时做的。而如果妈妈这么选择做家务:在收拾房间的同时,把衣服扔到洗衣机里让洗衣机洗着,同时又让电饭锅蒸着米饭,等妈妈收拾完房间的同时衣服也洗好了,饭也做熟了。三件事情等于是真正上的同时执行的,这就是并行。很明显我们会发现,并行的速度要远远快于并发。
      当然并发和并行的具体实现远远很复杂,这只是先从概念上区分开并发和并行。

posted on 2011-06-30 20:09 古月 阅读(396) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章档案

C++/C

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜