全部博文(18)
分类: LINUX
2009-04-08 14:34:51
本章注意一些基本概念与术语
8.1 临界区和竞争条件
临界区——访问和操作共享数据的代码段
为了避免在临界区中并发访问,需要保证这些代码原子的执行(代码在执行结束前不可被打断,把整个临界区当成一个整体)
8.2 加锁
并发执行的原因:
(1) 中断——可在任何时刻异步发生,可以随时打断正在执行的代码
(2) 软中断和tasklet——可在任何时刻唤醒或调度软中断和tasklet,打断正在执行的代码
(3) 内核抢占——内核中的任务可能被另一个任务抢占
(4) 睡眠及用户空间的同步——在内核执行的进程可能会睡眠,会唤醒调度程序,从而导致调度一个新的用户进程执行
(5) 对称多处理——两个或多个处理器可以同时执行代码
中断安全代码——中断处理程序中能避免并发访问的安全代码
SMP安全代码——对称多处理机器中能避免并发访问的安全代码
抢占安全代码——内核抢占是能避免并发访问的安全代码