我的任务是为C中的linux调度器设计一个基准,更准确地说,是"确定底层架构如何处理上下文切换,而不考虑实现的细节。">
基于我在linux期刊上发现的一篇文章,我设计了一个基准测试,用于衡量生成进程(fork/exec)和创建线程(fork)所需的时间。
现在,我想用sched_feld指令来测试切换进程和线程所需的时间。我想创建多个线程/进程,并让它们都调用sched_feld。调用sched_yield的第一个线程/进程将测量时间并将其除以进程数(我假设在第一个进程恢复执行之前,所有其他进程都调用了sched_yiel),以获得每个上下文切换的时间近似值。
- 这个基准有意义吗
- 研究不同线程数的每个上下文切换的时间有意义吗?还是理论上是恒定的
- 有没有更好的方法来设计基准
这里有一个很好的起点:https://github.com/tsuna/contextswitch