Linux内核
David_Henry
走自己的路!
展开
-
Linux内核互斥锁
/linux/include/linux/mutex.h 47struct mutex { 48 /* 1: unlocked, 0: locked, negative: locked, possible waiters */ 49 atomic_t count; 50 spinlock_t转载 2010-03-22 16:02:00 · 9299 阅读 · 0 评论 -
Linux x86 spinlock实现之分析
1. TAS lock (test-and-set)这是最简单的spinlock,CPU会在硬件上提供一些指令来帮助OS实现spinlock,比如x86就有xchg, LOCK指令前缀等指令。。。test_and_set()可以利用这些指令对某个memory地址,来原子地完成:写入true到这个地址,同时返回这个地址储存的旧的值。void spin_lock(lock){ while (te转载 2010-03-22 17:01:00 · 5722 阅读 · 0 评论 -
内核同步机制-信号量/互斥锁/读-写信号量 sema ,mutex ,rwsem
目录[隐藏 ] 1 信号量 1.1 通用信号量 1.2 互斥锁 1.3 读/写信号量 if (window.showTocToggle) { var tocShowText = "显示"; var tocHideText = "隐藏"; showTocToggle(); } 信号量 通用信号量 用户类进程之间使用信号量(semaphore)进行同步,内核线程之间也使用了信号量。信号量与自转载 2010-03-22 15:04:00 · 2186 阅读 · 0 评论 -
(转)Linux内核的同步机制
Linux内核的同步机制(一):原子操作 原子操作:UP和SMP的异同原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断。在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是"原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了test_and_set、test_and_clear等指令用于临界资源互斥的原因。但是,在对称多转载 2010-03-23 17:09:00 · 1229 阅读 · 0 评论