我正在阅读 Robert Love 的“Linux Kernel Development”,他写道系统调用在进程上下文中执行并且能够休眠。当前指针将指向当前任务,即发出系统调用的进程。
我不明白的是如果系统调用可以休眠,执行如何返回到系统调用?如果它在进程上下文中运行,它可以被唤醒并重新调度,但用户进程不能在内核空间中执行。内核是否在调用时创建一个任务/进程来执行系统调用?我知道来自用户空间的系统调用会导致陷阱切换到内核模式并执行相应的系统调用,但在阅读本文之前我假设系统调用无法休眠并被重新安排,但我理解为什么它们应该是能够。