Re: Questions about preemption and concurrency

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 27, 2011 at 2:44 PM, Naman shekhar Mishra
<namanshekharmishra2@xxxxxxxx> wrote:
> 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"

This is available only if the kernel is non-preemptive. If the kernel is
preemptive than a process executing in kernel, can be preempted
by another process.


> Why us that the process cannot wait for I/O to complete in critical
> sections?

Because deadlocks may sneak in ([1]).

> My another question is: While developing kernel modules (for kernels before
> 2.6), do we need to keep concurrency in mind?

I guess yes. Even if the kernel is non-preemptive, you may want to consider SMP.

> 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.

HTH,
Daniel.

[1] https://lwn.net/Articles/274695/

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux