1. 并发和并行
为什么操作系统上可以同时运行多个程序?
这是因为无论是单CPU还是多CPU,操作系统都营造出了可以同时运行多个程序的假象。实际的过程操作系统对进程的调度以及CPU的快速上下文切换实现的:每个进程执行一会就先停下来,然后CPU切换到下个被操作系统调度到的进程上使之运行。因为切换的很快,使得用户认为操作系统一直在服务自己的程序。
并发(concurrent)
指的是多个程序可以同时运行的现象,更细化的是多进程可以同时运行或者多指令可以同时运行。
并发的重点在于它是一种现象。并发描述的是多进程同时运行的现象。
并行(Parallel)
当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。
并行和并发的区别:
它们虽然都说是"多个进程同时运行",但是它们的"同时"不是一个概念。
并行的"同时"是同一时刻可以多个进程在运行(处于running),并行的多个任务之间是不互相抢占资源的
并发的"同时"是经过上下文快速切换,使得看上去多个进程同时都在运行的现象,是一种OS欺骗用户的现象。
串行模式
串行表示所有任务都一一按先后顺序进行。一次只能取得一个任务,并执行这个任务。
串行意味着必须先装完一车柴才能运送这车柴,只有运送到了,才能卸下这车柴,并且只有完成了这整个三个步骤,才能进行下一个步骤。
网友评论