读/写阻塞的系统调用会将进程置于TASK_INTERRUPTIBLE状态。
当进程执行读/写阻塞的系统调用时,如果所需的数据还未准备好或者写入操作无法立即完成,进程将被置于TASK_INTERRUPTIBLE状态。在这种状态下,进程会暂停执行,等待数据准备好或者写入操作完成。进程处于TASK_INTERRUPTIBLE状态时,可以通过信号唤醒,例如当数据准备好或者写入操作完成时,内核会发送一个信号给进程,使其从阻塞状态中唤醒。
相比之下,TASK_UNINTERRUPTIBLE状态与TASK_INTERRUPTIBLE状态类似,但不会对信号做出响应。进程在TASK_UNINTERRUPTIBLE状态下无法被信号唤醒,只能等待所需的数据准备好或者写入操作完成后才能继续执行。
需要注意的是,进程在执行读/写阻塞的系统调用时,会根据具体情况选择置于TASK_INTERRUPTIBLE状态还是TASK_UNINTERRUPTIBLE状态。这取决于系统调用的实现和内核的策略。
领取专属 10元无门槛券
手把手带您无忧上云