In Operating System Concepts 6th ed, chapter 20:
"Kernel code can thus assume that it will never be preempted by another process 
and that no special care must be
taken to protect critical sections. The only requirement is that critical 
sections do not contain references to user memory
or waits for I/O completions"

Why us that the process cannot wait for I/O to complete in critical sections?
My another question is: While developing kernel modules (for kernels before 
2.6), do we need to keep concurrency in mind?
Because the modules run as part of the kernel and no two processes can run in 
the kernel at the same time? Or my question is wrong since they CAN run in the 
kernel at the same time (like when one process waits for I/O completion and 
another is scheduled to run which then makes a system call)?


Please excuse me for the multiple nested question since I didn't quite know how 
to put it.
_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to