CN113051051A - 视频设备的调度方法、装置、设备及存储介质 - Google Patents
视频设备的调度方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113051051A CN113051051A CN202110274214.8A CN202110274214A CN113051051A CN 113051051 A CN113051051 A CN 113051051A CN 202110274214 A CN202110274214 A CN 202110274214A CN 113051051 A CN113051051 A CN 113051051A
- Authority
- CN
- China
- Prior art keywords
- task scheduling
- scheduling
- scheduling signal
- task
- signal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012544 monitoring process Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开公开了视频设备的调度方法、装置、设备及存储介质,涉及物联网技术领域,以及信息流技术领域。具体实现方案为:监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号;若包含至少一个任务调度信号,则确定抢占任务调度信号;确定抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与第一任务调度信号队列对应的调度线程;通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至第一任务调度信号队列满足预设的线程释放条件,当前调度周期结束。由此,在提高了任务调度信号的响应速度的同时,降低了系统资源占用以保证了系统响应性能。
Description
技术领域
本公开涉及物联网技术领域,以及信息流技术领域,尤其涉及一种视频设备的调度方法、装置、设备及存储介质。
背景技术
视频监控摄像头等前端的视频设备,作为视频采集编码设备被很多视频应用系统当做一个视频资源使用,比如。视频监控系统、人工智能视频分析盒子等。
相关技术中,为了使用前端视频资源,应用系统与视频前端之间需要建立一个交互通道,来完成与前端设备间的各种信息交互,包括:前端设备在线状态探测、前端能力参数查询、编码带宽、帧率、分辨率等视频参数协商、启动拉流、停止拉流、前端与应用系统之间的心跳等。
然而,对于只接入单路视频前端的系统,只需要分配一个单独的线程,来作为交互通道全权处理与该前端的所有交互动作,但对于要接入多路视频前端的系统,亟需一种提高交互的效率及减少系统资源占用的调度方式。
发明内容
本公开提供了一种视频设备的调度方法、装置、设备及存储介质,在提高了任务调度信号的响应速度的同时,降低了系统资源占用以保证了系统响应性能。
根据本公开的一方面,提供了一种视频设备的调度方法,包括:在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号;若包含至少一个所述任务调度信号,则在所述至少一个所述任务调度信号中确定抢占任务调度信号;确定所述抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与所述第一任务调度信号队列对应的调度线程;通过所述调度线程执行所述第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至所述第一任务调度信号队列满足预设的线程释放条件,所述当前调度周期结束。
根据本公开的另一方面,提供了一种视频设备的调度装置,包括:监测模块,用于在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号;抢占模块,用于在包含至少一个所述任务调度信号时,在所述至少一个所述任务调度信号中确定抢占任务调度信号;第一确定模块,用于若包含至少一个所述任务调度信号,则在所述至少一个所述任务调度信号中确定抢占任务调度信号;调度模块,用于通过所述调度线程执行所述第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至所述第一任务调度信号队列满足预设的线程释放条件,所述当前调度周期结束。
根据本公开的又一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例的视频设备的调度方法。
根据本公开的再一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面实施例的视频设备的调度方法。
根据本公开的还一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面实施例的视频设备的调度方法。
本公开的实施例,至少具有如下技术效果:
在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号,若包含至少一个任务调度信号,则在至少一个任务调度信号中确定抢占任务调度信号,确定抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与第一任务调度信号队列对应的调度线程,进而,通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至第一任务调度信号队列满足预设的线程释放条件,当前调度周期结束。由此,在提高了任务调度信号的响应速度的同时,降低了系统资源占用以保证了系统响应性能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据现有技术的多路前端设备的调度场景示意图;
图2是根据本公开第一实施例的视频设备的调度方法的示意图;
图3是根据本公开第二实施例的任务调度信号队列生成场景示意图;
图4是根据本公开第三实施例的多路前端设备的调度场景示意图;
图5是根据本公开第四实施例的视频设备的调度方法的示意图;
图6是根据本公开第五实施例的视频设备的调度装置的结构示意图;
图7是根据本公开第六实施例的视频设备的调度装置的结构示意图;
图8是根据本公开第七实施例的视频设备的调度装置的结构示意图;
图9是用来实现本公开实施例的视频设备的调度的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
针对上述背景技术中提到的,应用系统与视频前端之间需要建立一个交互通道,来完成与前端设备间的各种信息交互,则当系统要接入多路前端的视频设备时,则如图1所示,系统通常为每个需要接入的视频设备分配一个线程来全权处理和该前端的所有交互动作。然而,每接入一个视频前端都需要分配一个线程来执行与该前端的设备的交互指令,在接入的视频前端数量比较少,比如1~16路时基本能满足需求。但当要接入数量增多,比如16路以上时,就会导致CPU在不同线程间来回切换,系统性能和响应速度都会大幅下降。
为了解决上述技术问题,本公开提出一种基于线程复用的视频前端接入交互调度技术。
具体而言,图2是根据本公开一个实施例的视频设备的调度方法的路程图,如图2所示,该方法包括:
步骤201,在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号。
其中,视频设备可以包括但不限于前端的基于IP网络的视频监控摄像头等任意视频设备,任务调度信号包括但不限于对视频设备的各种调度任务,比如,上线检测、能力协调、拉流等。
可以理解的是,为了便于对视频设备的任务管理,监测所述每个视频设备的任务调度信号,在一些可能的实施例中,任务调度信号包括其所对应的视频设备标识以及任务标识,其中,视频设备标识可以包括设备编号等任意可以唯一定位视频设备的信息,任务标识可以包括任务关键词等可以唯一确定调度任务内容的信息。
因此,提取任务调度信号中的视频设备标识,且根据预设对应关系,确定与视频设备标识对应的第二任务调度信号队列,将任务调度信号列入第二任务调度信号队列的队尾。
也可以理解,在本实施例中,按照任务调度信号的信号有前到后的发生顺序,对每个视频设备的任务调度信号排列,生成对应任务调度信号队列。
举例而言,如图3所示,对于视频设备A,其根据发生顺序由前到后的顺序,接收到的针对视频设备A的任务调度信号为信号1、信号2、信号3,则每接收到一个信号将其作为新的队尾排列。在处理任务调度信号时,从任务调度信号队列的第一个任务调度信号开始顺序处理。
在本实施例中,对每个视频设备的候选任务调度信号队列持续监测,监测的单位为调度周期,需要强调的是,本实施例中每个周期之间的分割并不是根据时间长度分割,而是根据任务调度信号队列中的任务调度信号的执行情况确定的,后续将会在实施例中具体说明。
在本实施例中,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号,该任务调度信号是在该调度周期内还未被执行的信号。
步骤202,若包含至少一个任务调度信号,则在至少一个任务调度信号中确定抢占任务调度信号。
在本实施例中,若包含至少一个任务调度信号,则考虑到CPU同一时刻运行一个线程,因此,在至少一个任务调度信号中确定抢占任务调度信号,确定当前抢占线程成功的抢占任务调度信号。
步骤203,确定抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与第一任务调度信号队列对应的调度线程。
在本实施例中,确定抢占任务调度信号所在的第一任务调度信号队列,比如,根据抢占任务调度信号中的设备标识确定其所属的视频设备,确定该视频设备所在的任务调度信号序列为第一任务调度信号队列。
可以理解,在本实施例中,预先构建一个线程池,该线程池中包含多个线程,多个线程并不与视频设备一一绑定,每个线程都可以处理多个视频设备的任务调度信号,当有很多任务要执行时,线程在不同任务队列上切换。
在本公开的一个实施例中,为了兼顾系统资源的充分利用,以及系统的响应速度,获取预设处理器的处理核数量,该预设的处理器用于处理视频设备的调度任务,构建线程池,并在线程池中设置处理核数量的调度线程,该调度线程数量和处理器核的数量相同。当然,在一些可能的实施例中,为了进一步降低对系统资源的占用,线程池中的线程也可以小于处理器核的数量。
在本实施例中,确定抢占任务调度信号所在的第一任务调度信号队列后,在预设的线程池中确定与第一任务调度信号队列对应的调度线程,当空闲线程为多个时,可以抢占任一个空闲线程作为调度线程。
步骤204,通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至第一任务调度信号队列满足预设的线程释放条件,当前调度周期结束。
在本实施例中,通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,可以理解,在本实施例中,第一任务调度信号队列中有多个任务调度序列时,可以在该调度线程上执行,提高了响应实时性。
在本实施例中,当第一任务调度信号队列满足预设的线程释放条件后,跳出当前的调度周期,执行下一个调度周期,由此可见,本实施例中的调度周期之间的分割是线程释放条件,其中,当线程释放条件满足时,调度线程释放为空闲线程,剩余的任务调度信号队列公平进入下一轮的空闲线程的抢占。
为了使得本领域的技术人员更加清楚的了解本公开实施例的视频设备的调度方法,下面结合具体的应用场景进行说明,其中,在该应用场景中,包含前端系统、前端设备、调度任务模块以及调度任务对应的任务调度信号队列,其中,调度任务模块预先设置了每个前端的视频设备可执行的任务模块,调度任务模块和前端的视频设备之间通过API接口连接。
在本示例中,如图4所示,预先在前端系统中构建一个线程池,线程池中线程数固定为CPU核数,在线程池与调度任务之间添加了一个信号队列,每个视频设备的任务队列有任务时给信号队列添加一个信号,监听信号队列,有信号时在线程池中分配一个调度线程去执行信号指向的任务队列里的任务,当有很多视频设备的任务要执行时,采用分时复用的方式,通过调度周期抢占复用调度线程。
综上,本公开实施例的视频设备的调度方法,在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号,若包含至少一个任务调度信号,则在至少一个任务调度信号中确定抢占任务调度信号,确定抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与第一任务调度信号队列对应的调度线程,进而,通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至第一任务调度信号队列满足预设的线程释放条件,当前调度周期结束。由此,在提高了任务调度信号的响应速度的同时,降低了系统资源占用以保证了系统响应性能。
在实际执行过程中,任务调度信号可能有多个,参与抢占线程的任务调度信号可能来源于一个线程也可能来源于多个线程,因此为了确保所有的任务调度信号队列公平抢占线程,在不同的实施例中,抢占策略不同。
在一些可能的示例中,为了保证调度任务执行的实时性,如图5所示,在至少一个任务调度信号中确定抢占任务调度信号,包括:
步骤501,获取每个任务调度信号的调度时间。
在本实施例中,获取每个任务调度信号的调度时间,该调度时间可以根据任务调度信号接收到的时间确定。
步骤502,确定调度时间最早的任务调度信号为抢占任务调度信号。
在本实施例中,确定调度时间最早的任务调度信号为抢占任务调度信号,以保证调度任务响应的实时性。
在一些可能的实施例中,若是调度时间最早的任务调度信号为多个,则可以在多个调度时间最早的任务调度信号中随机选择一个作为抢占任务调度信号。
在另一些可能的示例中,可以根据任一随机算法在至少一个任务调度信号中随机确定抢占任务调度信号。
综上,本公开实施例的视频设备的调度方法,为不同的任务调度序列公平确定抢占任务调度信号,提高了抢占任务调度信号确定的灵活性,保证了的视频设备的调度的适用性。
基于上述实施例,本公开的视频设备的调度方法中,根据预设的线程释放条件作为调度周期之间的分割,在不同的应用场景中,预设的线程释放条件不同,示例如下:
示例一:
在本示例中,预设的线程释放条件,包括:第一任务调度信号队列中的所有任务调度信号执行完毕。
在本实施例中,有调度任务时,空闲线程公平抢占任务,一个前端同一时刻只能占用一个调度线程,如果一个视频设备同一时刻有多个任务要调度,都会由一个调度线程去执行,调度线程执行完任务后就空闲下来了,又会去任务调度信号队列里消费下一个任务调度信号队列,从而可以继续为其它任务服务。
示例二:
在本示例中,一个视频设备的任务调度信号特别多时,执行完一部分任务调度信号后会把调度线程让出,后面未完成任务调度信号队列继续排队抢占后面的空闲线程,从而保证各个前端的视频设备被公平的分配到线程时间片。
因而,在本实施例中,预设的线程释放条件为:第一任务调度信号队列在当前调度周期内的执行时长,大于预设的时间阈值,其中,预设的时间阈值可以根据实验数据标定。
示例三:
在本实施例中,预设的线程释放条件为:第一任务调度信号队列在当前调度周期内的执行的任务调度信号,大于预设的数量阈值,其中,预设的数量阈值可以根据实验数据标定。
综上,本公开实施例的视频设备的调度方法,通过预设的线程释放条件协调任务调度信号队列中的线程抢占,保证了不同任务调度信号队列线程抢占的公平性。
为了实现上述实施例,本公开还提出了一种视频设备的调度装置。图6是根据本公开一个实施例的视频设备的调度装置的结构示意图,如图6所示,该视频设备的调度装置包括:监测模块610、抢占模块620、第一确定模块630、调度模块640,其中,
监测模块610,用于在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号;
抢占模块620,用于在包含至少一个任务调度信号时,在至少一个任务调度信号中确定抢占任务调度信号;
第一确定模块630,用于若包含至少一个任务调度信号,则在至少一个任务调度信号中确定抢占任务调度信号;
调度模块640,用于通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至第一任务调度信号队列满足预设的线程释放条件,当前调度周期结束。
在本公开的一个实施例中,如图7所示,该视频设备的调度装置包括:监测模块710、抢占模块720、第一确定模块730、调度模块740、提取模块750、第二确定模块760、队列生成模块770,其中,
视频设备的调度装置包括:监测模块710、抢占模块720、第一确定模块730、调度模块740的功能与上述实施例中的监测模块610、抢占模块620、第一确定模块630、调度模块640的功能相同,在此不再赘述。
在本公开的实施例中,监测模块710,还用于监测每个视频设备的任务调度信号;
提取模块750,用于提取任务调度信号中的视频设备标识;
第二确定模块760,用于根据预设的对应关系,确定与视频设备标识对应的第二任务调度信号队列;
队列生成模块770,用于将任务调度信号列入第二任务调度信号队列的队尾。
在本公开的一个实施例中,如图8所示,该视频设备的调度装置包括:监测模块810、抢占模块820、第一确定模块830、调度模块840、获取模块850和构建模块860,其中,
视频设备的调度装置包括:监测模块810、抢占模块820、第一确定模块830、调度模块840的功能与上述实施例中的监测模块610、抢占模块620、第一确定模块630、调度模块640的功能相同,在此不再赘述。
获取模块850,用于获取预设处理器的处理核数量;
构建模块860,用于构建线程池,并在线程池中设置处理核数量的调度线程。
需要说明的是,前述对视频设备的调度方法实施例的解释说明,也适用于本公开实施例的视频设备的调度装置,其实现原理类似,在此不再赘述。
综上,本公开实施例的视频设备的调度装置,在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号,若包含至少一个任务调度信号,则在至少一个任务调度信号中确定抢占任务调度信号,确定抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与第一任务调度信号队列对应的调度线程,进而,通过调度线程执行第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至第一任务调度信号队列满足预设的线程释放条件,当前调度周期结束。由此,在提高了任务调度信号的响应速度的同时,降低了系统资源占用以保证了系统响应性能。
在本公开的一个实施例中,第一确定模块830,具体用于:
获取每个任务调度信号的调度时间;
确定调度时间最早的任务调度信号为抢占任务调度信号。
需要说明的是,前述对视频设备的调度方法实施例的解释说明,也适用于本公开实施例的视频设备的调度装置,其实现原理类似,在此不再赘述。
综上,本公开实施例的视频设备的调度装置,为不同的任务调度序列公平确定抢占任务调度信号,提高了抢占任务调度信号确定的灵活性,保证了的视频设备的调度的适用性。
在本公开的一个实施例中,预设的线程释放条件,包括:
第一任务调度信号队列中的所有任务调度信号执行完毕,或,
第一任务调度信号队列在当前调度周期内的执行时长,大于预设的时间阈值。
需要说明的是,前述对视频设备的调度方法实施例的解释说明,也适用于本公开实施例的视频设备的调度装置,其实现原理类似,在此不再赘述。
综上,本公开实施例的视频设备的调度装置,通过预设的线程释放条件协调任务调度信号队列中的线程抢占,保证了不同任务调度信号队列线程抢占的公平性。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如方法视频设备的调度。例如,在一些实施例中,方法视频设备的调度可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的方法视频设备的调度的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法视频设备的调度。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
服务器也可以为分布式系统的服务器,或者是,结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (13)
1.一种视频设备的调度方法,包括:
在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号;
若包含至少一个所述任务调度信号,则在所述至少一个所述任务调度信号中确定抢占任务调度信号;
确定所述抢占任务调度信号所在的第一任务调度信号队列,并在预设的线程池中确定与所述第一任务调度信号队列对应的调度线程;
通过所述调度线程执行所述第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至所述第一任务调度信号队列满足预设的线程释放条件,所述当前调度周期结束。
2.如权利要求1所述的方法,其中,在所述监测预设的每个视频设备的候选任务调度信号队列中,在所述当前调度周期内是否包含任务调度信号之前,还包括:
监测所述每个视频设备的任务调度信号;
提取所述任务调度信号中的视频设备标识;
根据预设的对应关系,确定与所述视频设备标识对应的第二任务调度信号队列;
将所述任务调度信号列入所述第二任务调度信号队列的队尾。
3.如权利要求1所述的方法,其中,所述在所述至少一个所述任务调度信号中确定抢占任务调度信号,包括:
获取每个所述任务调度信号的调度时间;
确定所述调度时间最早的任务调度信号为所述抢占任务调度信号。
4.如权利要求1所述的方法,其中,在所述在预设的线程池中确定与所述第一任务调度信号队列对应的调度线程之前,还包括:
获取预设处理器的处理核数量;
构建线程池,并在所述线程池中设置所述处理核数量的调度线程。
5.如权利要求1所述的方法,其中,所述预设的线程释放条件,包括:
所述第一任务调度信号队列中的所有任务调度信号执行完毕,或,
所述第一任务调度信号队列在当前调度周期内的执行时长,大于预设的时间阈值。
6.一种视频设备的调度装置,包括:
监测模块,用于在每个调度周期内,监测预设的每个视频设备的候选任务调度信号队列中,在当前调度周期内是否包含任务调度信号;
抢占模块,用于在包含至少一个所述任务调度信号时,在所述至少一个所述任务调度信号中确定抢占任务调度信号;
第一确定模块,用于若包含至少一个所述任务调度信号,则在所述至少一个所述任务调度信号中确定抢占任务调度信号;
调度模块,用于通过所述调度线程执行所述第一任务调度信号队列中的任务调度信号,以调度对应的视频设备,直至所述第一任务调度信号队列满足预设的线程释放条件,所述当前调度周期结束。
7.如权利要求6所述的装置,其中,
所述监测模块,还用于监测所述每个视频设备的任务调度信号;
提取模块,用于提取所述任务调度信号中的视频设备标识;
第二确定模块,用于根据预设的对应关系,确定与所述视频设备标识对应的第二任务调度信号队列;
队列生成模块,用于将所述任务调度信号列入所述第二任务调度信号队列的队尾。
8.如权利要求6所述的装置,其中,所述第一确定模块,具体用于:
获取每个所述任务调度信号的调度时间;
确定所述调度时间最早的任务调度信号为所述抢占任务调度信号。
9.如权利要求6所述的装置,还包括:
获取模块,用于获取预设处理器的处理核数量;
构建模块,用于构建线程池,并在所述线程池中设置所述处理核数量的调度线程。
10.如权利要求6所述的装置,其中,所述预设的线程释放条件,包括:
所述第一任务调度信号队列中的所有任务调度信号执行完毕,或,
所述第一任务调度信号队列在当前调度周期内的执行时长,大于预设的时间阈值。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的视频设备的调度方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的视频设备的调度方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的视频设备的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110274214.8A CN113051051B (zh) | 2021-03-12 | 2021-03-12 | 视频设备的调度方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110274214.8A CN113051051B (zh) | 2021-03-12 | 2021-03-12 | 视频设备的调度方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051051A true CN113051051A (zh) | 2021-06-29 |
CN113051051B CN113051051B (zh) | 2024-02-27 |
Family
ID=76512096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110274214.8A Active CN113051051B (zh) | 2021-03-12 | 2021-03-12 | 视频设备的调度方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051051B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333756A (zh) * | 2022-10-17 | 2022-11-11 | 安徽中科晶格技术有限公司 | 基于智能合约的物联网设备调度方法、系统及设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418460B1 (en) * | 1997-02-18 | 2002-07-09 | Silicon Graphics, Inc. | System and method for finding preempted threads in a multi-threaded application |
US20050015768A1 (en) * | 2002-12-31 | 2005-01-20 | Moore Mark Justin | System and method for providing hardware-assisted task scheduling |
CN104199730A (zh) * | 2014-08-29 | 2014-12-10 | 浪潮集团有限公司 | 一种基于同步i/o复用机制的单线程多任务处理方法 |
CN109144696A (zh) * | 2018-08-30 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
US20190347129A1 (en) * | 2018-05-11 | 2019-11-14 | Futurewei Technologies, Inc. | User space pre-emptive real-time scheduler |
CN111694647A (zh) * | 2020-06-08 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于自动驾驶车辆的任务调度方法、设备及存储介质 |
CN111949386A (zh) * | 2020-07-09 | 2020-11-17 | 北京齐尔布莱特科技有限公司 | 一种任务调度方法、系统、计算装置及可读存储介质 |
CN112000455A (zh) * | 2020-09-10 | 2020-11-27 | 华云数据控股集团有限公司 | 一种多线程任务处理方法、装置及电子设备 |
US20210034416A1 (en) * | 2019-07-30 | 2021-02-04 | Samsung Electronics Co., Ltd. | Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (smp) environment |
-
2021
- 2021-03-12 CN CN202110274214.8A patent/CN113051051B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418460B1 (en) * | 1997-02-18 | 2002-07-09 | Silicon Graphics, Inc. | System and method for finding preempted threads in a multi-threaded application |
US20050015768A1 (en) * | 2002-12-31 | 2005-01-20 | Moore Mark Justin | System and method for providing hardware-assisted task scheduling |
CN104199730A (zh) * | 2014-08-29 | 2014-12-10 | 浪潮集团有限公司 | 一种基于同步i/o复用机制的单线程多任务处理方法 |
US20190347129A1 (en) * | 2018-05-11 | 2019-11-14 | Futurewei Technologies, Inc. | User space pre-emptive real-time scheduler |
CN109144696A (zh) * | 2018-08-30 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
US20210034416A1 (en) * | 2019-07-30 | 2021-02-04 | Samsung Electronics Co., Ltd. | Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (smp) environment |
CN111694647A (zh) * | 2020-06-08 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于自动驾驶车辆的任务调度方法、设备及存储介质 |
CN111949386A (zh) * | 2020-07-09 | 2020-11-17 | 北京齐尔布莱特科技有限公司 | 一种任务调度方法、系统、计算装置及可读存储介质 |
CN112000455A (zh) * | 2020-09-10 | 2020-11-27 | 华云数据控股集团有限公司 | 一种多线程任务处理方法、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
YOUSUNG YANG ET AL: "Adaptive Queue Management in Embedded Edge Devices for Object Detection with low Latency", 《2020ICTC》 * |
胡萌;赵卫东;王志成;韩下林;: "线程池设计与动态优化", 电脑知识与技术, no. 36 * |
赵祝: "视频监控系统数据在网络中传输与拥塞控制的研究", 《信息通信》, no. 12 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333756A (zh) * | 2022-10-17 | 2022-11-11 | 安徽中科晶格技术有限公司 | 基于智能合约的物联网设备调度方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113051051B (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025205B (zh) | 一种分布式系统中的训练模型的方法及设备 | |
CN112527509B (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN113407347B (zh) | 资源调度方法、装置、设备和计算机存储介质 | |
CN104518987A (zh) | 并行多线程报文处理的方法和装置 | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
CN114327918B (zh) | 调整资源量的方法、装置、电子设备和存储介质 | |
US20240202024A1 (en) | Thread processing methods, scheduling component, monitoring component, server, and storage medium | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN112860401B (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN113051051B (zh) | 视频设备的调度方法、装置、设备及存储介质 | |
CN115080209A (zh) | 系统资源调度方法、装置、电子设备及存储介质 | |
CN113360266B (zh) | 任务处理方法和装置 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
Kesidis et al. | Network calculus for parallel processing | |
CN114422799A (zh) | 视频文件的解码方法、装置、电子设备、程序产品 | |
CN113961289A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN113986497A (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN117112222A (zh) | 一种请求处理方法、装置、电子设备及存储介质 | |
CN116303132A (zh) | 一种数据缓存方法、装置、设备以及存储介质 | |
CN113821174B (zh) | 存储处理方法、装置、网卡设备及存储介质 | |
CN115757120A (zh) | 压力测试方法、装置、电子设备及可读存储介质 | |
CN112698934B (zh) | 资源调度方法和装置、pmd调度装置、电子设备、存储介质 | |
CN113327602A (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 |