并发和竟态

    xiaoxiao2021-12-03  23

    并发和竞态

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

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

    竟态的几种情况:

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

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

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

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

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

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

    情况类似于SMP的多个CPU。

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

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

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

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

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

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

    转载请注明原文地址: https://ju.6miu.com/read-679886.html

    最新回复(0)