互斥与同步——概述

长平狐 发布于 2013/06/03 14:54
阅读 24
收藏 0

互斥与同步——概述

如果运行的系统中至始至终只有一个执行路径,那么无须考虑互斥和同步的问题,但是,现代的Linux系统不仅支持多进程而且还指出多处理器(例如。多对称处理器SMP),在这样的环境下,当多个执行路径并发执行事确保对共享资源的访问安全是驱动开发不得不面对的问题。概括的说,互斥是指对资源的排他性访问,同步则要对进程执行的先后顺序做出妥善的安排。
所谓竞态,就是多个执行路径有可能对同一个资源进行操作时可能导致的资源数据絮乱的行为。我们把对共享的资源进行访问的代码片段称为临界区,把导致出现多个执行路径的因素称为并发源。
当我们说并发时,是指可能导致对共享资源的访问出现竞争状态的若干执行路径,不一定是指严格意义的时间意义上的并发执行。Linux系统下并发的来源主要有:
中断处理路径
当系统正在执行当前进程事,发生了中断,中断处理函数和被中断的进程之间形成的并发,在单处理器中,虽然中断处理函数和被中断的进程之间不是真正严格意义上的并发,但中断处理函数和被中断进程之间却可能形成竞态。软中断的执行也可以归为这种类型的并发。
调度器的可抢占性
在单处理器上,因为进行调度器的可抢占特性,导致的进程与进程之间的并发。这种行为非常类似多处理器系统上进程间的并发。
多处理器的并发执行
多处理器系统上进程与进程之间是严格意义上的并发,每个处理器都可以独自调度运行一个进程,在同一时刻有多个进程在同时运行。

原文链接:http://blog.csdn.net/ce123/article/details/7781998
加载中
返回顶部
顶部