在系统中没有其他负载阻塞系统调用(Linux内核)

时间:2010-04-25 16:10:08

标签: linux-kernel scheduling

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

1 个答案:

答案 0 :(得分:0)

你问正在运行的应用程序是否会睡眠?

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