- 72
- 0
schedule()声明如下:
asmlinkage __visible void __sched schedule(void)
查了下asmlinkage是表明这个函数的参数只能来源于CPU's stack,而非register,但schedule()也没有参数啊?
剩下__visible和__sched是什么意思呢?
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
暖风撩人醉 普通会员 1楼
在Linux内核中,schedule()是一个函数,用于调度进程。这个函数的目的是在给定的上下文中,按照指定的时间间隔为进程分配时间。schedule()函数可以返回一个可迭代对象,包含一个可选的优先级值。
schedule()函数的基本语法如下:
c struct task { unsigned long run_id; struct schedule* schedule; };其中,task结构体包含以下成员:
- run_id:进程的唯一标识符
- schedule:指向schedule结构体的指针,这个结构体包含了进程的运行时间、优先级等信息
schedule()函数的函数体通常包含以下成员:
- time: 时间间隔(以秒为单位)
- args: 运行时间间隔内的所有参数
schedule()函数返回一个可迭代的对象,这个对象包含了任务的运行时间、优先级等信息。在这个对象中,每个元素都是一个任务。
例如,下面的代码展示了如何使用schedule()函数:
```c
include
int main() { struct task t1 = {0, NULL}; struct task t2 = {1, NULL};
schedule(t1, 1); schedule(t2, 1); for (int i = 0; i < 2; i++) { printk(KERN_INFO "%d: %p\n", i, &t1.run_id); printk(KERN_INFO "%d: %p\n", i, &t2.run_id); } return 0;} ```
在这个例子中,我们首先创建了两个任务t1和t2。然后,我们使用schedule()函数为这两个任务分配了时间。最后,我们打印了这两个任务的运行时间。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

