Chinaunix
标题:
进程在用户态怎样主动放弃CPU?
[打印本页]
作者:
巨人史玉柱
时间:
2010-12-21 19:33
标题:
进程在用户态怎样主动放弃CPU?
1,我们知道进程在内核态可以通过调用schedule()函数来主动放弃cpu,那么在用户态怎样主动放弃cpu呢?调用哪个函数?
2,如果一个进程运行在用户态,这时它想睡眠,应该调用哪个函数呢?
以上多谢!
作者:
crspo
时间:
2010-12-21 19:36
1,我们知道进程在内核态可以通过调用schedule()函数来主动放弃cpu,那么在用户态怎样主动放弃cpu呢?调用哪 ...
巨人史玉柱 发表于 2010-12-21 19:33
1 sched_yield()
2 什么原因要睡眠?
作者:
巨人史玉柱
时间:
2010-12-21 19:48
回复
2#
crspo
谢谢老大回帖啊!
1,sched_yield 是库函数吗?它最终调用的是内核里面的哪个系统调用函数呢?
2,如果想睡眠指定的时间该调用哪个函数呢?如果想睡眠在指定的等待队列上,该调用哪个函数呢? 我指的是用户态哦。
作者:
liying_gg
时间:
2010-12-21 19:52
sleep不就完了
作者:
巨人史玉柱
时间:
2010-12-21 22:29
回复
4#
liying_gg
谢谢兄弟的回答,我还想问一下,sleep会导致进程的切换吗?sleep是一个库函数吧,那么她最终会调用内核中的哪个系统调用函数呢? 多谢!
作者:
amarant
时间:
2010-12-22 08:15
yield是系统调用
作者:
spongeliu
时间:
2010-12-22 14:29
调用Nanosleep
作者:
gerryok
时间:
2010-12-22 14:57
yield是系统调用
作者:
巨人史玉柱
时间:
2010-12-22 16:22
回复
8#
gerryok
谢谢兄弟
作者:
巨人史玉柱
时间:
2010-12-22 16:23
回复
7#
spongeliu
谢谢兄弟!
作者:
巨人史玉柱
时间:
2010-12-22 16:24
回复
6#
amarant
谢谢兄弟!
作者:
liying_gg
时间:
2010-12-22 20:25
回复
5#
巨人史玉柱
sleep是会进程切换的,这个你可以查看一下程序状态,不sleep的话ps aux看进程是R+,sleep了的话进程是S+
作者:
hackage
时间:
2010-12-23 18:25
glibc中是__sched_yield()
然后weak_alias(__sched_yield, sched_yield)
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2