2.CUP空闲是根据计算数据量和CUP处理能力来确定的,没有任何参数,就不能确定CUP有无空闲了。
3.如果两个程序需要先后执行,就肯定有等待现象,但不是相互等待,是乙程序等待甲程序执行,甲程序执行完毕后乙程序才能执行,等待就发生在甲程序的执行过程中。
因为程序在并发执行时,是多个程序共享系统中的各种资源,就像一扇门没上锁,很多人都进进出出一样,程序的运行,它用到的资源的状态可以被其他程序随意改变,程序也自然就失去了封闭性;由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。例如:有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N∶=N+1 *** 作;程序B每执行一次时, 都要执行Print(N) *** 作,然后再将N置成“0”。程序A和B以不同的速度运行。
(1) N∶=N+1在Print(N)和N∶=0之前,此时得到的N值分别为N +1, N +1, 0。
(2) N∶=N+1在Print(N)和N∶=0之后,此时得到的N值分别为 N, 0, 1。
(3) N∶=N+1在Print(N)和N∶=0之间,此时得到的N值分别为N, N +1, 0。
换句话说,就是程序经过多次执行后,虽然它们执行时的环境与初始条件相同,但得到的结果却各不相同。希望能帮到你。
在单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两个进程的执行是并发的。从宏观上来看,并发性反映出一个时间段中有几个进程都处于运行还未运行结束状态,目‘这些进程都在同‘处理器上运行,但从微观上来看任一时刻仅有一个进程在处理器上运行。反过来看,并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)