peter said:
When a dvd is inserted into a DVD drive, all apps stop responding to the
user (although the mouse still moves) for 10 seconds or so. This happens on
all computers running winXP, even on multi-core processor machines.
Is this some sort of bug?
There is an additional experiment you can try, just for fun.
Open up the Time/Date control panel, the one where they have the clock
with the second hand on it. Insert the DVD. Sure, the second hand will
stop, based on your description. But, does the system "lose" the 10
seconds, such that your time keeping is affected ? (I.e. The computer
and the wall clock are now off by 10 seconds.) Clock tick interrupts
have high priority, and if they are not being serviced, then chances
are you are stuck in the I/O driver for the DVD drive. Even on
a multi-core machine, there are limits to what you can do, if stuck
in the kernel. If the kernel is blocked, it won't take long before
all other processes will be blocked as well.
This is not normally how drivers are designed. In the distant past,
it would have been normal. But modern operating systems, intend
any expensive operations to run at non-interrupt level. If a
driver is waiting for a peripheral to respond, the driver should
exit, and either a timer or an interrupt can trigger the driver to
run at a more appropriate time, to check whether the DVD is ready
or not. By having the driver exit, it means the system can
continue to respond, tasks can be scheduled for the multicore
processor and so on.
I expect there is a mismatch of expectations here. Either the driver
writer doesn't know how DVDs work, or the DVD hardware designer doesn't
know he is supposed to respond instantly.
Just out of curiosity, is the driver the Microsoft default one,
or is the driver provided with the chipset drivers ? On my computer
here, with an Intel chipset, the Microsoft driver can be used. I
don't have to use an Intel provided driver, unless I'm doing RAID
or something. Maybe the response will differ, depending on which
driver option is being used ?
My best guess,
Paul