Advertisement

并发并竞争

阅读量:

一、什么是并发与竞争?

并发:多个“用户”同时对同一块共享内存进行访问。

竞争:当多个“用户”同时访问并修改同一段共享内存时,可能会引发数据混乱,甚至导致程序崩溃,这种现象被称为竞争。

二、造成Linux系统产生并发的原因是什么呢?

(1)多线程环境下多个任务同时进行访问

(2)采用抢占机制实现的并发访问方式

(3)通过中断程序实现的并发访问模式

(4)多核处理器中各核心之间的并发访问

三、什么是同步?

显然,我们并不期望出现此类状况,因此需要采取措施对临界资源进行防护,确保在任意时刻仅允许单一进程或线程对其进行访问,甚至按照特定顺序执行,这一机制即为同步。

实现同步的方式多种多样,例如:自旋锁、信号量、互斥量 等等。

四、共享资源(临界资源)?

在多任务处理机制中,存在多个执行单元,这些单元通常具备共享存储区域(例如全局变量、共享内存等)。

因此,需要对共享资源实施保护措施。其中,线程内部的局部变量无需防护,而应重点保障多个线程共同访问的共享数据。例如:全局变量以及设备结构体中的成员变量。

避免并发与竞争的操作:

1.原子操作定义与特性

原子这一概念最早出现在化学领域中,指的是在化学反应过程中无法进一步分割的最基本粒子。同样地,在计算机科学的内核层面

全部评论 (0)

还没有任何评论哟~