并发和竟态

并发和竞态


并发:多个执行单元同时,并行的被执行。

竞态:并发的执行单元对共享资源(硬件资源和软件上的全局变量,静态变量等)的访问导致发生竞态。


竟态的几种情况:



1.对称多处理器(SMP)的多个CPU


SMP:紧耦合,共享存储的系统模型。如下图所示。


并发和竟态


其特点是多个CPU使用共同的系统总线,因此可访问共同的外设和储存器。

有SMP的情况下两个核的竞态可能发生于两CPU的进程与进程之间,进程与中断之间,中断与中断之间


2.单CPU内进程与抢占它的进程

在Linux2.6以后的内核支持内核抢占调度。

情况类似于SMP的多个CPU。


3.中断(硬中断,软中断,Tasklet,底半部)与进程之间

中断服务程序访问进程正在访问的资源会发生竟态。

多个中断之间本身也可能引起并发。但在Linux 2.6.35之后就取消了中断的嵌套。





上述并发的发生除了SMP是真正的并行之外其他都是单核上的”宏观并行微观串行”。

但引发的实质问题和SMP相似。




解决竟态问题的途径是保证对共享资源的互斥访问。




声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年10月16日
下一篇 2016年10月16日

相关推荐