我正在研究中断。所以大多数架构都是中断驱动的,如果一切都是中断驱动的,那么处理器处理所有这些的速度有多快。例如,在按下键盘键的同时,它会产生一个中断,要求内核为新字符寻找缓冲区,在这种情况下,处理器可以提供多快的速度,同时在放置中断时,处理器需要切换到内核空间,并且在上下文切换方面成本很高。所以我假设,即使在所有这些之后,如果处理器具有良好的性能,那么我只能假设两个击键之间的时间在计算机速度方面有很多时间?一个平均值,一分钟内发生了多少次上下文切换?我想这会让我对我正在学习的东西有所了解并获得真实的生活感受....谢谢......
答案 0 :(得分:2)
多快取决于多种事情:
这是一般性问题的一般答案。
编辑:我忘了再提一件事了。存在一些奇怪的CPU,其中某些指令是可重复的(考虑到x86的rep movsb
)并且在重复指令完全完成之前中断无法开始服务,这可能需要相当于执行1000或甚至更简单的个体的时间说明。因此,尽管启用了中断,但可能存在一些不让ISR开始运行的CPU怪癖。其中一个CPU是TI的TMS320C54xx。有了它,你必须小心FIR滤波器代码。如果过滤器很长并且实现为重复的MAC指令,则会在中断服务中引入延迟。
答案 1 :(得分:0)
在普通的Linux系统中,有一个很好的值,而且值较低 具有典型的800ms量子值,较高的值具有5ms 量子。
Linux系统使用启发式方法来确定流程是否是交互式的。 你最好阅读这篇文章:
https://www.cs.columbia.edu/~smb/classes/s06-4118/l13.pdf
关于调度程序有几种数据结构,例如linux keep 跟踪交互进程的数量等待IO绑定等。
在windows中,不仅仅是抢占式多任务,应用程序支持 内核通过GetMessage()API调用[在Windows GUI程序的情况下] .Where 当您调用GetMessage()时,该进程将在有消息时安排回来 等待在其系统队列中处理。