You are right on the priority list, but what (I think) is what this book is trying to say:
- When a (user) process makes a system call, the kernel starts on its behalf.
- If the system call can be completed (the kernel control path is not started in the roadblock), it usually returns directly to the calling process - I think
getpid() a function call. - On the other hand, if the system call cannot be completed (for example, since the disk system must read a block into the kernel buffer pool before its data can be returned to the calling process), then the scheduler is used to select a new process to start - crowding out the user process (thread of control kernel executed on behalf of).
- At one time, the original system call will continue, and the original (kernel thread control process, executed on behalf of) will continue and, ultimately, be completed, returning control to user space; the process runs in user space, and not in the kernel.
So, βNoβ: itβs not that βthe kernel path can be interrupted from the user space process making the system callβ.
The kernel path may be interrupted during the execution of a system call on behalf of the user space process, because: an interrupt occurs or the kernel path must wait until the resource becomes available, or ...
source share