Linux kernel 在系统中没有其他负载的情况下阻止系统调用(linux内核)

Linux kernel 在系统中没有其他负载的情况下阻止系统调用(linux内核),linux-kernel,scheduling,Linux Kernel,Scheduling,如果系统中只有1个正在运行的应用程序(默认为100个休眠进程),并且它执行阻塞系统调用(我对阻塞recv或阻塞读取感兴趣)。linux内核会从任务*当前指针中删除此应用程序吗?您询问的是运行中的应用程序会睡眠吗 如果有数据满足读取,那么它将不会休眠——内核将把排队的数据复制到缓冲区中,并从系统调用返回。如果没有等待的数据,则进程将休眠。这不取决于系统上其他进程的状态。如果所有进程都处于休眠状态,内核将执行一些有用的操作,例如将CPU置于低功耗状态,直到出现中断,这可能意味着进程等待的数据现在可能

如果系统中只有1个正在运行的应用程序(默认为100个休眠进程),并且它执行阻塞系统调用(我对阻塞recv或阻塞读取感兴趣)。linux内核会从
任务*当前
指针中删除此应用程序吗?

您询问的是运行中的应用程序会睡眠吗


如果有数据满足读取,那么它将不会休眠——内核将把排队的数据复制到缓冲区中,并从系统调用返回。如果没有等待的数据,则进程将休眠。这不取决于系统上其他进程的状态。如果所有进程都处于休眠状态,内核将执行一些有用的操作,例如将CPU置于低功耗状态,直到出现中断,这可能意味着进程等待的数据现在可能可用。

没有可读取的数据。任务将休眠。我问,内核
current
指针(内核堆栈)会指向这个任务吗?看起来
current
会指向swapper(pid 0)任务吗