How does a user process perform system call without going through context switch?

When a user process performs a system call, a kernel process gets invoked' - not really, kernel code gets invoked. Any system call will inevitably result in a protection context change - a ring-cycle. How deep this gets depends on the call.

If the call reaches ring 0, the kernel code there has access to all user and kernel threads, so the kernel code there cannot, in general, be described as a 'process' - something that has a memory-management/security context to provide protection. Typically, a ring-cycle to/from ring 0 takes 2000+ cpu-cycles, (except in German operas, where it takes three days). This overhead is absolutely required whether or not the system-call results in a thread context switch and/or process-context switch.

Up vote 0 down vote favorite 1 share g+ share fb share tw.

When a user process performs a system call, a kernel process gets invoked. Now how does this NOT result in a context switch? Since the kernel process is different from a user process .

Or Am I wrong in saying that a kernel routine (invoked by system call) and user processes belong to the same process? Operating-system context-switch kernel-mode context-switching link|improve this question asked Feb 1 at 23:05Sharat Chandra593315 93% accept rate.

When a user process performs a system call, a kernel process gets invoked' - not really, kernel code gets invoked. Any system call will inevitably result in a protection context change - a ring-cycle. How deep this gets depends on the call.

If the call reaches ring 0, the kernel code there has access to all user and kernel threads, so the kernel code there cannot, in general, be described as a 'process' - something that has a memory-management/security context to provide protection. Typically, a ring-cycle to/from ring 0 takes 2000+ cpu-cycles, (except in German operas, where it takes three days). This overhead is absolutely required whether or not the system-call results in a thread context switch and/or process-context switch.

In those cases where the system call results in changing the set of running threads, there will be the extra overhead of a thread-context switch, especially if the change requires preemption of a thread that is running on another processor. If any newly-running thread belongs to a different process than the preempted thread, there is the yet heavier overhead of a process-context switch.

– Sharat Chandra Feb 2 at 1:58 1 The details of OS linking are OS-dependent. Typically, a build-time library is linked in that provides the OS access at runtime, eg. By dynamic linking with a DLL. So, the code to access the kernel becomes part of the binary executable file and the actual kernel code is shared by all processes.

– Martin James Feb 2 at 10:37 cool.. This is what I needed to know! :) Thanks :) – Sharat Chandra Feb 2 at 23:07.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions