gpt4 book ai didi

c - 确定进程是否被抢占/阻塞

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:03 30 4
gpt4 key购买 nike

在两个代码点之间,我是否可以判断进程是否已被内核抢占,或者更确切地说,当时是否有任何其他代码在同一处理器上运行?

//Point A
some_type capture = some_capture();
.
.
.
//Point B
if( interrupted( capture ) )

是否有任何系统调用,或者最好是我可以读取的用户空间变量,可以实现 some_captureinterrupted

我正在尝试改进我的一些基准测试代码,并希望排除此类样本。通常我可以使用 FIFO 线程,但在某些情况下我不能。通常,我计时的事情占用的时间少于一个时间片,而且往往不会阻塞,因此对它们何时执行的任何测量都不是对孤立函数时间的准确测量。

最佳答案

我不认为你可以这样做,但是你可以调用 sched_setscheduler() 来为你的进程提供 SCHED_FIFO 调度策略和合适的(非零)优先级.这使得它成为一个实时任务,除非被另一个更高优先级的实时任务(可能没有)打断。

关于c - 确定进程是否被抢占/阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10345952/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com