linux内核-系统调用nanosleep()与pause()_linux nanosleep_guoguangwu的博客-CSDN博客

网站介绍:处于种种原因,运行中的进程常常需要主动进入睡眠状态,并发起一次调度让出CPU。这一定要通过系统调用,或者在系统调用内核才能做到。注意,前面的博客中讲到的系统调用sched_yield与此有所不同,那只是让内核进行一次调度,而当前进程继续保持可运行状态。而这里所说的是,当前进程进入睡眠,也就是将进程的状态变成TASK_INTERRUPTIBLE或TASK_UNINTERRUPTIBLE,并从可执行队列中脱钩,调度的结果一定是其它进程得以运行。并且,进程一旦进入睡眠状态,就需要经过唤醒才能将状态恢复成TASK__linux nanosleep