CN104142858B - 阻塞任务调度方法及装置 - Google Patents

阻塞任务调度方法及装置 Download PDF

Info

Publication number
CN104142858B
CN104142858B CN201310631829.7A CN201310631829A CN104142858B CN 104142858 B CN104142858 B CN 104142858B CN 201310631829 A CN201310631829 A CN 201310631829A CN 104142858 B CN104142858 B CN 104142858B
Authority
CN
China
Prior art keywords
association
journey
function
mission function
event
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
CN201310631829.7A
Other languages
English (en)
Other versions
CN104142858A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310631829.7A priority Critical patent/CN104142858B/zh
Publication of CN104142858A publication Critical patent/CN104142858A/zh
Priority to PCT/CN2014/092408 priority patent/WO2015078394A1/en
Priority to US15/144,456 priority patent/US9501319B2/en
Application granted granted Critical
Publication of CN104142858B publication Critical patent/CN104142858B/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

一种阻塞任务调度方法,包括:为任务函数分配协程,在所述协程中调用所述任务函数;在调用所述任务函数发生阻塞时将该协程暂停运行,并将该协程设置为暂停状态;监听系统I/O事件,查找与所述系统I/O事件对应的协程,并将该协程设置为运行状态;查找出为运行状态的协程,恢复所述查找到的协程,并对所述系统I/O事件进行相应的处理。此外,还提供了一种阻塞任务调度装置。上述阻塞任务调度方法及装置能够提高系统的并发数量。

Description

