CN103197971A - Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 - Google Patents
Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 Download PDFInfo
- Publication number
- CN103197971A CN103197971A CN2013101409073A CN201310140907A CN103197971A CN 103197971 A CN103197971 A CN 103197971A CN 2013101409073 A CN2013101409073 A CN 2013101409073A CN 201310140907 A CN201310140907 A CN 201310140907A CN 103197971 A CN103197971 A CN 103197971A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- timer
- cpu
- pentium
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 34
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 claims abstract description 21
- 239000013598 vector Substances 0.000 claims description 17
- 239000011800 void material Substances 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 abstract description 12
- 238000013461 design Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Abstract
Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,涉及Windows操作系统的定时器软件开发技术领域。本发明的目的是设计一种高精度、同时CPU占用的资源又很少的定时器,以解决现在Windows多任务分时工作时很难达到高精度低CPU资源占用率的技术问题。利用Pentium IV架构PC机的芯片组内的8254芯片,通过编写8254中断定时器驱动程序、APIC驱动程序,在Windows下实现一个基于中断的硬时钟定时器;定义中断处理函数,改变中断描述符表中的中断门结构,并将自定义的中断处理函数的指针赋给门结构的值,实现对用户自定义中断处理函数的调用,实现了可应用的定时器;经测试,定时精度可达到亚毫米级,在定时为100us时,定时偏移小于7us,且CPU占用率极低,满足大多数windows系统定时应用要求。
Description
技术领域
本发明涉及利用8254中断定时器在Windows操作系统Pentium IV架构下实现高精度低CPU占用率的定时器,涉及Windows操作系统的定时器软件开发技术领域。
背景技术
Windows操作系统提供给用户很多API来实现定时器功能,从原理上大致分为如下三种定时器:WM_TIMER消息定时器,多媒体定时器,Windows时间戳定时器。下面分别从实现方法和性能上介绍这三种定时器。
(1)WM_TIMER定时器
WM_TIMER定时器是Windows最简单的定时器,它得用SetTimer()函数设定定时器的间隔时间,然后定时为指定的线程发送WM_TIMER消息,WM_TIMER消息加入消息队列后等待处理。KillTimer()函数具有销毁定时器的功能。这种定时器的优点是使用简单,资源占用率小。但是WM_TIMER消息被处理的优先级是很低的。如果窗口的消息队列中不停的有其它消息发送过来,WM_TIMER消息就一直被推迟投递,也就是说,当调用SetTimer时所传入的uElapse参数是得不到保障的,因此WM_TIMER定时器的精度很低,平均值大约在15ms左右,这使得这种定时器非常不适合应用在高精度定时任务中。
(2)多媒体定时器
Windows下有一个多媒体定时器,用法为一组API函数的调用,它们是:
MMRESULT timeBeginPeriod(UINT uPeriod);
MMRESULT timeSetEvent(UINT uDelay,UINT uResolution,LPTIMECALLBACKlpTimeProc,DWORD dwUser,UINT fuEvent);
void CALLBACK TimeProc(UINT uID,UINT uMsg,DWORD dwUser,DWORD dw1,DWORD dw2);
MMRESULT timeKillEvent(UINT uTimerID);
MMRESULT timeEndPeriod(UINT uPeriod);
其中timeBeginPeriod是用来设置最高定时精度的,最高精度为1ms,如果要产生间 隔为1ms的中断,必须调用timeBeginPeriod(1);当定时器用完之后就要用timeEndPeriod(1);来恢复默认的精度。具体使用方法为在timeBeginPeriod(1)调用之后用timeSetEvent()注册一个回调函数,即一个中断处理过程。它还可以向回调函数传递一个参数,通常可以传送一个窗口句柄之类的东西。而回调函数TimeProc则从dwwUser参数中取出传递的参数使用。在Windows下,可以用这种方法进行1ms精度的定时数据采集,数据发送,但要保证1ms能完成所有的操作和运算。经过实践证明,用它来实现控制的精度是足够的。但是由于多媒体定时器是一个独立的线程在监视系统时钟,所以在多线程下,由于CPU时间片的切换,多媒体定时器也不能完成1ms的定时。
(3)时间戳定时器
时间戳定时器的原理是用一个独立的线程,时刻监视CPU时间戳计数器的增量变化,当增量变化大于设定的时间间隔,则跳入处理过程。Windows提供两个有关CPU时间戳的API函数:QueryPerformanceFrequency()获得当前CPU计数器频率和QueryPerformanceCounter()获得当前CPU计数器计数值。时间戳定时器内要有一个循环,作用就是时刻监视CPU计数器的变化,因此时间戳定时器占用的CPU资源非常多。从理论上讲时间戳定时器可以达到很短时间(甚至ns单位)的定时,前提是定时器的处理过程时间要小于定时器间隔时间。但是在Windows操作系统多任务机制下,如果其它线程与其共用CPU资源,那么在其它线程占用CPU时间片的时候,时间戳定时器停止监视CPU计数器计数增量变化,这个时候时间戳定时器无效,这造成时间戳定时器无法按预计的定时时间间隔工作,从而影响了时间戳定时器的工作效果。
Windows所提供的定时器基本上采用的是消息机制,多线程,轮询监视这几种方法,在Windows多任务分时工作时很难达到高精度低CPU资源占用率。
发明内容
本发明的目的是设计一种高精度、同时CPU占用的资源又很少的定时器,以解决现在Windows多任务分时工作时很难达到高精度低CPU资源占用率的技术问题。
本发明为解决上述技术问题采取的技术方案是:
一种Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,所述方法的具体实现过程为:
步骤一、利用Pentium IV架构PC机芯片组内的8254芯片,通过编写8254中断定时器的驱动程序,对8254内部寄存器进行配置,使能了8254芯片的内部计数功能;
步骤二、通过编写的可编程中断控制器APIC驱动程序,在可编程中断控制器APIC中为8254PIT设定对应的中断向量;
步骤三、修改Windows IDT(中断描述表),定义中断处理函数,改变中断描述符表中的中断门结构,并将自定义的中断处理函数的指针赋给门结构的值,对用户自定义中断处理函数的调用,实现了一个基于中断的硬时钟定时器。
在步骤二中,所述的可编程中断控制器APIC由本地高级中断控制器(LAPIC)和I/O高级中断控制器(IOAPIC)两部分组成,本地高级中断控制器位于CPU中,I/O高级中断控制器位于南桥芯片上,用于连接各个产生中断的设备。
可编程中断控制器APIC的工作过程为:收到来自IOAPIC的中断消息后,LAPIC及对应CPU通过中断请求寄存器IRR、当前中断服务寄存器ISR、任务优先级寄存器TPR、处理器优先级寄存器PPR以及中断结束寄存器EOI处理该中断。
LAPIC的ISR、IRR均为256bit寄存器,对应Pentium IV平台上的256个中断向量;IRR中相应位置1,代表LAPIC已接收中断,但还未交CPU处理;ISR中相应位置1,代表CPU已开始处理中断,但还未完成;当CPU正在处理某中断时,同类型中断如果发生,相应的IRR bit会再次置1;如果某中断被挂起在IRR中,同类型的中断发生,则ISR中相应的bit被置1;在APIC系统中,同一类型中断最多可以被计数两次;对于Pentium IV系列CPU,中断消息被LAPIC拒绝。
LAPIC需要软件写EOI来通知中断处理的完成,LAPIC中的EOI是一个32bit寄存器,对EOI写0表示中断处理完成。
所述定时器的中断处理过程为:
中断是通过中断描述符表(IDT)处理的,IOAPIC上有24个中断号引脚,每个中断号对应的设备发出中断后,IOAPIC都会向CPU发送一个中断消息,消息内部包括一个重要的值,就是中断向量,指定中断号的中断向量由RTE表中的0-7位确定,中断向量对应的中断门信息在IDT表中存储;改变中断描述符表中的中断门结构,将用户自定义中断处理函数的指针赋给门结构的值,在8254的每一个中断到来时,CPU便会执行用户自定义的中断服务程序,实现了基于8254PIT的高精度定时器。
在步骤一中,8254中断定时器驱动程序主要包含下列功能函数:
void pit8254_timerinit(ULONG ICW),按控制字初始化定时器;
void pit8253_timerset(USHORT l,USHORT h),设定计数值;
void pit8253_timerget(USHORT*l,USHORT*h),读取计数值。
本发明的有益效果是:
在使用单片机上或DSP等智能芯片时,为了避免轮询造成的CPU资源浪费,大都采用中断的方式。现代PC机的芯片组内,都有一片中断定时器芯片,它可以发出定时中断或控制PC蜂鸣器发声,它的时钟信号可达1MHz以上,理论上可以实现us级定时。本发明就是利用该芯片在Windows下实现一个基于中断的硬时钟定时器。
本发明利用Pentium IV架构PC机的芯片组内的8254芯片,通过编写8254中断定时器驱动程序、APIC驱动程序,在Windows下实现一个基于中断的硬时钟定时器;定义中断处理函数,改变中断描述符表中的中断门结构,并将自定义的中断处理函数的指针赋给门结构的值,实现对用户自定义中断处理函数的调用,实现了可应用的定时器;经测试,定时精度可达到亚毫米级,在定时为100us时,定时偏移小于7us,且CPU占用率极低,满足大多数windows系统定时应用要求。在中断处理函数中,通过获取CPU计数器的值,计算相邻两次执行中断处理的时间差,测试中断定时精度,结果可达到亚毫米级,多次统计结果显示,在定时为100us时,定时偏移小于7us,且CPU占用率极低,满足大多数windows系统定时应用要求。
附图说明
图1是基于Pentium IV架构的PC机的芯片图;图2是典型的具有多个处理器的PC平台的结构框图(APIC模式);图3是本发明方法的中断过程的调用原理框图(中断过程的调用);图4是IDTR寄存器(IDTR Regisger)原理框图;图5是100us中断定时间隔测试结果图,图6是500us中断定时间隔测试结果图,图7是1ms中断定时间隔测试结果图。
具体实施方式
如图1~4所示,本实施方式所述的Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,在Windows实现高精度定时器主要包括三步:
步骤一、初始化8254芯片,设置内部寄存器,使能8254内部计数器:利用PentiumIV架构PC机芯片组内的8254芯片,通过编写8254中断定时器的驱动程序,对8254内部寄存器进行配置,使能了8254芯片的内部计数功能;
步骤二、在可编程中断控制器APIC中,为8254PIT设定对应的中断向量:通过编写的可编程中断控制器APIC驱动程序,在可编程中断控制器APIC中为8254PIT设定对应的中断向量;
步骤三、修改Windows IDT(中断描述表),让中断触发后,进入自定义中断处理函数:修改Windows IDT(中断描述表),定义中断处理函数,改变中断描述符表中的中断门结构,并将自定义的中断处理函数的指针赋给门结构的值,对用户自定义中断处理函数的调用,实现了一个基于中断的硬时钟定时器。
8254中断定时器设置过程:
基于Pentium IV架构的PC机的芯片组内,有8254PIT定时器芯片。8254芯片内部具有三个独立的16位计数器,它可用程序设置成多种工作方式,按十进制计数或二进制计数,最高计数频率可达1OMHz。如图l所示。
8254的三个计数器是独立的16位减法计数器。计数器的工作方式由工作方式寄存器确定。8254控制字格式如表l:
D7 D6 D5 D4 D3 D2 D1 D0
SC1 | SC0 | RL1 | RL0 | M2 | M1 | M0 | BCD |
各位的功能见表2~表5:
表2SCl、SCO-计数器选择
表3RL1、RL0-CPU读/写操作
表4M2、M1、M0-工作方式选择
选通信号GATE控制计数工作的进行,其功能如表6所示。
本发明采用计数器0产生定时中断,设置工作方式为0,即:首先设置计数器初始值,在时钟信号CLK控制下进行行递减计数,计数结束(减至0)时产生上升沿中断,同时自动预置为初始值,计数器连续工作。
编写8254中断定时器驱动程序,主要包含下列功能函数:
void pit8254_timerinit(ULONG ICW),按控制字初始化定时器
void pit8253_timerset(USHORT l,USHORT h),设定计数值
void pit8253_timerget(USHORT*l,USHORT*h),读取计数值
可编程中断控制器APIC设置:
APIC由两部分组成,一个称为LAPIC(Local APIC,本地高级中断控制器),一个称为IOAPIC(I/O APCI,I/O高级中断控制器)。前者位于CPU中,每个CPU都有一个自己的LAPIC。后者通常位于南桥上,连接各个产生中断的设备。
在一个典型的具有多个处理器的PC平台,通常有一个IOAPIC和多个LAPIC,每个处理器对应一个LAPIC,它们相互配合,形成一个中断的分发网络,图2显示了这个典型的情况:
IOAPIC在PRT(Programmable Redirection Table)表中获取中断消息,发送给某个CPU的LAPIC,由LAPIC通知CPU进行处理。
目前典型的IOAPIC具有24个中断管脚,每个管脚对应一个RTE(Redirection Table Entry)。RTE表是IOAPIC工作的关键,当IOAPIC某个管脚接收到中断信号后,会根据该管脚对应的RTE,格式化出一条中断消息,发送给相应(一个或多个)CPU的LAPIC。RTE表中包含了一个中断的所有信息。
收到来自IOAPIC的中断消息后,LAPIC及对应CPU通过中断请求寄存器IRR、当前中断服务寄存器ISR、任务优先级寄存器TPR、处理器优先级寄存器PPR以及中断结束寄存器EOI处理该中断。
LAPIC的ISR、IRR均为256bit寄存器,对应Pentium IV平台上的256个中断向量。IRR中相应位置1,代表LAPIC已接收中断,但还未交CPU处理。ISR中相应位置1,代表CPU已开始处理中断,但还未完成。当CPU正在处理某中断时,同类型中断如果发生,相应的IRR bit会再次置1;如果某中断被挂起在IRR中,同类型的中断发生,则ISR中相应的bit被置1。这说明在APIC系统中,同一类型中断最多可以被计数两次。对于Pentium IV系列CPU,中断消息被LAPIC拒绝。
LAPIC需要软件写EOI来通知中断处理的完成,LAPIC中的EOI是一个32bit寄存器,对EOI写0表示中断处理完成。
编写APIC驱动程序,主要包含下列功能函数:
ULONG ioapic_read(struct ioapic*io,ULONG reg),读取IOAPIC相应寄存器值
void ioapic_write(struct ioapic*io,ULONG reg,ULONG val),写IOAPIC相应寄存器
void ioapic_init(void),IOAPIC初始化
void ioapic_enable(ULONG irq,PIOAPIC_STRUCT io,ULONG vect),使能指定中断号的中断并给出中断向量
void_ioapic_disable(ULONG irq,ULONG cpunum,PIOAPIC_STRUCT io),屏蔽指定中断号的中断
void ioapic_backup(ULONG*low,ULONG*high),备份IOAPIC全部寄存器值
void ioapic_recover(ULONG*low,ULONG*high),按备份IOAPIC寄存器值恢复全部寄存器
void SetInterrupt_ToCPU(ULONG CPUNum),设定所有中断为LOGICAL模式,并为其指定目的CPU
中断处理:
在IA-32架构处理器中,定时器中断是通过中断描述符表(IDT)处理的。
IOAPIC上有24个中断号引脚,每个中断号对应的设备发出中断后,IOAPIC都会向CPU发送一个中断消息,消息内部包括一个重要的值,就是中断向量,指定中断号的中断向量由RTE表中的0-7位确定,中断向量对应的中断门信息在IDT表中存储。如图3所示。
改变中断描述符表中的中断门结构,将用户自定义中断处理函数的指针赋给门结构的值,在8254的每一个中断到来时,CPU便会执行用户自定义的中断服务程序,这样就实现了基于8254PIT的高精度定时器。如图4所示。
本发明方法所述的定时器性能测试(测试中断定时精度):
每次中断,中断处理函数都会获取CPU计数器的值,把这个值进行运算,转换到us单位的值,这里记为CurrentTime。上一次中断获得的这个us单位的值,这里记为BeforeTime。两个值的差就是实际定时器中断的定时间隔。同时为了说明8254PIT中断定时器不受Windows任务调度的影响,测试时操作系统中运行了两个死循环线程。
结果用曲线图来表示,图中的X轴为定时中断的次数,每次中断间隔次数就是X轴的一个刻度值。Y轴为每次中断间隔的时间值。每个测试由1024个点组成,即测试了1024 次中断时间间隔。
首先进行定时间隔为100us的定时测试。结果如图5所示。从图中可以看出,1024次100us中断定时中,最大的时间间隔是105us,最小时间间隔为94us,通过windows任务管理器查看,设计的定时器占用CPU率小于1%(实际显示为0%)。
进行定时间隔为500us的定时测试。结果如图6所示。从图中可以看出,1024次500us中断定时中,最大的时间间隔是503us,最小时间间隔为497us,通过windows任务管理器查看,设计的定时器占用CPU率小于1%(实际显示为0%)。
进行定时间隔为1ms的定时测试。结果如图7所示。从图中可以看出,1024次1ms中断定时中,最大的时间间隔是1003us,最小时间间隔为996us,通过windows任务管理器查看,设计的定时器占用CPU率小于1%(实际显示为0%)。
Claims (5)
1.一种Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,其特征在于:所述方法的具体实现过程为:
步骤一、利用Pentium IV架构PC机芯片组内的8254芯片,通过编写8254中断定时器的驱动程序,对8254内部寄存器进行配置,使能了8254芯片的内部计数功能;
步骤二、通过编写的可编程中断控制器APIC驱动程序,在可编程中断控制器APIC中为8254PIT设定对应的中断向量;
步骤三、修改Windows IDT,定义中断处理函数,改变中断描述符表中的中断门结构,并将自定义的中断处理函数的指针赋给门结构的值,对用户自定义中断处理函数的调用,实现了一个基于中断的硬时钟定时器。
2.根据权利要求1所述的一种Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,其特征在于:在步骤二中,所述的可编程中断控制器APIC由本地高级中断控制器和I/O高级中断控制器两部分组成,本地高级中断控制器位于CPU中,I/O高级中断控制器位于南桥芯片上,用于连接各个产生中断的设备。
3.根据权利要求2所述的一种Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,其特征在于:可编程中断控制器APIC的工作过程为:收到来自IOAPIC的中断消息后,LAPIC及对应CPU通过中断请求寄存器IRR、当前中断服务寄存器ISR、任务优先级寄存器TPR、处理器优先级寄存器PPR以及中断结束寄存器EOI处理该中断。
LAPIC的ISR、IRR均为256bit寄存器,对应Pentium IV平台上的256个中断向量;IRR中相应位置1,代表LAPIC已接收中断,但还未交CPU处理;ISR中相应位置1,代表CPU已开始处理中断,但还未完成;当CPU正在处理某中断时,同类型中断如果发生,相应的IRR bit会再次置1;如果某中断被挂起在IRR中,同类型的中断发生,则ISR中相应的bit被置1;在APIC系统中,同一类型中断最多可以被计数两次;对于Pentium IV系列CPU,中断消息被LAPIC拒绝。
LAPIC需要软件写EOI来通知中断处理的完成,LAPIC中的EOI是一个32bit寄存器,对EOI写0表示中断处理完成。
4.根据权利要求3所述的一种Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,其特征在于:所述定时器的中断处理过程为:
中断是通过中断描述符表处理的,IOAPIC上有24个中断号引脚,每个中断号对应的设备发出中断后,IOAPIC都会向CPU发送一个中断消息,消息内部包括一个重要的值,就是中断向量,指定中断号的中断向量由RTE表中的0-7位确定,中断向量对应的中断门信息在IDT表中存储;改变中断描述符表中的中断门结构,将用户自定义中断处理函数的指针赋给门结构的值,在8254的每一个中断到来时,CPU便会执行用户自定义的中断服务程序,实现了基于8254PIT的高精度定时器。
5.根据权利要求1、2、3或4所述的一种Windows操作系统Pentium IV架构下高精度低CPU占用率定时器的实现方法,其特征在于:在步骤一中,8254中断定时器驱动程序主要包含下列功能函数:
void pit8254_timerinit(ULONG ICW),按控制字初始化定时器;
void pit8253_timerset(USHORT l,USHORT h),设定计数值;
void pit8253_timerget(USHORT*l,USHORT*h),读取计数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310140907.3A CN103197971B (zh) | 2013-04-22 | 2013-04-22 | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310140907.3A CN103197971B (zh) | 2013-04-22 | 2013-04-22 | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103197971A true CN103197971A (zh) | 2013-07-10 |
CN103197971B CN103197971B (zh) | 2016-11-23 |
Family
ID=48720559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310140907.3A Active CN103197971B (zh) | 2013-04-22 | 2013-04-22 | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103197971B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020572A1 (zh) * | 2015-08-05 | 2017-02-09 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN106406974A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 一种用于虚拟机的高性能定时器实现方法、虚拟机 |
CN106802689A (zh) * | 2016-12-14 | 2017-06-06 | 西北工业大学 | Windows操作系统环境下可调速定时器的实现方法 |
CN110308934A (zh) * | 2018-03-22 | 2019-10-08 | 龙芯中科技术有限公司 | Hpet驱动方法和装置、可读存储介质及电子设备 |
CN110569977A (zh) * | 2019-07-23 | 2019-12-13 | 北京航天自动控制研究所 | 一种面向实时专家系统并行时限推理的可复用定时方法 |
CN115617496A (zh) * | 2022-12-06 | 2023-01-17 | 摩尔线程智能科技(北京)有限责任公司 | 用户模式与内核模式通信的方法、装置、电子设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200809483A (en) * | 2006-08-01 | 2008-02-16 | Universal Scient Ind Co Ltd | Method for applying program hooking and monitoring system control interrupt |
US20080098146A1 (en) * | 2006-10-20 | 2008-04-24 | Jang-Ying Lee | Interrupt hooking method for a computing apparatus |
-
2013
- 2013-04-22 CN CN201310140907.3A patent/CN103197971B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200809483A (en) * | 2006-08-01 | 2008-02-16 | Universal Scient Ind Co Ltd | Method for applying program hooking and monitoring system control interrupt |
US20080098146A1 (en) * | 2006-10-20 | 2008-04-24 | Jang-Ying Lee | Interrupt hooking method for a computing apparatus |
Non-Patent Citations (2)
Title |
---|
刘春凤等: "Windows操作系统下的软件定时器的设计与应用", 《机电一体化》 * |
王鹏飞等: "基于Visual C++6.0的Windows应用程序定时器研究", 《计算机技术与发展》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406974A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 一种用于虚拟机的高性能定时器实现方法、虚拟机 |
CN106406974B (zh) * | 2015-07-30 | 2020-07-17 | 中兴通讯股份有限公司 | 一种用于虚拟机的高性能定时器实现方法、虚拟机 |
WO2017020572A1 (zh) * | 2015-08-05 | 2017-02-09 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN106445650A (zh) * | 2015-08-05 | 2017-02-22 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN106445650B (zh) * | 2015-08-05 | 2019-10-25 | 华为技术有限公司 | 一种中断处理方法、ioapic及计算机系统 |
CN106802689A (zh) * | 2016-12-14 | 2017-06-06 | 西北工业大学 | Windows操作系统环境下可调速定时器的实现方法 |
CN106802689B (zh) * | 2016-12-14 | 2020-01-17 | 西北工业大学 | Windows操作系统环境下可调速高精度定时器的实现方法 |
CN110308934A (zh) * | 2018-03-22 | 2019-10-08 | 龙芯中科技术有限公司 | Hpet驱动方法和装置、可读存储介质及电子设备 |
CN110308934B (zh) * | 2018-03-22 | 2022-03-29 | 龙芯中科(成都)技术有限公司 | Hpet驱动方法和装置、可读存储介质及电子设备 |
CN110569977A (zh) * | 2019-07-23 | 2019-12-13 | 北京航天自动控制研究所 | 一种面向实时专家系统并行时限推理的可复用定时方法 |
CN110569977B (zh) * | 2019-07-23 | 2022-04-22 | 北京航天自动控制研究所 | 一种面向实时专家系统并行时限推理的可复用定时方法 |
CN115617496A (zh) * | 2022-12-06 | 2023-01-17 | 摩尔线程智能科技(北京)有限责任公司 | 用户模式与内核模式通信的方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103197971B (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103197971B (zh) | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 | |
US8413120B2 (en) | Method and system for thread monitoring | |
US7831980B2 (en) | Scheduling threads in a multi-processor computer | |
WO2019134304A1 (zh) | 任务处理方法、装置、电子终端及可读存储介质 | |
CN103984596B (zh) | 一种星载软件的调度方法及装置 | |
US12164450B2 (en) | Managing network interface controller-generated interrupts | |
Regnier et al. | Evaluation of interrupt handling timeliness in real-time linux operating systems | |
Lange et al. | HartOS-A hardware implemented RTOS for hard real-time applications | |
de Oliveira et al. | Operating system noise in the linux kernel | |
CN101067797A (zh) | 处理器利用率的测量装置及方法 | |
CN106802689A (zh) | Windows操作系统环境下可调速定时器的实现方法 | |
CN110990229A (zh) | 一种系统信息采集方法及装置 | |
US8401821B1 (en) | Method, apparatus and computer program for latency measurement | |
Mazzi et al. | Benchmarking and comparison of two open-source RTOSs for embedded systems based on ARM Cortex-M4 MCU | |
US9715468B2 (en) | Method of providing timing information for interrupts | |
Parikh et al. | Performance parameters of RTOSs; comparison of open source RTOSs and benchmarking techniques | |
US11281482B2 (en) | I/O emulation with abortion in virtualized environments including transfer of portions of non-real time I/O emulation to work threads prior to switching contexts | |
CN112579272B (zh) | 微指令分发方法、装置、处理器和电子设备 | |
US8621471B2 (en) | High accuracy timer in a multi-processor computing system without using dedicated hardware timer resources | |
Henriques | Threaded IRQs on Linux PREEMPT-RT | |
US8572619B2 (en) | System and method for integrating software schedulers and hardware interrupts for a deterministic system | |
US20230305872A1 (en) | Efficient central processing unit overcommit for virtual machines with symmetric multi-processing | |
Alonso et al. | Timing requirements on multi-processing and reconfigurable embedded systems with multiple environments | |
Liu et al. | Real-Time Analysis of Event Response based on RT-Thread | |
Chaiken | IRQs: the Hard, the Soft, the Threaded and the Preemptible |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |