Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157427
  • 博文数量: 55
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 582
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-17 19:31
文章分类

全部博文(55)

文章存档

2010年(19)

2009年(36)

我的朋友

分类: LINUX

2009-11-20 16:53:26

SMP:对称多处理器:多个CPU使用共同的系统总线,因此可访问共同的外设和存储器
 
宏观并行  微观串行
 
并发(concurrency):多个执行单元同时、并行地执行,而并发的执行单元对共享资源的访问很容易导致竞态(race conditions).
 
解决竞态的途径是保证对共享资源的互斥访问
 
互斥访问是一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问
 
访问共享资源的代码区域就是临界区(critical setions)
 
互斥的方法:中断屏蔽、原子操作、自旋锁(spin lock)、信号量
 
 
原子操作是执行过程中不会被别的代码路径所中断的操作   针对位和整型变量进行原子操作
 
自旋锁主要针对SMP或者单CPU但内核可抢占的情况,对于单CPU和内核不支持抢占的系统,自旋锁退化为空操作。在单CPU和内核可抢占的系统中,自旋锁持有期间内核的抢占将被禁止
 
进程获得自旋锁之后再阻塞,可能导致死锁的发生,copy_from_user()、copy_to_user()和kmalloc()都有可能引起阻塞,故在自旋锁占用期间不能调用这些函数
 
 
 
 
 
 
 
 
 
 
 
阅读(404) | 评论(0) | 转发(0) |
0

上一篇:第6章 字符设备驱动

下一篇:union sizeof

给主人留下些什么吧!~~