Questions regarding Synchronisation in Windows (Spinlocks)
- From: smawsk <sk.smawsk@xxxxxxxxx>
- Date: Mon, 10 Mar 2008 02:41:43 -0700 (PDT)
Hi,
I have some questions regarding the implementation of synchronisatio
techniques in Windows.
I would be greatful if some one can answer these.
1) How are Spinlocks implemented in Windows for a UNIPROCESSOR
machine? Do they involve busy waiting?
Since Spinlocks execute at DPC/Dispatch level, there is no way for the
thread to move to wait state.
Consider a scenario where a thread is trying to acquire a spin lock.
But an interrupt occurs which has an IRQL > DPC Dispatch level OR the
IRQL of the thread that acquired the spin lock. For the new interrupt
to be serviced, dispatcher has to be invoked to switch to the new
thread servicing the interrupt.
What happens in this scenario?
2) What is the difference between an executive object and a kernel
object? Can some one give an example for each?
I reckon Semaphore, Event, Mutex etc are executive objects. So what
kernel objects are these executive objects built on?
Which category do "Dispatcher" objects belong to?
3) What is th edifference between a Mutex and Fast Mutex/Guarded
Mutex?
Thanks in advance.
Warm Regards.
.
- Follow-Ups:
- Re: Questions regarding Synchronisation in Windows (Spinlocks)
- From: Alexander Grigoriev
- Re: Questions regarding Synchronisation in Windows (Spinlocks)
- Prev by Date: Re: dump NTFS volume in Vista
- Next by Date: Re: Stack overflow
- Previous by thread: Re: Intercepting and Blocking Keystrokes
- Next by thread: Re: Questions regarding Synchronisation in Windows (Spinlocks)
- Index(es):