
并行执行的时候···程序会占用cpu来执行···我们用的电脑一般都只有一条主线···程序产生数据交换的时候会占用主线。每次只能允许一个交换,一般情况下电脑处理速度快的时候,等待时间会很少会产生连续执行的假象。当程序并发执行的时候,就有可能产生间断的现象···这个间断是程序等待时间表现出来的···
不能。在多道程序环境下,程序并发执行将失去其封闭性,并具有间断性,以及其运行结果不可再现性的特征。由此,决定了通常的程序是不能参与并发执行的。为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程的概念。
程序并发执行时的特征
间断性:因相互制约
失去封闭性:主要由共享资源引起
不可再现性:程序的执行结果与程序运行的速度有关
在单cpu系统中若干程序的并发执行是由(进程)实现的
进程的并发性(Concurrency)是指一组进程的执行在时间上是重叠的。
例如:
有两个进程A和B,它们分别执行 *** 作al,a2,a3和b1,b2,b3。在一个单处理器上,就A和B两个进程而言,它们的执行顺序分别为al,a2,a3和b1,b2,
,b3,这是进程执行的 *** 作的顺序性。然而,这两个进程在单处理器上它们的 *** 作可能是交叉执行的,如执行序列为al, b1, a2, b2, a3,
b3或al, b1, a2, b2, b3,
a3等,则说A和B两个进程的执行是并发的。从宏观上来看,并发性反映出一个时间段中有几个进程都处于运行还未运行结束状态,目‘这些进程都在同‘处理器上运行,但从微观上来看任一时刻仅有一个进程在处理器上运行。反过来看,并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。
不对,并发和并行是不同的,并发是指宏观上并行,其实不是并行,例如,多进程其实是将所有进程按时间分为一个一个的时间片,每一个时刻只执行该运行的片,时间片过期后转而执行下一个进程的时间片
如下图:
|
|~~~__~~~~~__~~~~~~~~~~~~~~~~
进程A
|
|__~~~~~~__~~~~~~~~~~~~~~~~~~
进程B
|
|~~~~~__~~~~~~~__~~~~~~~~~~~~
进程C
|
|______________________________时间轴
~~~~~部分是指此时没有在运行的进程
__部分是指占用CPU运行的进程时间片
从上图可以看出,进程B首先运行,然后当B运行结束后(时间片到)转到A,然后转到C
不过由于时间片很短,所以看起来是并行处理的,其实不是,所以叫并发,而不是并行。
其实每一个时间只运行一个进程的一片而已。
并行是如你所说的,多个程序同时运行(不过一个处理机不知道能不能支持多个进程,一般服务器采用多个处理机处理多个进程)
并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。
(1)并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。
(2)并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。
以上就是关于为什么程序并发执行会产生间断性全部的内容,包括:为什么程序并发执行会产生间断性、程序并发执行的条件是什么、在单cpu系统中若干程序的并发执行是由什么实现的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)