阻塞任务调度方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种阻塞任务调度方法及装置。
背景技术
现有的计算机技术中的应用程序框架在执行需要I/O(input/output)的任务时,通常会由于等待输入数据而进入暂停状态。例如,调用socket函数监听端口等待接收远程服务器发送来的数据时,或是监听系统输入事件对应的input流时,均会进入暂停状态,从而使得程序进程无法继续执行。
现有的应用程序框架为了防止程序由于等待I/O而进入暂停状态,通常为以线程为单位执行阻塞任务,即,以多线程的方式执行程序,当某个线程由于执行I/O任务而阻塞时,可在操作系统的调度下切换到其他线程异步执行。
然而,由于操作系统创建和管理线程的开销较大,应用程序框架在业务较繁忙,创建的线程较多时,操作系统的上下文切换的次数会呈几何指数上升,而由于系统性能的限制,使得系统I/O的并发数量下降。
发明内容
基于此,有必要提供一种能够提高系统I/O的并发数量的阻塞任务调度方法。
一种阻塞任务调度方法,包括:
为任务函数分配协程,在所述协程中调用所述任务函数;
在调用所述任务函数发生阻塞时将该协程暂停运行,并将该协程设置为暂停状态;
监听系统I/O事件,查找与所述系统I/O事件对应的协程,并将该协程设置为运行状态;
查找出为运行状态的协程,恢复所述查找到的协程,并对所述系统I/O事件进行相应的处理。
此外,还提供了一种能够提高系统I/O的并发数量的阻塞任务调度装置。
一种阻塞任务调度装置,包括:
协程分配模块,用于为任务函数分配协程,在所述协程中调用所述任务函数;
协程暂停运行模块,用于在调用所述任务函数发生阻塞时将该协程暂停运行,并将该协程设置为暂停状态;
状态更新模块,用于监听系统I/O事件,查找与所述系统I/O事件对应的协程,并将该协程设置为运行状态;
协程恢复模块,查找出为运行状态的协程,恢复所述查找到的协程,并对所述系统I/O事件进行相应的处理。
上述阻塞任务调度方法及装置中,以协程作为任务函数的载体运行,在任务函数发生阻塞时,将其对应的协程暂停运行从而切换到其他为暂停运行的协程上继续异步执行;在暂停运行的协程有相应的系统I/O事件触发时,则结束该协程的暂停状态将其恢复,并将该系统I/O事件分配给该协程处理。与传统技术中以线程或进程为载体运行任务函数的方式相比,创建和调度协程比创建和调度线程或进程需要较少的内存资源,因此,在相同的系统资源限制下,可创建较多的协程来处理并发的系统I/O任务,从而提高了系统I/O的并发数量。
同时,对于开发者而言,上述阻塞任务调度方法及装置的改动仅局限在现有的应用框架中对应用层接口函数的底层实现方式上,即将调用应用层接口函数执行任务函数的载体设置为协程,使得基于应用层框架的业务逻辑代码并不需要修改,开发者只需在现有的应用层框架的底层修改代码即可实现上述阻塞任务调度方法及装置,从而降低了在现有系统上开发和维护的复杂度。
附图说明
图1为一个实施例中阻塞任务调度方法的流程图;
图2为一个实施例中阻塞任务调度装置的结构示意图;
图3为另一个实施例中阻塞任务调度装置的结构示意图;
图4为一个实施例中阻塞任务调度装置的硬件环境图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
在一个实施例中,如图1所示,一种阻塞任务调度装置方法,该方法完全依赖于计算机程序,该计算机程序可运行于基于冯洛伊曼体系的计算机系统上,该方法包括:
该方法包括:
步骤S102,为任务函数分配协程,在协程中调用任务函数。
任务函数即为包含有具体业务逻辑任务的函数。传统技术中,若要异步执行该任务函数,则可预先将该任务函数定义在线程中。在运行时,先创建线程,线程启动后再在该线程中调用该任务函数。
协程(coroutine)通常又被称为微线程和纤程等。协程不像线程或进程运行在操作系统底层,由操作系统统一创建、调度、管理和注销,而是运行在应用程序的内存空间中(用户空间中),创建、调度、管理和注销协程的操作由应用程序进行,操作系统则对其并不知晓也不干涉。也就是说,协程是建立在操作系统上层的应用层的一种多线程机制。现有的多种编程语言均提供了协程机制,例如Lua、ruby和Google GO等。
例如,若应用层框架提供了一个抽象类,并定义了该抽象类中的应用层接口函数被调用时,先为其分配协程,然后在协程的内存空间中执行该应用层接口函数的函数体中的代码。而应用人员在应用层框架上开发应用时,则可实现该抽象类,并在应用层接口函数的函数体的代码中加入任务函数的的定义;在运行时,即在协程的内存空间中调用该任务函数。
步骤S104,在调用任务函数发生阻塞时将该协程暂停运行,并将该协程设置为暂停运行状态。
若任务函数为系统I/O函数,由于任务函数的后续执行需要等待系统I/O事件带来的输入数据,则任务函数会进入阻塞状态。
例如,对于输入法等应用,其输入检测函数在用户未敲击键盘输入字符时,即没有监听到已触发相应的系统输入事件(一种系统I/O事件),则该输入检测函数即会进入阻塞状态,直至用户通过键盘输入字符触发系统I/O事件,该函数方解除阻塞。
再例如,对于socket的接收函数,若在相应的端口没有监听到有连接请求,即没有监听到已触发相应的网络连接事件(一种系统I/O事件),则该接收函数即会进入阻塞状态,直至有连接请求抵达相应的端口触发网络连接事件。
在本实施例中,判断任务函数的是否发生阻塞的步骤之前还可通过hook机制调用预设的与任务函数对应的同名函数,通过同名函数调用任务函数并判断任务函数的是否发生阻塞。
例如,若任务函数为socket函数,则可通过hook机制在操作系统底层检测是否有名为socket的函数调用,若有,则将获取预设的同样名为socket的同名函数,该同名函数可由开发人员预先定义,在调用原socket函数的基础上加入获取socket函数的阻塞状态的代码。当运行时根据hook机制调用该同名函数后,则不仅能够调用操作系统运行库中原始的socket函数,还能获取到该socket函数的阻塞状态,并根据该阻塞状态进行其他的操作。
进一步的,若任务函数为socket函数,则通过同名函数判断任务函数是否发生阻塞的步骤可具体为:通过同名函数获取socket函数的fd状态,根据fd状态判断socket函数是否阻塞。
socket函数的fd状态可分为:
FD_READ,准备读;
FD_WRITE,准备写;
FD_OOB,带外数据到达;
FD_ACCEPT,收到连接;
FD_CONNECT,完成连接;
FD_CLOSE,关闭socket。
当fd状态为FD_READ时,则socket函数进入等待外部连接请求的阻塞状态。
在其他实施例中,若任务函数为其他用于获取系统输入的系统I/O函数(比如键盘字符输入的system input函数),则同样可通过hook机制替换为相应的预设的同名函数进行调用,并在同名函数中对该系统I/O函数的阻塞状态进行判断(通常是一个标识符属性,根据该标识符属性的属性值进行判断)。
在本实施例中,同名函数在检测到任务函数进入阻塞状态后,则可通过调用弃权函数(即yeild函数,由于具有协程机制的编程语言实现用于暂停运行的函数的名称不一样,此处仅以yeild函数为例,实际中并不限于名为yeild的函数)将其所在的协程暂停运行,暂停运行之后该协程即被设置为暂停状态。
优选的,可预设协程管理器对象,协程被创建之后即可添加到该协程管理器对象中进行统一管理,该协程管理区可记录其包含的每个协程的首地址和状态信息。在本实施例中,即可在协程管理器中将该协程的状态信息修改为暂停状态。
采用hook机制以同名函数调用的方式调用任务函数,并判断任务函数是否阻塞,可使得开发人员希望对现有的应用层框架即其上运行的应用做如上改进时,可仅修改应用层框架的部分代码,而不用修改应用中的代码。对于应用而言,其仍然调用的是socket函数,且功能上没有受到任何影响。从而降低了开发人员在进行应用开发和维护时的复杂度。
步骤S106,监听系统I/O事件,查找与系统I/O事件对应的协程,并将该协程设置为运行状态。
系统I/O事件即为系统的输入输出事件,当操作系统的检测到有数据输入输出时,即触发相应的系统I/O事件。若系统I/O事件对应为socket输入,则可获取该socket输入对应的端口信息,根据端口信息查找到对应的协程。例如,在优选的实施方式中,可在协程管理器对象中加入与协程对应的端口信息,在接收到socket输入后即可根据该端口信息查找到相应的协程。查找到该协程后,即可在协程管理器对象中将其暂停状态设置为运行状态。
步骤S108,查找出为运行状态的协程,恢复查找到的协程,并对系统I/O事件进行相应的处理。
所述恢复查找到的协程则可通过重新调用该任务函数即可实现。在协程机制中,再次调用协程中的代码则从上次弃权的代码位置恢复执行。可将系统I/O事件对应的I/O数据传递给任务函数,任务函数即解除阻塞状态。例如socket函数在接收到输入数据时,则进入接收数据流的代码继续执行。
优选的,将该协程设置为运行状态的步骤之后还可将协程添加到预设的非阻塞协程队列的队尾。
查找出为运行状态的协程的步骤为:
在非阻塞协程队列的队首依次取出相应的协程。
也就是说,可在协程管理器对象中设置非阻塞协程队列,对于可异步执行的任务函数对应的协程则可按照先后顺序进行调度恢复。在其他实施例中,也可使用优先级队列、小任务优先队列等存储非阻塞协程。
在一个实施例中,将协程设置为暂停状态的步骤之后还可为所述协程添加阻塞时间戳。
还可查找出阻塞时间戳超时且处于暂停状态的协程,终止协程中任务函数的调用。
也就是说,还可在协程管理器对象中为处于暂停状态的协程加入超时机制,暂停运行的协程的生命周期的长度可为预设的固定值,也可以是在将其设置为暂停状态时输入的参数值。对于处于暂停状态且生命周期超时的协程,则可终止其中任务函数,返回相应的异常。
在一个实施例中,如图2所示,一种阻塞任务调度装置,包括:协程分配模块102、协程暂停运行模块104、状态更新模块106以及协程恢复模块108,其中:
协程分配模块102,用于为任务函数分配协程,在协程中调用任务函数。
协程暂停运行模块104,用于在任务函数的发生阻塞时将其对应的协程暂停运行,并将该协程设置为暂停状态。
状态更新模块106,用于监听系统I/O事件,查找与系统I/O事件对应的协程,并将该协程设置为运行状态。
协程恢复模块108,用于查找出为运行状态的协程,恢复查找到的协程,并对系统I/O事件进行相应的处理。
在一个实施例中,状态更新模块106还用于将被设置为运行状态的协程添加到预设的非阻塞协程队列的队尾。
协程恢复模块108还用于在非阻塞协程队列的队首依次取出相应的协程。
在一个实施例中,如图3所示,阻塞任务调度装置还包括阻塞检测模块110,用于通过hook机制调用预设的与任务函数对应的同名函数,通过同名函数调用任务函数并判断任务函数的是否发生阻塞。
在一个实施例中,任务函数为socket函数。
阻塞检测模块还用于获取socket函数的fd状态,根据fd状态判断socket函数是否阻塞。
在一个实施例中,协程暂停运行模块104还用于为被设置为暂停状态的协程添加阻塞时间戳。
在本实施例中,如图3所示,阻塞任务调度装置还包括超时检测模块112,用于查找出阻塞时间戳超时且处于暂停状态的协程,终止协程中任务函数的调用。
上述阻塞任务调度方法及装置中,以协程作为任务函数的载体运行,在任务函数发生阻塞时,将其对应的协程暂停运行从而切换到其他为暂停运行的协程上继续异步执行;在暂停运行的协程有相应的系统I/O事件触发时,则结束该协程的暂停状态将其恢复,并将该系统I/O事件分配给该协程处理。与传统技术中以线程或进程为载体运行任务函数的方式相比,创建和调度协程比创建和调度线程或进程需要较少的内存资源,因此,在相同的系统资源限制下,可创建较多的协程来处理并发的系统I/O任务,从而提高了系统I/O的并发数量。
同时,对于开发者而言,上述阻塞任务调度方法及装置的改动仅局限在现有的应用框架中对应用层接口函数的底层实现方式上,即将调用应用层接口函数执行任务函数的载体设置为协程,使得基于应用层框架的业务逻辑代码并不需要修改,开发者只需在现有的应用层框架的底层修改代码即可实现上述阻塞任务调度方法及装置,从而降低了在现有系统上开发和维护的复杂度。
如图4所示,图4为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图4中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、应用服务器、web服务器等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图4所示,计算机系统1000包括处理器1010、存储器1020和系统总线1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于发明。例如,计算机系统1000可以包括能在短距离内交换数据的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。
如上面详细描述的,适用于本发明的计算机系统1000能执行处理状态展示方法的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的处理状态展示方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种阻塞任务调度方法,包括:
为任务函数分配运行在应用程序的内存空间中的协程,在所述协程的内存空间中调用所述任务函数;
在调用所述任务函数发生阻塞时将该协程暂停运行,并将该协程设置为暂停状态;
监听系统I/O事件,查找与所述系统I/O事件对应的协程,并将该协程设置为运行状态;
查找出为运行状态的协程,恢复所述查找到的协程,并对所述系统I/O事件进行相应的处理。
2.根据权利要求1所述的阻塞任务调度方法,其特征在于,所述将该协程设置为运行状态的步骤之后还包括:
将所述协程添加到预设的非阻塞协程队列的队尾;
所述查找出为运行状态的协程的步骤为:
在所述非阻塞协程队列的队首依次取出相应的协程。
3.根据权利要求1所述的阻塞任务调度方法,其特征在于,所述判断所述任务函数的是否发生阻塞的步骤之前还包括:
通过hook机制调用预设的与所述任务函数对应的同名函数,通过所述同名函数调用所述任务函数并判断所述任务函数的是否发生阻塞。
4.根据权利要求1所述的阻塞任务调度方法,其特征在于,所述任务函数为socket函数;
所述判断所述任务函数是否发生阻塞的步骤为:
获取所述socket函数的fd状态,根据所述fd状态判断所述socket函数是否阻塞。
5.根据权利要求1所述的阻塞任务调度方法,其特征在于,所述将该协程设置为暂停状态的步骤之后,所述监听系统I/O事件,查找与所述系统I/O事件对应的协程,并将该协程设置为运行状态的步骤之前,还包括:
为所述协程添加阻塞时间戳;
所述方法还包括:
查找出阻塞时间戳超时且处于暂停状态的协程,终止所述协程中任务函数的调用。
6.一种阻塞任务调度装置,其特征在于,包括:
协程分配模块,用于为任务函数分配运行在应用程序的内存空间中的协程,在所述协程的内存空间中调用所述任务函数;
协程暂停运行模块,用于在所述任务函数的发生阻塞时将其对应的协程暂停运行,并将该协程设置为暂停状态;
状态更新模块,用于监听系统I/O事件,查找与所述系统I/O事件对应的协程,并将该协程设置为运行状态;
协程恢复模块,用于查找出为运行状态的协程,恢复所述查找到的协程,并对所述系统I/O事件进行相应的处理。
7.根据权利要求6所述的阻塞任务调度装置,其特征在于,所述状态更新模块还用于将所述被设置为运行状态的协程添加到预设的非阻塞协程队列的队尾;
所述协程恢复模块还用于在所述非阻塞协程队列的队首依次取出相应的协程。
8.根据权利要求6所述的阻塞任务调度装置,其特征在于,所述装置还包括阻塞检测模块,用于通过hook机制调用预设的与所述任务函数对应的同名函数,通过所述同名函数调用所述任务函数并判断所述任务函数的是否发生阻塞。
9.根据权利要求8所述的阻塞任务调度装置,其特征在于,所述任务函数为socket函数;
所述阻塞检测模块还用于获取所述socket函数的fd状态,根据所述fd状态判断所述socket函数是否阻塞。
10.根据权利要求6所述的阻塞任务调度装置,其特征在于,所述协程暂停运行模块还用于为所述被设置为暂停状态的协程添加阻塞时间戳;
所述装置还包括超时检测模块,用于查找出阻塞时间戳超时且处于暂停状态的协程,终止所述协程中任务函数的调用。
CN201310631829.7A 2013-11-29 2013-11-29 阻塞任务调度方法及装置 Active CN104142858B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310631829.7A CN104142858B (zh) 2013-11-29 2013-11-29 阻塞任务调度方法及装置
PCT/CN2014/092408 WO2015078394A1 (en) 2013-11-29 2014-11-28 Method and apparatus for scheduling blocking tasks
US15/144,456 US9501319B2 (en) 2013-11-29 2016-05-02 Method and apparatus for scheduling blocking tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310631829.7A CN104142858B (zh) 2013-11-29 2013-11-29 阻塞任务调度方法及装置

