繁体   English   中英

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

[英]User Level Interrupt Handler for Timer

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

假设现在是执行虚拟机的范围。

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

任何帮助或指导将不胜感激。 谢谢

我建议您恰好使用1个中断,并将您的计时器安排在队列中(几次,例如<50)或堆中,这是一棵很快的树,随时可以访问最小的元素,也就是说,具有下一个要处理的Timer的元素。

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

实际上,普通程序也使用中断(系统级),例如,当他们想使用系统调用时。 在用户级别,您可以使用swapcontext / makecontext模拟系统级别的交换上下文,但是当您想要获取时间(以计算时间差)时,必须使用syscall。因此,最好直接使用系统计时器,不错的主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM