> -----Original Message----- > From: kernelnewbies-bounce@xxxxxxxxxxxx [mailto:kernelnewbies- > bounce@xxxxxxxxxxxx] On Behalf Of Smital Desai > Sent: Wednesday, September 15, 2010 11:58 AM > To: Kernel Newbies > Subject: spin locks in uniprocessor system > > Hi everyone, > > It's an extract in LDD3 , regarding spink lock. I have put my query > in brackets. > > Spinlocks are, by their nature, intended for use on multiprocessor > systems, although a uniprocessor workstation running a preemptive > kernel behaves like SMP, as far as concurrency is concerned. > ( I need to understand , how this is true with an example preferably > ) On uniprocessor system even if you have a task scheduled, the interrupt can still come and should be handled by that processor. So let's say you get a timer interrupt - the schedule() will be called on return and if there is any higher priority task waiting, your previous task can get scheduled out. This is referred to as pseudo concurrency (Please refer Robert Love). > > If a nonpreemptive uniprocessor system ever went into a spin on a > lock, it would spin forever; no other thread would ever be able to > obtain the CPU to release the lock. For this reason, spinlock > operations on uniprocessor systems without pre-emption enabled are > optimized to do nothing, with the exception of the ones that change > the IRQ masking status. > ( I don't get the meaning of last sentence "with the exception of > ......" Please can somebody explain ) > I am not sure about this statement, though. Would appreciate if someone can provide some pointers. > > Thanks and Regards > Smital Desai > -- Thanks, Nilesh -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