码迷,mamicode.com
首页 > 其他好文 > 详细

sleep 与 sched_yield() 的区别

时间:2020-04-14 00:32:30      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:int   href   blog   article   进程   err   调度   inter   状态   

sleep() 将进程放入等待队列,休眠结束后,进入运行队列获取cpu分配,sched_yield()将进程分配到过期队列,所有进程都运行完成后才会运行

正文

进程调度队列

操作系统的进程调度有三大队列:
三个队列:运行队列,过期队列,等待队列

1.等待队列:休眠(或者阻塞)的进程放在等待队列里面,进程的状态为TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE

2.运行队列:这些进程还没有用完时间片,因此允许它们运行。

3.过期队列:时间片运行完的进程放在这个队列,这里面的进程不能被调度运行,除非所有的进程都运行完了自己的时间片。

sleep 与 sched_yield的区别

sleep将进程放入等待队列,休眠结束后,进入运行队列去争取取cpu分配,sched_yield()将进程分配到过期队列,相当于已经结束了进入运行队列的过程,只有等所有进程都运行完成后才会运行

ref

https://blog.csdn.net/xiaowenmu1/article/details/90552391

sleep 与 sched_yield() 的区别

标签:int   href   blog   article   进程   err   调度   inter   状态   

原文地址:https://www.cnblogs.com/ishen/p/12695114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!