c - 定时器的用户级中断处理程序

标签 c linux timer interrupt

我必须为一个支持一些基本功能的项目实现一个简单的操作系统和一个虚拟机。这个os会像Linux中的普通程序一样运行在虚拟机和虚拟机上。

假设现在是虚拟机执行的时间片。

  1. 如何接收一些额外的计时器信号,以便将虚拟机执行时间划分为更小的时间片?
  2. 我的 CPU 中有多少个定时器可用? (这更像是一个一般性问题)
  3. 我可以使用用户控制杆中断处理程序处理虚拟机内部的定时器信号吗?

如有任何帮助或指导,我们将不胜感激。 谢谢

最佳答案

我建议你只使用 1 个中断,并在队列中(几次,例如 <50)或堆中组织你的计时器,这是一个非常快速的树,它可以让你随时访问最小元素,即下一个要处理的Timer的元素。

因此,您有一个中断、一个处理程序和许多具有相关函数的定时器,这些函数将由该单个处理程序调用。

关于c - 定时器的用户级中断处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708851/

相关文章:

c++ - Windows 上的进程资源限制

javascript - Node.js 类递归发射

c++ - 如何从 C++ 程序执行 C# exe

C Windows 添加文件的默认搜索路径(fopen...)

c - 我的C与MQ接收消息返回代码2037

linux - apache mod_rewrite 不适用于 .htaccess 文件

php - 自定义 cron 作业未安排 Magento2

swift - RxSwift 发出带有时间间隔的起始值并修改它

timer - 如何用定时器在AVR(ATmega8)中设置微秒延迟?

c - execvp() 不接受用户输入