【发布时间】:2014-01-02 20:53:45
【问题描述】:
我的任务是为 C 语言中的 linux 调度程序设计一个基准,更准确地说是“确定底层架构如何处理上下文切换,而不查看实现的细节。”
根据我在 linux 杂志上找到的一篇文章,我设计了一个基准来衡量生成进程 (fork/exec) 和创建线程 (fork) 所需的时间。
现在我想用指令 sched_yield 测试切换进程和线程所需的时间。我想创建多个线程/进程并让它们都调用 sched_yield。调用 sched_yield 的第一个线程/进程将测量时间并将其除以进程数(我假设所有其他进程在第一个进程恢复执行之前调用 sched_yield)以获得每个上下文切换时间的近似值。
- 这个基准有意义吗?
- 研究具有不同线程数的每个上下文切换的时间是否有意义,或者它在理论上是恒定的?
- 是否有更好的方法来设计基准?
【问题讨论】:
标签: linux benchmarking scheduler context-switch