CN112596818B - 一种应用程序控制方法、系统及装置 - Google Patents

一种应用程序控制方法、系统及装置 Download PDF

Info

Publication number
CN112596818B
CN112596818B CN202011601275.2A CN202011601275A CN112596818B CN 112596818 B CN112596818 B CN 112596818B CN 202011601275 A CN202011601275 A CN 202011601275A CN 112596818 B CN112596818 B CN 112596818B
Authority
CN
China
Prior art keywords
timing
driver
program
application program
control information
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.)
Active
Application number
CN202011601275.2A
Other languages
English (en)
Other versions
CN112596818A (zh
Inventor
刘恒晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongyuan Network Co ltd
Original Assignee
Shanghai Zhongyuan Network Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongyuan Network Co ltd filed Critical Shanghai Zhongyuan Network Co ltd
Priority to CN202011601275.2A priority Critical patent/CN112596818B/zh
Publication of CN112596818A publication Critical patent/CN112596818A/zh
Application granted granted Critical
Publication of CN112596818B publication Critical patent/CN112596818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种应用程序控制方法、系统及装置,应用于软件技术领域,其中,应用于应用程序,根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得IO管理器根据控制信息控制应用程序对应的驱动程序计时。其中,驱动程序用于在计时上述计时时长后触发计时终止事件,驱动设备为:由驱动程序驱动的虚拟设备,IO管理器用于:对应用程序与驱动程序之间进行的IO交互进行管理。在监控到计时终止事件被触发后,对预设的数据处理状态进行控制。应用本发明实施例提供的方案可以提高控制应用程序的精准度。

Description

一种应用程序控制方法、系统及装置
技术领域
本发明涉及软件技术领域,特别是涉及一种应用程序控制方法、系统及装置。
背景技术
电子设备能够运行各种应用程序。在一些情况下,应用程序在运行过程中需要进行计时,进而控制在一定的时长内,或经过一定时长后执行特定数据处理。例如,用户通过直播程序进行直播时,直播程序需要进行计时,每经过预设时长后,直播程序需要将所采集的声音或图像数据上传至服务器。
现有技术中,应用程序往往是通过调用运行该应用程序的电子设备安装的操作系统提供的用户态的计时函数进行计时,然而上述用户态的计时函数的精准度往往较低,应用程序进行计时的精准度较低,进而易导致对应用程序进行控制的精准度较低。例如,Windows操作系统中上述计时函数的最短计时时长大致为15毫秒,难以进行15毫秒以下时长的计时,若应用程序对实时性要求较高,如在应用程序运行过程中需要计时10毫秒来控制应用程序时,则难以通过调用用户态的计时函数对应用程序进行精准的控制。
发明内容
本发明实施例的目的在于提供一种应用程序控制方法、系统及装置,以提高控制应用程序的精准度。具体技术方案如下:
第一方面,本发明实施例提供了一种应用程序控制方法,应用于应用程序,所述方法包括:
根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器根据所述控制信息控制所述应用程序对应的驱动程序计时,其中,所述驱动程序用于在计时所述计时时长后触发计时终止事件,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
本发明的一个实施例中,在所述根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息后,还包括:
设置用于执行所述预设的数据处理的线程或进程处于阻塞状态;
在所述监控到所述计时终止事件被触发后,且在所述对预设的数据处理状态进行控制前,还包括:
解除所述线程或进程的阻塞状态。
本发明的一个实施例中,所述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
第二方面,本发明实施例提供了一种应用程序控制方法,应用于驱动程序,所述方法包括:
接收IO管理器发送的、包含计时时长的控制信息,其中,所述控制信息为:所述驱动程序对应的应用程序根据驱动设备的符号链接名向所述IO管理器发送的信息,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
启动计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
本发明的一个实施例中,在所述启动计时之前,还包括:
判断所接收到的控制信息是否满足预设的控制信息规则;
若所述控制信息满足预设的控制信息规则,则执行所述启动计时的步骤。
本发明的一个实施例中,在所述驱动程序并行执行至少两个计时任务的情况下,所述启动计时,并在计时所述计时时长后触发计时终止事件,包括:
选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
第三方面,本发明实施例提供了一种应用程序控制系统,所述系统包括:应用程序与驱动程序;
所述应用程序,用于根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器向所述驱动程序发送所述控制信息,其中,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
所述驱动程序,用于在接收到所述控制信息后,启动计时,并在计时所述计时时长后触发计时终止事件;
所述应用程序,用于在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
本发明的一个实施例中,所述系统还包括:所述IO管理器。
本发明的一个实施例中,所述应用程序还用于:
设置用于执行所述预设的数据处理的线程或进程处于阻塞状态;
在所述监控到所述计时终止事件被触发后,且在所述对预设的数据处理状态进行控制前,解除所述线程或进程的阻塞状态。
本发明的一个实施例中,所述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
本发明的一个实施例中,所述驱动程序,还用于:
判断所接收到的控制信息是否满足预设的控制信息规则;
若所述控制信息满足预设的控制信息规则,则启动计时。
本发明的一个实施例中,在所述驱动程序并行执行至少两个计时任务的情况下,
所述驱动程序,具体用于选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
第四方面,本发明实施例提供了一种应用程序控制装置,应用于应用程序,所述装置包括:
信息发送模块,用于根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器根据所述控制信息控制所述应用程序对应的驱动程序计时,其中,所述驱动程序用于在计时所述计时时长后触发计时终止事件,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
数据处理模块,用于在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
本发明的一个实施例中,所述装置还包括:
状态设置模块,用于设置用于执行所述预设的数据处理的线程或进程处于阻塞状态;
所述数据处理模块,具体用于:
在监控到所述计时终止事件被触发后,解除所述线程或进程的阻塞状态,对预设的数据处理状态进行控制。
本发明的一个实施例中,所述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
第五方面,本发明实施例提供了一种应用程序控制装置,应用于驱动程序,所述装置包括:
信息接收模块,用于接收IO管理器发送的、包含计时时长的控制信息,其中,所述控制信息为:所述驱动程序对应的应用程序根据驱动设备的符号链接名向所述IO管理器发送的信息,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
计时模块,用于启动计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
本发明的一个实施例中,所述装置还包括:
规则判断模块,用于判断所接收到的控制信息是否满足预设的控制信息规则;
所述计时模块,具体用于若所述规则判断模块确定所述控制信息满足预设的控制信息规则,则启动计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
本发明的一个实施例中,在所述驱动程序并行执行至少两个计时任务的情况下,所述计时模块,具体用于:
选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
第六方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面任一所述的方法步骤。
第七方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面任一所述的方法步骤。
第八方面,在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面任一所述的方法步骤。
本发明实施例提供的应用程序控制方案中,应用程序根据驱动设备的符号链接名向IO管理器发送包含计时时长的控制信息,使得IO管理器根据控制信息控制应用程序对应的驱动程序计时,驱动程序在计时上述计时时长后会触发计时终止事件。应用程序监控到计时终止事件被触发后,对预设的数据处理状态进行控制。
由以上可见,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的第一种应用程序控制方法的流程示意图;
图2为本发明实施例中提供的第二种应用程序控制方法的流程示意图;
图3为本发明实施例中提供的第三种应用程序控制方法的流程示意图;
图4为本发明实施例中提供的第四种应用程序控制方法的流程示意图;
图5为本发明实施例提供的一种应用程序控制系统的结构示意图;
图6为本发明实施例提供的一种应用程序控制方法的信令流程图;
图7为本发明实施例提供的第一种应用程序控制装置的结构示意图;
图8为本发明实施例提供的第二种应用程序控制装置的结构示意图;
图9为本发明实施例提供的第三种应用程序控制装置的结构示意图;
图10为本发明实施例提供的第四种应用程序控制装置的结构示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
由于基于操作系统的用户态运行的应用程序进行计时的精准度往往较低,进而易导致对应用程序进行控制的精准度较低,为了提高控制应用程序的精准度,本发明实施例提供了一种应用程序控制方法、系统及装置。
本发明的一个实施例中,提供了一种应用程序控制方法,应用于应用程序,上述方法包括:
根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得上述IO管理器根据上述控制信息控制上述应用程序对应的驱动程序计时。其中,上述驱动程序用于在计时上述计时时长后触发计时终止事件,上述驱动设备为:由上述驱动程序驱动的虚拟设备,上述IO管理器用于:对上述应用程序与上述驱动程序之间进行的IO交互进行管理。
在监控到上述计时终止事件被触发后,对预设的数据处理状态进行控制。
由以上可见,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
本发明的另一个实施例中,提供了一种应用程序控制方法,应用于驱动程序,上述方法包括:
接收IO管理器发送的、包含计时时长的控制信息。其中,上述控制信息为:上述驱动程序对应的应用程序根据驱动设备的符号链接名向上述IO管理器发送的信息,上述驱动设备为:由上述驱动程序驱动的虚拟设备,上述IO管理器用于:对上述应用程序与上述驱动程序之间进行的IO交互进行管理。
启动计时,并在计时上述计时时长后触发计时终止事件,使得上述应用程序在监控到上述计时终止事件被触发后对预设的数据处理状态进行控制。
由以上可见,本发明实施例提供的方案中上述驱动程序是为应用程序配备的用于计时的程序,驱动程序在接收到应用程序发送的包含计时时长的控制信息之后,会计时上述计时时长,并在计时结束后触发计时终止事件。因此应用程序在监控到计时终止事件后可以对预设的数据处理状态进行控制,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,因此使得应用程序根据驱动程序的计时结果对应用程序进行控制的精准度较高。
下面通过具体的实施例对本发明实施例提供的应用程序控制方法、系统及装置进行说明。
本发明实施例中涉及的应用程序、驱动程序以及IO管理器是安装于同一电子设备中的程序,上述驱动程序是为应用程序配备的用于计时的程序。由于驱动程序是用于对驱动设备进行驱动的程序,需要依托于驱动设备才能够运行,本发明实施例可以创建虚拟的驱动设备,所创建的驱动设备可以不具备具体的功能,仅作为驱动程序所驱动的驱动设备,使得驱动程序能够正常运行。
参见图1,本发明实施例提供了第一种应用程序控制方法的流程示意图,应用于应用程序,上述方法包括以下步骤S101-S102。
S101:根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得上述IO管理器根据上述控制信息控制上述应用程序对应的驱动程序计时。
其中,上述控制信息中除了包含计时时长之外,还可以包含以下信息中的一个或多个:上述应用程序的应用标识、执行预设的数据处理的线程的线程标识、执行预设的数据处理的进程标识等。
具体的,上述应用标识、线程标识、进程标识可以是预设标识,上述预设标识可以以数字、字符等形式表示。
上述驱动程序用于在计时上述计时时长后触发计时终止事件。
具体的,上述计时终止事件可以为中断事件,即上述驱动程序在上述计时时长后触发正在运行的进程或线程中断。
另外,上述IO管理器用于:对上述应用程序与上述驱动程序之间进行的IO交互进行管理。
具体的,上述IO管理器可以为:运行上述应用程序的电子设备安装的操作系统提供的、用于对上述应用程序与上述驱动程序之间进行的IO交互进行管理的程序,也可以为用户自定义的程序。上述IO交互指的是上述应用程序与上述驱动程序之间互相传输数据。
此外,上述驱动设备为:由上述驱动程序驱动的虚拟设备。
具体的,可以通过创建设备对象,即实例化设备对象,作为驱动设备的实例。
本发明的一个实施例中,可以创建设备名称,并创建驱动设备名为上述设备名称的设备对象,再创建设备对象的链接名称,作为设备对象的符号链接名,并构建驱动设备名与符号链接名之间的关联,在构建关联之后,便成功创建符号链接名为上述链接名称的设备对象,作为上述驱动设备。
由于运行于操作系统的用户态中的应用程序无法识别到驱动程序的驱动设备名,仅能识别到驱动程序的符号链接名,因此在创建设备对象时,需要创建符号链接名与设备对象的驱动设备名相关联,以使得应用程序能够根据驱动程序的符号链接名向IO管理器发送控制信息,IO管理器可以控制上述符号链接名对应的驱动设备对应的驱动程序。
其中,上述符号链接名为记录有驱动设备的路径的信息,相当于上述驱动设备的别名。
在运行上述应用程序的电子设备安装的操作系统是Windows操作系统的情况下,可以调用RtlInitUnicodeString函数创建驱动设备名,并调用IoCreateDevice函数创建设备名称为驱动设备名的设备对象。并调用RtlInitUnicodeString函数创建符号链接名,再调用IoCreateSymbolicLink函数构建驱动设备名与符号链接名之间的关联。
再者,IO管理器中可以记录有上述应用程序对应的驱动设备的符号链接名,在监控到上述应用程序开始运行的情况下,IO管理器可以根据上述符号链接名确定上述驱动设备的设备句柄,则IO管理器在接收到上述应用程序发送的控制信息后,可以根据设备句柄对驱动程序进行控制。
S102:在监控到上述计时终止事件被触发后,对预设的数据处理状态进行控制。
具体的,在监控到上述计时终止事件被触发后,应用程序可以结束正在执行的预设的数据处理,将预设的数据处理状态转化为终止状态,也可以暂停正在执行的预设的数据处理,将预设的数据处理状态转化为阻塞等待状态,也可以开始执行预设的数据处理,将预设的数据处理状态转化为运行状态。例如,上述预设的数据处理可以为对数据进行计算、向服务器发送数据等。
由于在运行应用程序的过程中,不同的数据处理由不同的线程或进程执行,在监控到上述计时终止事件被触发后,可以对执行上述预设的数据处理的线程或进程进行状态控制,例如,控制上述线程或进程中断,或进入阻塞状态等,从而对应用程序进行控制。
本发明的一个实施例中,可以通过调用事件监控接口监控上述计时终止事件是否被触发。
由以上可见,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
另外,上述图1所示的实施例可以应用于控制直播程序的应用场景中,则上述应用程序为直播程序,上述预设的数据处理为向服务器发送音频或图像数据。具体的,上述直播程序向IO管理器发送包含计时时长的控制信息,暂停向服务器发送音频或图像数据。IO管理器根据上述控制信息控制应用程序对应的驱动程序计时上述计时时长。在驱动程序计时上述计时时长后会触发计时终止事件,直播程序在监控到上述计时终止事件后,向服务器发送在计时时长内采集到的音频或图像数据。在音频或图像数据发送完毕后,直播程序可以再次向IO管理器发送包含计时时长的控制信息,并暂停向服务器发送音频或图像数据。由以上可见,通过上述图1所示的实施例,可以控制直播程序向服务器发送音频或图像数据,实现直播程序间隔计时时长后向服务器发送音频或图像数据的功能。并且,由于通过驱动程序进行计时的精准度较高,最短计时时长往往能够达到0.5毫秒,因此可以实现对直播程序向服务器发送音频或图像数据的毫秒级的控制。
此外,本发明的另一个实施例中,IO管理器可以通过以下方式根据上述控制信息控制上述应用程序对应的驱动程序计时:
IO管理器在接收到应用程序发送的控制信息之后,可以向上述驱动程序发送上述控制信息,驱动程序在接收到控制信息后启动计时,从而实现IO管理器对驱动程序的控制。
其中,可以采用IRP(IO Request Packet,输入输出请求数据包)生成函数,生成MinorFunction字段为上述控制信息的IRP。IO管理器向上述驱动程序发送所生成的IRP,使得上述IRP所携带的控制信息被发送到上述驱动程序。在驱动程序接收到上述IRP的情况下可以启动计时,从而使得IO管理器可以控制上述驱动程序进行计时。
具体的,上述IRP生成函数可以为运行上述IO管理器的电子设备所安装的操作系统提供的函数,也可以为用户定义的函数。上述IRP生成函数可以被区分为不同的类型,上述IO管理器中可以预设有上述应用程序与IRP生成函数的类型之间的对应关系,即上述IO管理器接收到上述应用程序发送的控制信息后,可以调用预设的、上述应用程序对应的类型的IRP生成函数,生成IRP。其中,预设的上述应用程序对应的IRP生成函数的类型可以为任意类型。
此外,不同类型的IRP生成函数生成的IRP的类型不同,其中包含的字段不同,特别是标识IRP类型的MajorFunction字段不同。
例如,上述IRP生成函数可以包含DeviceIoControl函数、WriteFile函数、ReadFile函数等不同类型。其中,DeviceIoControl函数可以生成MajorFunction字段为IRP_MJ_DEVICE_CONTROL的第一IRP,WriteFile函数可以生成MajorFunction字段为IRP_MJ_WRITE的第二IRP,ReadFile函数可以生成MajorFunction字段为IRP_MJ_READ的第三IRP。
具体的,第一IRP表示对驱动设备进行控制,第二IRP表示在驱动设备中写入数据,上述第二IRP中还包含写入数据的长度等字段,第三IRP表示从驱动设备中读取数据,上述第三IRP中还包含读取数据的长度等字段。也就是不同类型的IRP生成函数所生成的IRP可以触发驱动程序执行不同的处理。
本发明实施例中,驱动设备是一个虚拟设备,不具有数据读写等功能,驱动程序的功能也仅是进行计时,不会进行其他数据处理。本发明的一个实施例中,驱动程序可以将各个类型的IRP均作为触发计时的信号,无论驱动程序接收到何种类型的IRP,均可以开始进行计时。
但为了对驱动程序进行计时进行精确的控制,驱动程序在进行计时之前可以确定所接收到的IRP的类型,若所接收到的IRP为预设类型的IRP,才启动计时。具体的,驱动程序可以识别所接收到的IRP的MajorFunction字段,确定所接收到的IRP的类型。
另外,由于本发明实施例提供的方案中,驱动程序仅是执行计时,不需要进行读写或其他数据处理,因此本发明实施例可以将DeviceIoControl函数作为上述IRP生成函数,生成的IRP的MajorFunction字段为IRP_MJ_DEVICE_CONTROL,所生成的IRP仅表示对驱动设备进行控制,即触发驱动程序启动计时。当然也可以使用其他IRP生成函数生成其他IRP。
参见图2,为本发明实施例提供的第二种应用程序控制方法的流程示意图,与前述图1所示的实施例相比,在上述步骤S101之后,还包括以下步骤S103。
S103:设置用于执行上述预设的数据处理的线程或进程处于阻塞状态。
具体的,处于阻塞状态的线程或进程暂时停止工作,即上述预设的数据处理暂停,进入等待状态。
上述步骤S102可以通过以下步骤S102A实现。
S102A:监控到上述计时终止事件被触发后,解除上述线程或进程的阻塞状态,对预设的数据处理状态进行控制。
具体的,解除上述线程或进程的阻塞状态表示上述线程或进程可以重新转换回运行状态,继续执行预设的数据处理。
由于在应用程序向IO管理器发送控制信息之后,驱动程序会开始进行计时,上述预设的数据处理的线程或进程也被设置为阻塞状态,暂停运行。直至驱动程序计时终止,驱动程序会触发计时终止事件,应用程序监控到计时终止事件被触发后,解除上述线程或进程的阻塞状态,也就是上述线程或进程开始继续运行。因此在上述计时时长内可以控制上述线程或进程暂停运行。
由以上可见,在上述驱动程序计时上述计时时长的过程中,上述线程或进程处于阻塞状态,暂停运行,在计时终止也就是经过了上述计时时长后,线程或进程继续运行,因此通过上述实施例,可以控制上述线程或进程在上述计时时长内暂停运行,从而实现对应用程序的控制。
参见图3,为本发明实施例提供的第三种应用程序控制方法的流程示意图,应用于驱动程序,上述方法包括以下步骤S301-S302。
S301:接收IO管理器发送的、包含计时时长的控制信息。
其中,上述控制信息为:上述驱动程序对应的应用程序根据驱动设备的符号链接名向上述IO管理器发送的信息,
上述驱动设备为:由上述驱动程序驱动的虚拟设备。
上述IO管理器用于:对上述应用程序与上述驱动程序之间进行的IO交互进行管理。
S302:启动计时,并在计时上述计时时长后触发计时终止事件,使得上述应用程序在监控到上述计时终止事件被触发后对预设的数据处理状态进行控制。
具体的,可以调用运行驱动程序的电子设备安装的操作系统的内核态提供的计时函数进行计时,也可以调用用户自定义的计时函数进行计时。
在运行上述驱动程序的电子设备安装的操作系统为Windows操作系统的情况下,上述操作系统的内核态提供的计时函数可以为:KeWaitForSingleObject函数,KeDelayExecutionThread函数,NdisMSleep函数等。上述函数的最短计时时长大致为0.5毫秒,因此可以实现毫秒级别的精准的计时。
另外,由于同一应用程序中可能包含多个需要进行计时的数据处理,上述不同的数据处理由不同的线程或进程执行,不同数据处理所需要的计时均可以通过上述驱动程序实现,在上述驱动程序完成计时,触发计时终止事件时,需要发出用于执行请求计时的数据处理的线程的线程标识,或进程的进程标识。上述应用程序在监控到上述计时终止事件被触发后,仅有上述线程标识对应的线程或进程标识对应的进程执行预设的数据处理。从而可以防止上述计时终止事件对所有线程或进程均造成影响。
再者,在上述驱动程序接收到的控制信息是由IRP所携带的控制信息的情况下,在驱动程序计时完成后,可以调用派遣函数调整IRP中的状态字段,并将调整之后的IRP反馈给IO管理器,告知上述IO管理器上述应用程序与驱动程序之间的IO交互已完成。
其中,上述派遣函数是用于对IO管理器发送的IRP进行处理,进而完成应用程序与驱动程序之间的IO交互的函数,上述派遣函数可以为运行上述驱动程序的电子设备安装的操作系统提供的函数,也可以为用户定义的函数。
本发明的一个实施例中,上述驱动程序中可以执行一个计时任务或并行执行多个计时任务,上述多个计时任务可以通过调用相同的计时函数实现,也可以通过调用不同的计时函数实现。
在上述驱动程序并行执行至少两个计时任务的情况下,可以通过以下步骤A实现上述步骤S302。
步骤A:选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时上述计时时长后触发计时终止事件。
具体的,不同的计时任务可以通过不同的线程执行,处于空闲状态的计时任务是未处于运行状态的线程所执行的任务,也就是上述线程并未被占用,上述计时任务可以被直接调用。可以随机选择任意处于空闲状态的计时任务进行计时,也可以对计时任务进行预设的优先级排序,选择处于空闲状态的计时任务中优先级最高的计时任务进行计时。
由以上可见,本发明实施例提供的方案中上述驱动程序是为应用程序配备的用于计时的程序,驱动程序在接收到应用程序发送的包含计时时长的控制信息之后,会计时上述计时时长,并在计时结束后触发计时终止事件。因此应用程序在监控到计时终止事件后可以对预设的数据处理状态进行控制,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,因此使得应用程序根据驱动程序的计时结果对应用程序进行控制的精准度较高。
具体的,上述应用于驱动程序的应用程序控制方法与前述应用于应用程序的应用程序控制方法属于互相对应的两种方法,部分实施例在前述应用于应用程序的应用程序控制方法的实施例中已经描述,在此不再赘述。
参见图4,为本发明实施例提供的第四种应用程序控制方法的流程示意图,与前述图3所示的实施例相比,在上述步骤S302之前,上述方法还包括以下步骤S303。
S303:判断所接收到的控制信息是否满足预设的控制信息规则。
本发明的一个实施例中,可以判断所接收到的控制信息是否为预设控制信息,若为是,则确定所接收到的控制信息满足预设的控制信息规则。
本发明的另一个实施例中,上述控制信息中包含的计时时长可以根据需求进行调整,而非固定的信息,在判断上述控制信息是否满足预设的控制信息规则的过程中可以不对计时时长进行判断,则可以通过以下(一)-(三)三种方式判断上述控制信息是否满足预设的控制信息规则。
(一)在上述控制信息中包含应用标识的情况下,可以判断上述应用标识是否为上述应用程序的标识,若上述应用标识是上述应用程序的标识,则确定上述控制信息是由上述应用程序发出的,则认为所接收到的控制信息满足预设的控制信息规则。
(二)在上述控制信息中包含线程标识的情况下,可以判断上述线程标识是否为执行上述数据处理的线程的标识,若上述线程标识是上述线程的标识,则确定上述控制信息是为了对上述线程执行的数据处理进行计时,则认为所接收到的控制信息满足预设的控制信息规则。
(三)在上述控制信息中包含进程标识的情况下,可以判断上述进程标识是否为执行上述数据处理的进程的标识,若上述进程标识是上述进程的标识,则确定上述控制信息是为了对上述进程执行的数据处理进行计时,则认为所接收到的控制信息满足预设的控制信息规则。
在上述控制信息中包含应用标识、线程标识与进程标识中至少两个标识的情况下,可以通过上述方式(一)-(三)中、上述控制信息中包含的标识对应的方式共同判断所接收到的控制信息是否满足预设的控制信息规则。
若上述控制信息满足预设的控制信息规则,执行上述步骤S302。
由以上可见,在上述控制信息满足预设的控制信息规则的情况下,驱动程序才启动计时。从而可以防止除上述应用程序发出的控制信息之外的控制信息造成驱动程序启动计时并触发计时终止事件,进而对上述应用程序的运行造成影响。
与前述应用于应用程序与驱动程序的应用程序控制方法相对应,本发明实施例中还提供了一种应用程序控制系统。
参见图5,本发明实施例提供了一种应用程序控制系统的结构示意图。
上述系统包括应用程序501与驱动程序502。
参见图6,为本发明实施例提供的一种应用程序控制方法的信令流程图,下面结合图6对图5所示应用程序控制系统的工作流程进行说明。
S601:上述应用程序501根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得上述IO管理器向上述驱动程序发送上述控制信息。
其中,上述驱动设备为:由上述驱动程序驱动的虚拟设备,上述IO管理器用于:对上述应用程序与上述驱动程序之间进行的IO交互进行管理。
S602:上述驱动程序502在接收到上述应用程序501发送的控制信息后,启动计时。
S603:上述驱动程序502在计时上述计时时长后触发计时终止事件。
S604:上述应用程序501在监控到上述计时终止事件被触发后,对预设的数据处理状态进行控制。
由以上可见,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
本发明的一个实施例中,上述系统还包括:上述IO管理器。
本发明的一个实施例中,上述应用程序501,还用于:
设置用于执行上述预设的数据处理的线程或进程处于阻塞状态。
在上述监控到上述计时终止事件被触发后,且在上述对预设的数据处理状态进行控制前,解除上述线程或进程的阻塞状态。
本发明的一个实施例中,上述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
由以上可见,在上述驱动程序计时上述计时时长的过程中,上述线程或进程处于阻塞状态,暂停运行,在计时终止也就是经过了上述计时时长后,线程或进程继续运行,因此通过上述实施例,可以控制上述线程或进程在上述计时时长内暂停运行,从而实现对应用程序的控制。
本发明的一个实施例中,上述驱动程序502,还用于:
判断所接收到的控制信息是否满足预设的控制信息规则。
若上述控制信息满足预设的控制信息规则,则启动计时。
由以上可见,在上述控制信息满足预设的控制信息规则的情况下,驱动程序才启动计时。从而可以防止除上述应用程序发出的控制信息之外的控制信息造成驱动程序启动计时并触发计时终止事件,进而对上述应用程序的运行造成影响。
本发明的一个实施例中,在上述驱动程序并行执行至少两个计时任务的情况下,上述驱动程序502,具体用于选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
具体的,上述应用程序控制系统所进行的操作与前述应用于应用程序与驱动程序的应用程序控制方法的操作流程相同,在此不再赘述。
与前述应用于应用程序的应用程序控制方法相对应,参见图7,为本发明实施例提供了第一种应用程序控制装置的结构示意图,应用于应用程序,上述装置包括:
信息发送模块701,用于根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器根据所述控制信息控制所述应用程序对应的驱动程序计时,其中,所述驱动程序用于在计时所述计时时长后触发计时终止事件,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
数据处理模块702,用于在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
由以上可见,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
参见图8,为本发明实施例提供的第二种应用程序控制装置的结构示意图,与前述图7所示的实施例相比,上述装置还包括:
状态设置模块703,用于设置用于执行所述预设的数据处理的线程或进程处于阻塞状态;
上述数据处理模块702,具体用于:
在监控到所述计时终止事件被触发后,解除所述线程或进程的阻塞状态,对预设的数据处理状态进行控制。
由以上可见,在上述驱动程序计时上述计时时长的过程中,上述线程或进程处于阻塞状态,暂停运行,在计时终止也就是经过了上述计时时长后,线程或进程继续运行,因此通过上述实施例,可以控制上述线程或进程在上述计时时长内暂停运行,从而实现对应用程序的控制。
本发明的一个实施例中,所述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
具体的,上述应用于应用程序的应用程序控制装置所进行的操作与前述应用于应用程序的应用程序控制方法的操作流程相同,在此不再赘述。
与前述应用于驱动程序的应用程序控制方法相对应,参见图9,为本发明实施例提供的第三种应用程序控制装置的结构示意图,应用于驱动程序,上述装置包括:
信息接收模块901,用于接收IO管理器发送的、包含计时时长的控制信息,其中,所述控制信息为:所述驱动程序对应的应用程序根据驱动设备的符号链接名向所述IO管理器发送的信息,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
计时模块902,用于启动计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
由以上可见,本发明实施例提供的方案中上述驱动程序是为应用程序配备的用于计时的程序,驱动程序在接收到应用程序发送的包含计时时长的控制信息之后,会计时上述计时时长,并在计时结束后触发计时终止事件。因此应用程序在监控到计时终止事件后可以对预设的数据处理状态进行控制,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,因此使得应用程序根据驱动程序的计时结果对应用程序进行控制的精准度较高。
参见图10,为本发明实施例提供的第四种应用程序控制装置的结构示意图,与前述图9所示的实施例相比,上述装置还包括:
规则判断模块903,用于判断所接收到的控制信息是否满足预设的控制信息规则;
所述计时模块902,具体用于若所述规则判断模块903确定所述控制信息满足预设的控制信息规则,则启动计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
由以上可见,在上述控制信息满足预设的控制信息规则的情况下,驱动程序才启动计时。从而可以防止除上述应用程序发出的控制信息之外的控制信息造成驱动程序启动计时并触发计时终止事件,进而对上述应用程序的运行造成影响。
本发明的一个实施例中,在所述驱动程序并行执行至少两个计时任务的情况下,所述计时模块902,具体用于:
选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
具体的,上述应用于驱动程序的应用程序控制装置所进行的操作与前述应用于驱动程序的应用程序控制方法的操作流程相同,在此不再赘述。
本发明实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
存储器1103,用于存放计算机程序;
处理器1101,用于执行存储器1103上所存放的程序时,实现上述应用于应用程序与驱动程序的应用程序控制方法任一所述的方法步骤。
应用本发明实施例提供的电子设备控制应用程序的情况下,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中应用于应用程序与驱动程序的应用程序控制方法任一所述的方法步骤。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序控制应用程序的情况下,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中应用于应用程序与驱动程序的应用程序控制方法任一所述的方法步骤。
执行本发明实施例提供的计算机程序控制应用程序的情况下,本发明实施例提供的方案中为应用程序配备了用于计时的驱动程序,在需要进行计时控制应用程序的情况下,计时的过程是由驱动程序完成的,应用程序在监控到驱动程序计时完成后触发的计时终止事件后,执行预设的数据处理,从而实现对应用程序的控制。由于应用程序是基于操作系统的用户态运行的程序,驱动程序是基于操作系统的内核态运行的程序,内核态进行计时的精准度高于用户态进行计时的精准度,所以驱动程序进行计时的精准度往往高于应用程序进行计时的精准度。本发明实施例提供的方案中通过驱动程序进行计时的精准度较高,进而使得根据计时结果对应用程序进行控制的精准度较高。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、电子设备、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (14)

1.一种应用程序控制方法,其特征在于,应用于应用程序,所述方法包括:
根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器根据所述控制信息控制所述应用程序对应的驱动程序调用计时函数计时,其中,所述驱动程序用于在计时所述计时时长后触发计时终止事件,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
2.根据权利要求1所述的方法,其特征在于,在所述根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息后,还包括:
设置用于执行所述预设的数据处理的线程或进程处于阻塞状态;
在所述监控到所述计时终止事件被触发后,且在所述对预设的数据处理状态进行控制前,还包括:
解除所述线程或进程的阻塞状态。
3.根据权利要求1或2所述的方法,其特征在于,所述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
4.一种应用程序控制方法,其特征在于,应用于驱动程序,所述方法包括:
接收IO管理器发送的、包含计时时长的控制信息,其中,所述控制信息为:所述驱动程序对应的应用程序根据驱动设备的符号链接名向所述IO管理器发送的信息,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
启动计时,调用计时函数进行计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
5.根据权利要求4所述的方法,其特征在于,在所述启动计时之前,还包括:
判断所接收到的控制信息是否满足预设的控制信息规则;
若所述控制信息满足预设的控制信息规则,则执行所述启动计时的步骤。
6.根据权利要求4或5所述的方法,其特征在于,在所述驱动程序并行执行至少两个计时任务的情况下,所述启动计时,并在计时所述计时时长后触发计时终止事件,包括:
选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
7.一种应用程序控制系统,其特征在于,所述系统包括:应用程序与驱动程序;
所述应用程序,用于根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器向所述驱动程序发送所述控制信息,其中,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
所述驱动程序,用于在接收到所述控制信息后,启动计时,调用计时函数进行计时,并在计时所述计时时长后触发计时终止事件;
所述应用程序,用于在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:所述IO管理器。
9.根据权利要求7所述的系统,其特征在于,所述应用程序还用于:
设置用于执行所述预设的数据处理的线程或进程处于阻塞状态;
在所述监控到所述计时终止事件被触发后,且在所述对预设的数据处理状态进行控制前,解除所述线程或进程的阻塞状态。
10.根据权利要求7所述的系统,其特征在于,所述IO管理器为:运行所述应用程序的电子设备安装的操作系统提供的、用于对所述应用程序与所述驱动程序之间进行的IO交互进行管理的程序。
11.根据权利要求7所述的系统,其特征在于,所述驱动程序,还用于:
判断所接收到的控制信息是否满足预设的控制信息规则;
若所述控制信息满足预设的控制信息规则,则启动计时。
12.根据权利要求7所述的系统,其特征在于,在所述驱动程序并行执行至少两个计时任务的情况下,
所述驱动程序,具体用于选择处于空闲状态的计时任务进行计时,并在所选择的计时任务计时所述计时时长后触发计时终止事件。
13.一种应用程序控制装置,其特征在于,应用于应用程序,所述装置包括:
信息发送模块,用于根据驱动设备的符号链接名,向IO管理器发送包含计时时长的控制信息,使得所述IO管理器根据所述控制信息控制所述应用程序对应的驱动程序调用计时函数计时,其中,所述驱动程序用于在计时所述计时时长后触发计时终止事件,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
数据处理模块,用于在监控到所述计时终止事件被触发后,对预设的数据处理状态进行控制。
14.一种应用程序控制装置,其特征在于,应用于驱动程序,所述装置包括:
信息接收模块,用于接收IO管理器发送的、包含计时时长的控制信息,其中,所述控制信息为:所述驱动程序对应的应用程序根据驱动设备的符号链接名向所述IO管理器发送的信息,所述驱动设备为:由所述驱动程序驱动的虚拟设备,所述IO管理器用于:对所述应用程序与所述驱动程序之间进行的IO交互进行管理;
计时模块,用于启动计时,调用计时函数进行计时,并在计时所述计时时长后触发计时终止事件,使得所述应用程序在监控到所述计时终止事件被触发后对预设的数据处理状态进行控制。
CN202011601275.2A 2020-12-30 2020-12-30 一种应用程序控制方法、系统及装置 Active CN112596818B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011601275.2A CN112596818B (zh) 2020-12-30 2020-12-30 一种应用程序控制方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011601275.2A CN112596818B (zh) 2020-12-30 2020-12-30 一种应用程序控制方法、系统及装置

Publications (2)

Publication Number Publication Date
CN112596818A CN112596818A (zh) 2021-04-02
CN112596818B true CN112596818B (zh) 2023-12-05

Family

ID=75203857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011601275.2A Active CN112596818B (zh) 2020-12-30 2020-12-30 一种应用程序控制方法、系统及装置

Country Status (1)

Country Link
CN (1) CN112596818B (zh)

Citations (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385523A (zh) * 2011-10-12 2012-03-21 中山爱科数字科技有限公司 一种云操作系统的驱动安装和管理方法
CN103379428A (zh) * 2012-04-17 2013-10-30 刘迅 无线通信网络的交互式定位监控方法及系统
CN103631537A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 一种虚拟磁盘的管理方法及装置
CN104102857A (zh) * 2014-07-17 2014-10-15 浪潮电子信息产业股份有限公司 一种windows系统下的可执行文件全生命周期安全管理系统
CN104199753A (zh) * 2014-09-04 2014-12-10 中标软件有限公司 一种虚拟机应用服务故障恢复系统及其故障恢复方法
CN104635599A (zh) * 2014-12-20 2015-05-20 蓝星(北京)技术中心有限公司 一种用于动设备的主动预防性维护方法、装置
CN104751080A (zh) * 2015-04-29 2015-07-01 山东华软金盾软件有限公司 一种基于u盘加密的数据存取方法和系统
CN105808467A (zh) * 2016-03-08 2016-07-27 合肥联宝信息技术有限公司 一种利用自定义acpi管理计算机电源的方法
CN105913739A (zh) * 2016-06-13 2016-08-31 山东师范大学 基于虚拟仿真平台的单片机模块化实验实训系统及方法
CN106203083A (zh) * 2016-07-12 2016-12-07 中标软件有限公司 设备驱动程序的预测隔离方法以及其智能加固系统
CN106203665A (zh) * 2015-04-29 2016-12-07 日立金融设备系统(深圳)有限公司 故障报告优化方法以及故障报告优化装置
CN106789356A (zh) * 2017-02-14 2017-05-31 国网河北省电力公司衡水供电分公司 一种统一网络管理监控方法和系统及装置
CN106774027A (zh) * 2017-03-02 2017-05-31 合肥智慧龙图腾知识产权股份有限公司 一种电网智能数据处理系统
CN107221284A (zh) * 2017-07-27 2017-09-29 深圳市华星光电技术有限公司 一种显示面板及其驱动控制方法
CN107315700A (zh) * 2016-04-27 2017-11-03 华为技术有限公司 一种中断处理方法以及相关装置
CN107643972A (zh) * 2017-09-29 2018-01-30 郑州云海信息技术有限公司 一种存储系统中vdisk信息统计方法及装置
CN107944258A (zh) * 2017-11-21 2018-04-20 广东欧珀移动通信有限公司 以服务方式启动应用的控制方法、装置、存储介质及终端
CN108076565A (zh) * 2017-12-28 2018-05-25 鸿利智汇集团股份有限公司 一种可调光led装置及控制方法
CN108427640A (zh) * 2018-01-25 2018-08-21 南京翼辉信息技术有限公司 一种在用户态下调试驱动程序的方法
US10078465B1 (en) * 2015-05-20 2018-09-18 VCE IP Holding Company LLC Systems and methods for policy driven storage in a hyper-convergence data center
CN108628208A (zh) * 2018-04-28 2018-10-09 武汉纺织大学 一种基于分布式io的嵌入式控制系统及其控制方法
CN108830596A (zh) * 2018-05-28 2018-11-16 银盒达信息技术(深圳)有限公司 一种信息的获取方法、信息的获取装置及终端设备
CN109062569A (zh) * 2018-08-08 2018-12-21 中国民用航空飞行学院 虚拟事件模拟条件下多元化驱动引擎构建方法
CN109209047A (zh) * 2018-11-20 2019-01-15 北京千丁互联科技有限公司 智能门锁、门锁监控系统与方法
CN109283830A (zh) * 2018-11-20 2019-01-29 深圳智芯科技有限公司 一种减少走时误差的方法、系统和计时装置
CN109428782A (zh) * 2017-08-30 2019-03-05 杭州华为数字技术有限公司 网络监控的方法和设备
CN109656467A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 云网络的数据传输系统、数据交互方法、装置及电子设备
CN109739618A (zh) * 2018-12-10 2019-05-10 新华三云计算技术有限公司 虚拟机迁移方法及装置
CN109739790A (zh) * 2018-12-12 2019-05-10 珠海亿智电子科技有限公司 一种通用输入输出接口模块
CN109981027A (zh) * 2019-04-19 2019-07-05 博能传动(苏州)有限公司 一种基于三芯片架构的伺服驱动器
CN109976564A (zh) * 2017-12-28 2019-07-05 北京迪文科技有限公司 一种通用的iot人机交互显示系统以及实现方法
CN110061680A (zh) * 2019-04-19 2019-07-26 深圳市雷赛智能控制股份有限公司 电机驱动器及自动化设备
CN110187908A (zh) * 2019-05-30 2019-08-30 苏州浪潮智能科技有限公司 一种gpu驱动程序自动更新的方法及系统
CN110232568A (zh) * 2018-03-06 2019-09-13 中国移动通信集团四川有限公司 移动支付方法、装置、计算机设备及可读存储介质
CN110244983A (zh) * 2019-05-30 2019-09-17 百富计算机技术(深圳)有限公司 固定串口号的方法、终端设备及存储介质
CN110287027A (zh) * 2019-06-26 2019-09-27 青岛网信信息科技有限公司 基于滑动窗口管理资源存储的方法
CN110308934A (zh) * 2018-03-22 2019-10-08 龙芯中科技术有限公司 Hpet驱动方法和装置、可读存储介质及电子设备
CN110347388A (zh) * 2019-07-10 2019-10-18 潍坊科技学院 一种图形化模式编程平台生成装置
CN110502413A (zh) * 2019-07-19 2019-11-26 苏州浪潮智能科技有限公司 一种驱动程序的安全状态信息处理方法及装置
CN110545319A (zh) * 2019-08-23 2019-12-06 武汉久同智能科技有限公司 一种SoC核系统的设计和核间任务通信的实现方法
CN110647375A (zh) * 2019-09-23 2020-01-03 天津卓朗科技发展有限公司 云桌面的图像渲染方法、装置和云服务器
CN110798520A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种业务处理方法、系统、装置及可读存储介质
CN111124502A (zh) * 2018-10-31 2020-05-08 北京中科信电子装备有限公司 一种离子注入机光纤环路主控制器驱动程序提速方法
CN111145033A (zh) * 2019-11-26 2020-05-12 泰康保险集团股份有限公司 服务项目的领取权限处理方法及装置、存储介质
CN111324051A (zh) * 2018-12-17 2020-06-23 深圳市雷赛智能控制股份有限公司 用于闸机的伺服电机驱动器、装置、系统及闸机设备
CN111665762A (zh) * 2020-06-24 2020-09-15 浙江联宜电机有限公司 一种门控驱动的通讯级联电路及通讯级联方法
CN111831439A (zh) * 2020-07-01 2020-10-27 Oppo广东移动通信有限公司 Io请求的处理方法、装置、存储介质及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751861B2 (en) * 2012-02-08 2014-06-10 Lsi Corporation System and method for improved rebuild in RAID
US9727248B2 (en) * 2014-02-05 2017-08-08 Apple Inc. Dynamic IO operation timeout assignment for a solid state drive
US10635621B2 (en) * 2016-11-16 2020-04-28 Baidu Usa Llc Apparatus for controlling and operating an autonomous vehicle
US10732634B2 (en) * 2017-07-03 2020-08-04 Baidu Us Llc Centralized scheduling system using event loop for operating autonomous driving vehicles
US10757189B2 (en) * 2018-04-30 2020-08-25 EMC IP Holding Company LLC Service level objection based input-output selection utilizing multi-path layer of host device

Patent Citations (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385523A (zh) * 2011-10-12 2012-03-21 中山爱科数字科技有限公司 一种云操作系统的驱动安装和管理方法
CN103379428A (zh) * 2012-04-17 2013-10-30 刘迅 无线通信网络的交互式定位监控方法及系统
CN103631537A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 一种虚拟磁盘的管理方法及装置
CN104102857A (zh) * 2014-07-17 2014-10-15 浪潮电子信息产业股份有限公司 一种windows系统下的可执行文件全生命周期安全管理系统
CN104199753A (zh) * 2014-09-04 2014-12-10 中标软件有限公司 一种虚拟机应用服务故障恢复系统及其故障恢复方法
CN104635599A (zh) * 2014-12-20 2015-05-20 蓝星(北京)技术中心有限公司 一种用于动设备的主动预防性维护方法、装置
CN106203665A (zh) * 2015-04-29 2016-12-07 日立金融设备系统(深圳)有限公司 故障报告优化方法以及故障报告优化装置
CN104751080A (zh) * 2015-04-29 2015-07-01 山东华软金盾软件有限公司 一种基于u盘加密的数据存取方法和系统
US10078465B1 (en) * 2015-05-20 2018-09-18 VCE IP Holding Company LLC Systems and methods for policy driven storage in a hyper-convergence data center
CN105808467A (zh) * 2016-03-08 2016-07-27 合肥联宝信息技术有限公司 一种利用自定义acpi管理计算机电源的方法
CN107315700A (zh) * 2016-04-27 2017-11-03 华为技术有限公司 一种中断处理方法以及相关装置
CN105913739A (zh) * 2016-06-13 2016-08-31 山东师范大学 基于虚拟仿真平台的单片机模块化实验实训系统及方法
CN106203083A (zh) * 2016-07-12 2016-12-07 中标软件有限公司 设备驱动程序的预测隔离方法以及其智能加固系统
CN106789356A (zh) * 2017-02-14 2017-05-31 国网河北省电力公司衡水供电分公司 一种统一网络管理监控方法和系统及装置
CN106774027A (zh) * 2017-03-02 2017-05-31 合肥智慧龙图腾知识产权股份有限公司 一种电网智能数据处理系统
CN107221284A (zh) * 2017-07-27 2017-09-29 深圳市华星光电技术有限公司 一种显示面板及其驱动控制方法
CN109428782A (zh) * 2017-08-30 2019-03-05 杭州华为数字技术有限公司 网络监控的方法和设备
CN107643972A (zh) * 2017-09-29 2018-01-30 郑州云海信息技术有限公司 一种存储系统中vdisk信息统计方法及装置
CN109656467A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 云网络的数据传输系统、数据交互方法、装置及电子设备
CN107944258A (zh) * 2017-11-21 2018-04-20 广东欧珀移动通信有限公司 以服务方式启动应用的控制方法、装置、存储介质及终端
CN108076565A (zh) * 2017-12-28 2018-05-25 鸿利智汇集团股份有限公司 一种可调光led装置及控制方法
CN109976564A (zh) * 2017-12-28 2019-07-05 北京迪文科技有限公司 一种通用的iot人机交互显示系统以及实现方法
CN108427640A (zh) * 2018-01-25 2018-08-21 南京翼辉信息技术有限公司 一种在用户态下调试驱动程序的方法
CN110232568A (zh) * 2018-03-06 2019-09-13 中国移动通信集团四川有限公司 移动支付方法、装置、计算机设备及可读存储介质
CN110308934A (zh) * 2018-03-22 2019-10-08 龙芯中科技术有限公司 Hpet驱动方法和装置、可读存储介质及电子设备
CN108628208A (zh) * 2018-04-28 2018-10-09 武汉纺织大学 一种基于分布式io的嵌入式控制系统及其控制方法
CN108830596A (zh) * 2018-05-28 2018-11-16 银盒达信息技术(深圳)有限公司 一种信息的获取方法、信息的获取装置及终端设备
CN109062569A (zh) * 2018-08-08 2018-12-21 中国民用航空飞行学院 虚拟事件模拟条件下多元化驱动引擎构建方法
CN111124502A (zh) * 2018-10-31 2020-05-08 北京中科信电子装备有限公司 一种离子注入机光纤环路主控制器驱动程序提速方法
CN109209047A (zh) * 2018-11-20 2019-01-15 北京千丁互联科技有限公司 智能门锁、门锁监控系统与方法
CN109283830A (zh) * 2018-11-20 2019-01-29 深圳智芯科技有限公司 一种减少走时误差的方法、系统和计时装置
CN109739618A (zh) * 2018-12-10 2019-05-10 新华三云计算技术有限公司 虚拟机迁移方法及装置
CN109739790A (zh) * 2018-12-12 2019-05-10 珠海亿智电子科技有限公司 一种通用输入输出接口模块
CN111324051A (zh) * 2018-12-17 2020-06-23 深圳市雷赛智能控制股份有限公司 用于闸机的伺服电机驱动器、装置、系统及闸机设备
CN109981027A (zh) * 2019-04-19 2019-07-05 博能传动(苏州)有限公司 一种基于三芯片架构的伺服驱动器
CN110061680A (zh) * 2019-04-19 2019-07-26 深圳市雷赛智能控制股份有限公司 电机驱动器及自动化设备
CN110244983A (zh) * 2019-05-30 2019-09-17 百富计算机技术(深圳)有限公司 固定串口号的方法、终端设备及存储介质
CN110187908A (zh) * 2019-05-30 2019-08-30 苏州浪潮智能科技有限公司 一种gpu驱动程序自动更新的方法及系统
CN110287027A (zh) * 2019-06-26 2019-09-27 青岛网信信息科技有限公司 基于滑动窗口管理资源存储的方法
CN110347388A (zh) * 2019-07-10 2019-10-18 潍坊科技学院 一种图形化模式编程平台生成装置
CN110502413A (zh) * 2019-07-19 2019-11-26 苏州浪潮智能科技有限公司 一种驱动程序的安全状态信息处理方法及装置
CN110545319A (zh) * 2019-08-23 2019-12-06 武汉久同智能科技有限公司 一种SoC核系统的设计和核间任务通信的实现方法
CN110647375A (zh) * 2019-09-23 2020-01-03 天津卓朗科技发展有限公司 云桌面的图像渲染方法、装置和云服务器
CN110798520A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种业务处理方法、系统、装置及可读存储介质
CN111145033A (zh) * 2019-11-26 2020-05-12 泰康保险集团股份有限公司 服务项目的领取权限处理方法及装置、存储介质
CN111665762A (zh) * 2020-06-24 2020-09-15 浙江联宜电机有限公司 一种门控驱动的通讯级联电路及通讯级联方法
CN111831439A (zh) * 2020-07-01 2020-10-27 Oppo广东移动通信有限公司 Io请求的处理方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN112596818A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
JP5731334B2 (ja) インシデント・プールの管理方法、システムおよびコンピュータ・プログラム
US9286143B2 (en) Flexible event data content management for relevant event and alert analysis within a distributed processing system
US8756462B2 (en) Configurable alert delivery for reducing the amount of alerts transmitted in a distributed processing system
US8868986B2 (en) Relevant alert delivery in a distributed processing system with event listeners and alert listeners
US8825852B2 (en) Relevant alert delivery in a distributed processing system
US8627154B2 (en) Dynamic administration of component event reporting in a distributed processing system
US8689050B2 (en) Restarting event and alert analysis after a shutdown in a distributed processing system
US9201756B2 (en) Administering event pools for relevant event analysis in a distributed processing system
US8639980B2 (en) Administering incident pools for event and alert analysis
US9246865B2 (en) Prioritized alert delivery in a distributed processing system
US20120110600A1 (en) Relevant Alert Delivery With Event And Alert Suppression In A Distributed Processing System
CN108197032B (zh) Ios应用的主线程卡顿监测方法、介质、设备及系统
US9256482B2 (en) Determining whether to send an alert in a distributed processing system
US20140040673A1 (en) Administering Incident Pools For Incident Analysis
US9377966B2 (en) Method and apparatus for efficiently processing storage commands
US10360089B2 (en) System for monitoring a plurality of distributed devices
CN112596818B (zh) 一种应用程序控制方法、系统及装置
CN113010376B (zh) 一种对存储训练数据的云存储系统的监测方法及装置
CN113010336A (zh) 应用处理器死机现场调试方法及应用处理器
CN114443532B (zh) 一种总线控制方法、装置、车辆、存储介质
CN109254855B (zh) 一种参数传输协议的注册方法、装置及电子设备
CN112579210B (zh) 一种应用程序控制方法及装置
CN113127001B (zh) 一种代码编译过程监控方法、装置、设备和介质
CN112579210A (zh) 一种应用程序控制方法及装置
CN115454638A (zh) 多任务执行方法、装置、计算机可读存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant