gpt4 book ai didi

c++ - 对于我的关键代码部分,如何在短时间内关闭操作系统中切换线程的中断?

转载 作者:太空狗 更新时间:2023-10-29 19:48:46 36 4
gpt4 key购买 nike

众所周知,如果执行的线程多于处理器内核的数量,线程会在特定的时隙(quanta)之间切换。这对于 Win/*nix 来说是正确的。但是,线程切换实现了什么机制,它是在特定时间段启动的硬件中断,不是吗?

这个中断(IRQ)是多少号,我可以更改/设置这个时间(时隙)的值,以及如何关闭这个中断,短时间,因为我的关键代码的性能(实时)部分(通过使用 WINAPI/Posix)?

最佳答案

您无法关闭操作系统的定时器中断;他们是在操作系统本身内进行管理,并且是其正确的必要条件运作。在大多数 Unix 下,您可以使用 sched_setscheduler和/或 pthread_setscheduler 将调度策略设置为SCHED_FIFO,和sched_setparam/pthread_setschedprio来设置优先权;然后你将保证不被打扰除非它具有更高的优先级。

至少在 Linux 下(以及在我工作过的其他 Unix 下),也可以将页面锁定到实际内存中,所以你不能在它们上出现页面错误(这会导致您等待磁盘访问)。 Linux 中的函数是mlock

请注意,您可能需要特殊权限才能更改全局调度程序或使用 mlock

关于c++ - 对于我的关键代码部分,如何在短时间内关闭操作系统中切换线程的中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508481/

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