Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22410
  • 博文数量: 18
  • 博客积分: 810
  • 博客等级: 准尉
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-10 21:09
文章分类
文章存档

2009年(15)

2008年(3)

我的朋友

分类: LINUX

2009-04-08 14:34:51

本章注意一些基本概念与术语

8.1 临界区和竞争条件

临界区——访问和操作共享数据的代码段

为了避免在临界区中并发访问,需要保证这些代码原子的执行(代码在执行结束前不可被打断,把整个临界区当成一个整体)

8.2 加锁

并发执行的原因:

(1) 中断——可在任何时刻异步发生,可以随时打断正在执行的代码

(2) 软中断和tasklet——可在任何时刻唤醒或调度软中断和tasklet,打断正在执行的代码

(3) 内核抢占——内核中的任务可能被另一个任务抢占

(4) 睡眠及用户空间的同步——在内核执行的进程可能会睡眠,会唤醒调度程序,从而导致调度一个新的用户进程执行

(5) 对称多处理——两个或多个处理器可以同时执行代码

 

中断安全代码——中断处理程序中能避免并发访问的安全代码

SMP安全代码——对称多处理机器中能避免并发访问的安全代码

抢占安全代码——内核抢占是能避免并发访问的安全代码

 

阅读(358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~