Publications (2)

Publication Number Publication Date
CN104142858A CN104142858A (zh) 2014-11-12
CN104142858B true CN104142858B (zh) 2016-09-28

Family

ID=51852039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310631829.7A Active CN104142858B (zh) 2013-11-29 2013-11-29 阻塞任务调度方法及装置

Country Status (3)

Country Link
US (1) US9501319B2 (zh)
CN (1) CN104142858B (zh)
WO (1) WO2015078394A1 (zh)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142858B (zh) * 2013-11-29 2016-09-28 腾讯科技(深圳)有限公司 阻塞任务调度方法及装置
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US10798146B2 (en) * 2015-07-01 2020-10-06 Oracle International Corporation System and method for universal timeout in a distributed computing environment
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
CN106598801A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 一种协程监控方法及装置
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
CN106980546B (zh) * 2016-01-18 2021-08-27 阿里巴巴集团控股有限公司 一种任务异步执行方法、装置及系统
CN105760237B (zh) * 2016-02-05 2019-03-22 南京贝伦思网络科技股份有限公司 一种基于协程机制的通讯方法
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
EP3475817A1 (en) * 2016-06-28 2019-05-01 Amazon Technologies Inc. Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
WO2018182813A1 (en) * 2017-03-31 2018-10-04 Mcafee, Llc Asynchronous data objects for an event driven programming language
CN107147641A (zh) * 2017-05-10 2017-09-08 深圳市万游引力科技有限公司 一种信息处理方法、系统及计算机存储介质
CN109308215B (zh) * 2017-07-28 2022-05-24 广联达科技股份有限公司 一种基于纤程的交互方法、交互系统及计算机装置
CN107678945B (zh) * 2017-09-04 2020-04-21 清华大学 一种网页应用阻塞的判断方法及装置
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
CN108089919B (zh) * 2017-12-21 2021-01-15 北京云杉世纪网络科技有限公司 一种并发处理api请求的方法及系统
CN108259483A (zh) * 2018-01-08 2018-07-06 广州恩业电子科技有限公司 在线监测设备通信数据包通用接收方法
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10747645B2 (en) * 2018-04-27 2020-08-18 Microsoft Technology Licensing, Llc Selectively tracing portions of computer process execution
US10740219B2 (en) * 2018-04-27 2020-08-11 Workman Nydegger Selectively tracing portions of computer process execution
CN108874511A (zh) * 2018-06-15 2018-11-23 国家电网公司东北分部 一种基于微线程技术的通信服务快速响应系统
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN109257411B (zh) * 2018-07-31 2021-12-24 平安科技(深圳)有限公司 一种业务处理方法、调用管理系统和计算机设备
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
CN110955503B (zh) * 2018-09-27 2023-06-27 深圳市创客工场科技有限公司 任务调度方法及装置
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
CN111142982A (zh) * 2018-11-02 2020-05-12 鸿合科技股份有限公司 一种事件执行方法及装置、电子设备
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
CN109885386A (zh) * 2019-01-03 2019-06-14 北京潘达互娱科技有限公司 一种多任务执行的方法、装置及电子设备
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
CN110618868A (zh) * 2019-08-29 2019-12-27 凡普数字技术有限公司 对数据进行批量写入的方法、装置以及存储介质
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
CN110879742B (zh) * 2019-10-15 2023-08-11 平安科技(深圳)有限公司 虚拟机异步创建内部快照方法、装置及存储介质
CN110990667B (zh) * 2019-10-29 2023-06-23 内蒙古大学 一种基于协程技术的多端大学生电子档案管理系统
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
CN111782482B (zh) * 2020-07-16 2022-08-12 平安国际智慧城市科技股份有限公司 接口压力测试方法及相关设备
CN112000449B (zh) * 2020-07-27 2023-03-31 新华三大数据技术有限公司 一种异步任务处理方法及系统
WO2022027175A1 (en) 2020-08-03 2022-02-10 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain transaction processing systems and methods
EP3970009B1 (en) * 2020-08-03 2023-11-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain transaction processing systems and methods
CN111897667A (zh) * 2020-08-07 2020-11-06 杭州安恒信息技术股份有限公司 一种基于事件驱动和lua协程的异步通信方法及装置
CN112040317B (zh) * 2020-08-21 2022-08-09 海信视像科技股份有限公司 事件响应方法及显示设备
CN114090196A (zh) * 2020-08-24 2022-02-25 华为技术有限公司 一种协程切换的方法、装置及设备
EP3997572A1 (en) 2020-09-28 2022-05-18 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain transaction processing systems and methods
CN112346835B (zh) * 2020-10-22 2022-12-09 上海瀚之友信息技术服务有限公司 一种基于协程的调度处理方法及系统
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
CN112579210A (zh) * 2020-12-30 2021-03-30 上海众源网络有限公司 一种应用程序控制方法及装置
CN112910794B (zh) * 2021-01-07 2023-04-07 国网河北省电力有限公司信息通信分公司 一种多路e1组网的负载均衡系统
CN112764840A (zh) * 2021-02-27 2021-05-07 中电万维信息技术有限责任公司 一种动态化任务配置及调度方法
CN113347151B (zh) * 2021-04-28 2023-04-28 厦门海迈科技股份有限公司 一种基于socket共享内存的数据交互方法
CN113553172B (zh) * 2021-06-11 2024-02-13 济南浪潮数据技术有限公司 一种ipmi服务执行方法、装置及存储介质
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN114466151B (zh) * 2022-04-11 2022-07-12 武汉中科通达高新技术股份有限公司 国标相机的视频存储系统、计算机设备及存储介质
CN116089027A (zh) * 2022-06-14 2023-05-09 浙江保融科技股份有限公司 一种基于jvm的非阻塞分布式计划任务调度方法
CN115292025A (zh) * 2022-09-30 2022-11-04 神州数码融信云技术服务有限公司 任务调度方法及装置、计算机设备及计算机可读存储介质
FR3140969A1 (fr) * 2022-10-17 2024-04-19 Commissariat à l'énergie atomique et aux énergies alternatives Procédé de gestion d’un appel système et produit programme d’ordinateur associé

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102612157A (zh) * 2012-02-24 2012-07-25 哈尔滨工业大学 无线传感器网络的嵌入式实时调度系统
CN103002506A (zh) * 2011-09-14 2013-03-27 鼎桥通信技术有限公司 一种调度方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918248A (en) * 1996-12-30 1999-06-29 Northern Telecom Limited Shared memory control algorithm for mutual exclusion and rollback
CN1228714C (zh) * 2001-03-05 2005-11-23 皇家菲利浦电子有限公司 用于从阻塞任务收回预算资源的方法和系统
US7784051B2 (en) * 2005-11-18 2010-08-24 Sap Ag Cooperative scheduling using coroutines and threads
US8213294B2 (en) * 2006-06-27 2012-07-03 International Business Machines Corporation Mechanism for detecting and clearing I/O fabric lockup conditions for error recovery
US8195860B2 (en) * 2008-02-06 2012-06-05 Broadcom Corporation Computing device with handheld and extended computing devices
US8209694B2 (en) * 2009-10-13 2012-06-26 Turck Holding Gmbh Single-stack real-time operating system for embedded systems
CN104142858B (zh) * 2013-11-29 2016-09-28 腾讯科技(深圳)有限公司 阻塞任务调度方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002506A (zh) * 2011-09-14 2013-03-27 鼎桥通信技术有限公司 一种调度方法及装置
CN102612157A (zh) * 2012-02-24 2012-07-25 哈尔滨工业大学 无线传感器网络的嵌入式实时调度系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
什么是 Event Loop;阮一峰;《http://www.ruanyifeng.com/blog/2013/10/event_loop.html》;20131021;全文 *

