请问内核对象:Event(事件),Mutex(互斥量), Semaphore(信号灯)等是否不能用在多CPU场合,只能用spinlock来解决问题?
回复(22) 2008-01-12 16:22 来自版块 - 内核编程
表情
ghost2002910linux里面有spin_lock和rw_lock的实现,ReactOS也有,看下就能够理解多核同步的意义。关于high IRQL和low IRQL同步,《Windows Internals》有专门介绍。high IRQL的同步只考虑CPU,因为线程已经不调度了,low IRQL...(2008-12-24 13:05)
ddkitttANY LEVEL SPIN_LOCK也有人实现了~哈哈 how(2008-12-23 12:44)
Leonsoftzzzevazzz MM说的有道理,Event Mutex Semaphone都可以用在多核下。(2008-02-09 21:40)
killvxkANY LEVEL SPIN_LOCK也有人实现了~哈哈(2008-01-31 16:17)
fanzi引用第7楼WQXNETQIQI于2008-01-12 22:59发表的 : event只能用来做自己的线程间的同步,只有执行体资源、PUSHLOCK或SPINLOCK才可以用做系统所有线程间的数据同步! ....... 比如用IoCreateNotificationEvent...(2008-01-31 16:13)
ks12345引用第16楼AlexSho于2008-01-16 12:55发表的 : Event也分Synchronous和Notification的 两者的区别是虾米呢? Synchronous 的 Event 是不是只满足多个 wait 线程中的一个,其他继续 wait 啊?(2008-01-31 12:13)
AlexSho引用第14楼GoodOnline于2008-01-15 21:51发表的 : SpinLock:就像n多人早上抢一个厕所,谁能先进去把门锁上就是谁的。 Event:当侧所里的人出来后,大家可以抢了。 Event也分Synchronous和Notification的(2008-01-16 12:55)
zhangleierli引用第14楼GoodOnline于2008-01-15 21:51发表的 : SpinLock:就像n多人早上抢一个厕所,谁能先进去把门锁上就是谁的。 Event:当侧所里的人出来后,大家可以抢了。 很形象,哈哈(2008-01-16 09:55)
GoodOnlineSpinLock:就像n多人早上抢一个厕所,谁能先进去把门锁上就是谁的。 Event:当侧所里的人出来后,大家可以抢了。(2008-01-15 21:51)
zzzevazzz引用第10楼bjab于2008-01-14 11:38发表的 : 那么是说像mutex这样的内核对象也能用于多CPU多线程之间的同步?还有,执行体资源怎么用? 当然可以,DDK里的源代码没有分单CPU和多CPU两个版本吧,所以Event就是Event。 执行体资源就是ERE...(2008-01-14 14:44)

返回顶部