Also Published As

Publication number Publication date
WO2015078394A1 (en) 2015-06-04
US20160246643A1 (en) 2016-08-25
CN104142858A (zh) 2014-11-12
US9501319B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
CN104142858B (zh) 阻塞任务调度方法及装置
US10467025B2 (en) Managing delivery of code and dependent data using application containers
CN108512695B (zh) 监控应用卡顿的方法及装置
US9451100B2 (en) Method for transmitting notification information and electronic device thereof
CN106133698B (zh) 用于用户模式崩溃报告的框架
US8756613B2 (en) Scalable, parallel processing of messages while enforcing custom sequencing criteria
US7877091B2 (en) Method and system for executing a container managed application on a processing device
CN108255585B (zh) Sdk异常控制及应用程序运行方法、装置及其设备
CN111800462A (zh) 微服务实例处理方法、装置、计算机设备及存储介质
CN105426231A (zh) 多进程处理装置和多进程处理方法
JPWO2014065115A1 (ja) ルール分配サーバ、イベント処理システム、方法及びプログラム
CN112181724A (zh) 大数据容灾方法、装置和电子设备
CN108733536A (zh) 监控管理系统及方法
CN109614089B (zh) 数据访问代码的自动生成方法、装置、设备及存储介质
CN116088716B (zh) 窗口管理方法和终端设备
JP2005228309A (ja) ルールに基づいて決定的に行う、コードへのオブジェクトのディスパッチ
CN106484536B (zh) 一种io调度方法、装置和设备
CN111796865A (zh) 一种字节码文件修改方法、装置、终端设备及介质
CN110704782A (zh) 页面响应方法、装置、电子设备及存储介质
CN113110941B (zh) 使用应用容器管理代码和依赖性数据的传递
WO2020133455A1 (zh) 应用程序的管理方法、装置、存储介质及电子设备
KR101638162B1 (ko) 모바일 단말의 어플리케이션의 실행을 지원하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
CN116266126A (zh) 模态窗口的控制方法、装置、设备及存储介质
CN115794286A (zh) Gui输入数据的执行方法、装置和电子设备
CN112363815A (zh) Redis集群处理方法、装置、电子设备及计算机可读存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20200825

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right