KR20220133858A - 태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 - Google Patents

태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 Download PDF

Info

Publication number
KR20220133858A
KR20220133858A KR1020227020274A KR20227020274A KR20220133858A KR 20220133858 A KR20220133858 A KR 20220133858A KR 1020227020274 A KR1020227020274 A KR 1020227020274A KR 20227020274 A KR20227020274 A KR 20227020274A KR 20220133858 A KR20220133858 A KR 20220133858A
Authority
KR
South Korea
Prior art keywords
terminal device
task
computational resource
processed
target
Prior art date
Application number
KR1020227020274A
Other languages
English (en)
Inventor
후아카이 리우
지아페이 우
시아오케 펭
구앙쳉 장
준지에 얀
Original Assignee
베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드
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 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드 filed Critical 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드
Publication of KR20220133858A publication Critical patent/KR20220133858A/ko

Links

Images

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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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 the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품에 관한 것으로서, 상기 태스크 스케줄링 방법은, 처리될 태스크의 제1 태스크 타입에 따라, 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계 - 복수 개의 단말 기기는 제1 단말 기기를 포함함 - ; 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계; 및 처리될 태스크의 처리 데이터를 타깃 단말 기기로 발송함으로써, 타깃 단말 기기로 하여금 처리될 태스크를 실행하도록 하는 단계를 포함한다.

Description

태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품
관련 출원의 상호 참조
본 발명은 출원번호가 202110302393.1이고, 출원일자가 2021년 03월 22일이며, 발명의 명칭이 “태스크 스케줄링 방법 및 장치, 전자 기기 및 저장 매체”인 중국 특허 출원에 기반하여 제출하였고, 상기 중국 특허 출원의 우선권을 주장하는 바, 상기 중국 특허 출원의 전부 내용은 참조로서 본 발명에 인용된다.
본 발명은 컴퓨터 기술 분야에 관한 것으로서, 특히 태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품에 관한 것이다.
현재, 엔드 클라우드 협업의 형태를 사용하여 업무 데이터를 처리할 수 있고, 예를 들어, 컴퓨팅 능력을 구비하지 않는 단말 기기는, 수집된 업무 데이터를 클라우드에 직접 업로드하여, 클라우드가 책임지고 처리하며; 컴퓨팅 능력을 구비하는 단말 기기(예를 들어 스마트 카메라)는, 그 업무 데이터를 자체적으로 처리하여, 처리 결과를 클라우드에 업로드할 수 있다.
본 발명은 태스크 스케줄링의 기술 방안을 제공한다.
본 발명의 일 측면에 따라, 클라우드 서버에 적용되는 태스크 스케줄링 방법을 제공하고, 상기 태스크 스케줄링 방법은, 처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계 - 상기 복수 개의 단말 기기는 상기 제1 단말 기기를 포함함 - ; 상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계; 및 상기 처리될 태스크의 처리 데이터를 상기 타깃 단말 기기로 발송함으로써, 상기 타깃 단말 기기로 하여금 상기 처리될 태스크를 실행하도록 하는 단계를 포함한다. 상기 형태를 통해, 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현함으로써, 단말 기기의 연산 자원으로 하여금 충분히 사용될 수 있도록 할 뿐만 아니라, 클라우드 서버의 연산 압력을 완화시킬 수도 있다.
가능한 구현 형태에 있어서, 상기 클라우드 서버에는 상기 복수 개의 단말 기기와 태스크 타입 사이의 대응 관계가 저장되어 있고, 상기 처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계는, 상기 대응 관계 및 상기 제1 태스크 타입에 따라, 상기 복수 개의 단말 기기에서 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계를 포함한다. 상기 형태를 통해, 제1 태스크 타입과 매칭되는 제1 단말 기기를 빠르고 편리하게 결정할 수 있다.
가능한 구현 형태에 있어서, 상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계는, 상기 제1 단말 기기에서 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제2 단말 기기를 결정하는 단계 - 상기 제1 단말 기기는 상기 제2 단말 기기를 포함함 - ; 및 상기 제2 단말 기기가 복수 개인 경우, 상기 제2 단말 기기의 제2 잔여 연산 자원 및 상기 제2 단말 기기가 상기 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 상기 제2 단말 기기에서 상기 타깃 단말 기기를 결정하는 단계를 포함한다. 상기 형태를 통해, 제2 잔여 연산 자원과 태스크에 필요한 연산 자원이 서로 매칭되는 타깃 단말 기기를 효과적으로 결정하여, 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현함으로써, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용될 수 있도록 할 수 있다.
가능한 구현 형태에 있어서, 상기 제2 단말 기기의 제2 잔여 연산 자원 및 상기 제2 단말 기기가 상기 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 상기 제2 단말 기기에서 상기 타깃 단말 기기를 결정하는 단계는, 상기 제2 연산 자원과 상기 제2 잔여 연산 자원 사이의 비율값을 결정하는 단계; 및 상기 비율값에서의 최대값과 대응되는 제2 단말 기기를, 상기 타깃 단말 기기로 결정하는 단계를 포함한다. 상기 형태를 통해, 연산 자원이 많지 않은 단말 기기를 최대한 사용하고, 연산 자원이 충족한 기기를 더욱 많은 연산 자원이 필요한 태스크에 남겨줌으로써, 단말 기기의 연산 자원을 최대한 사용하여, 단말 기기의 컴퓨팅 자원에 대한 충분한 사용을 구현할 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 상기 복수 개의 단말 기기에 상기 제1 태스크 타입과 매칭되는 제1 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하는 단계를 더 포함한다. 상기 형태를 통해, 처리될 태스크를 지원하는 단말 기기가 없는 경우를 효과적으로 대응할 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 상기 제1 단말 기기에 제1 잔여 연산 자원이 상기 제1 연산 자원보다 큰 제2 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하는 단계를 더 포함한다. 상기 형태를 통해, 제1 단말 기기의 제1 잔여 연산 자원이 처리될 태스크의 연산 자원 수요를 만족하지 않는 경우를 효과적으로 대응할 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 상기 타깃 단말 기기에 의해 리턴된 상기 처리될 태스크의 태스크 처리 결과를 수신하는 단계 - 상기 태스크 처리 결과는 상기 처리 데이터에 대해 처리하는 처리 결과를 포함함 - 를 더 포함한다. 상기 형태를 통해, 클라우드 서버가 태스크 처리 결과를 수신한 다음, 태스크 처리 결과에 대해 추가로 처리하도록 할 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 상기 단말 기기에 의해 업로드된 기기 정보를 획득하는 단계 - 상기 기기 정보는 상기 단말 기기의 기기 식별자, 상기 단말 기기와 매칭되는 태스크 타입, 상기 태스크 타입에 대응되는 태스크의 연산 자원, 상기 단말 기기의 총 연산 자원 및 상기 단말 기기의 잔여 연산 자원을 포함함 - 를 더 포함한다. 상기 형태를 통해, 후속적으로 단말 기기의 기기 정보에 기반하여 타깃 단말 기기를 효율적으로 결정하도록 할 수 있다.
본 발명의 일 측면에 따라, 타깃 단말 기기에 적용되는 태스크 스케줄링 방법을 제공하고, 상기 태스크 스케줄링 방법은, 클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 경우, 상기 처리 데이터에 대해 처리하여, 상기 처리될 태스크의 태스크 처리 결과를 얻는 단계; 및 상기 태스크 처리 결과를 상기 클라우드 서버에 송신하는 단계를 포함하며, 여기서, 상기 타깃 단말 기기는 상기 클라우드 서버가 상기 처리될 태스크의 제1 태스크 타입, 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 결정한 것이고, 상기 제1 단말 기기는 상기 제1 태스크 타입과 서로 매칭된다. 상기 형태를 통해, 결정된 타깃 단말 기기로 하여금 처리될 태스크를 실행함으로써, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용되어, 클라우드 서버의 연산 압력을 완화시킬 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 상기 타깃 단말 기기의 기기 정보를 결정하는 단계; 및 상기 타깃 단말 기기의 기기 정보를 상기 클라우드 서버에 송신하여, 상기 클라우드 서버로 하여금 상기 타깃 단말 기기의 기기 정보를 저장하도록 하는 단계 - 상기 타깃 단말 기기의 기기 정보는, 타깃 단말 기기의 기기 식별자, 상기 타깃 단말 기기와 매칭되는 제2 태스크 타입, 상기 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원, 상기 타깃 단말 기기의 총 연산 자원 및 상기 타깃 단말 기기의 잔여 연산 자원을 포함함 - 를 더 포함한다. 상기 형태를 통해, 클라우드 서버가 단말 기기의 기기 정보에 기반하여, 태스크 스케줄링을 효과적으로 수행하도록, 클라우드 서버와 연결되는 단말 기기의 기기 정보를 클라우드 서버에 송신하는 것을 구현할 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 기설정 샘플링 주기에 따라 샘플링된 상기 타깃 단말 기기가 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보를 획득하는 단계; 및 상기 제1 상태에서의 작동 정보 및 상기 제2 상태에서의 작동 정보에 따라, 상기 타깃 연산 자원을 결정하는 단계 - 상기 제1 상태는 상기 타깃 단말 기기가 태스크를 실행하지 않는 상태를 포함하고, 상기 제2 상태는 상기 타깃 단말 기기가 상기 제2 태스크 타입에 대응되는 태스크를 실행하는 상태를 포함함 - 를 더 포함한다. 상기 형태를 통해, 무부하 상태에서의 작동 정보 및 태스크 작동 상태에서의 작동 정보에 따라, 태스크 작동에 필요한 연산 자원을 더욱 정확하게 결정할 수 있다.
가능한 구현 형태에 있어서, 상기 제1 상태에서의 작동 정보 및 상기 제2 상태에서의 작동 정보에 따라, 상기 타깃 연산 자원을 결정하는 단계는, 상기 제1 상태에서의 작동 정보의 제1 평균값 및 상기 제2 상태에서의 작동 정보의 제2 평균값을 결정하는 단계; 및 상기 제2 평균값과 상기 제1 평균값 사이의 차이값에서의 최대값을, 상기 타깃 연산 자원으로 결정하는 단계를 포함한다. 상기 형태를 통해, 애플리케이션 프로그램이 무부하 상태에서 연산 자원의 결정에 대한 간섭을 줄임으로써, 태스크에 필요한 연산 자원을 정확하게 결정할 수 있다.
가능한 구현 형태에 있어서, 상기 작동 정보는 상기 타깃 단말 기기의 CPU 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함하고, 상기 제2 평균값과 상기 제1 평균값 사이의 차이값은, 상기 제2 상태에서의 CPU 사용률의 평균값과 상기 제1 상태에서의 CPU 사용률의 평균값 사이의 차이값; 상기 제2 상태에서의 하드웨어 가속 엔진 사용률의 평균값과 상기 제1 상태에서의 하드웨어 가속 엔진 사용률의 평균값 사이의 차이값; 상기 제2 상태에서의 메모리 사용률의 평균값과 상기 제1 상태에서의 메모리 사용률의 평균값 사이의 차이값; 및 상기 제2 상태에서의 메모리 대역폭 사용률의 평균값과 상기 제1 상태에서의 메모리 대역폭 사용률의 평균값 사이의 차이값 중 적어도 하나를 포함한다. 상기 형태를 통해, 태스크에 필요한 타깃 연산 자원을 용이하게 측정하여, 타깃 연산 자원에 대해 정량화를 수행할 수 있다.
본 발명의 일 측면에 따라, 클라우드 서버에 적용되는 태스크 스케줄링 장치를 제공하고, 상기 태스크 스케줄링 장치는, 처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하도록 구성되는 제1 단말 기기 결정 모듈 - 상기 복수 개의 단말 기기는 상기 제1 단말 기기를 포함함 - ; 상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하도록 구성되는 타깃 단말 기기 결정 모듈; 및 상기 처리될 태스크의 처리 데이터를 상기 타깃 단말 기기로 발송함으로써, 상기 타깃 단말 기기로 하여금 상기 처리될 태스크를 실행하도록 구성되는 처리 데이터 발송 모듈을 포함한다.
본 발명의 일 측면에 따라, 타깃 단말 기기에 적용되는 태스크 스케줄링 장치를 제공하고, 상기 태스크 스케줄링 장치는, 클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 경우, 상기 처리 데이터에 대해 처리하여, 상기 처리될 태스크의 태스크 처리 결과를 얻도록 구성되는 처리 모듈; 및 상기 태스크 처리 결과를 상기 클라우드 서버에 송신하도록 구성되는 처리 결과 송신 모듈을 포함하며, 여기서, 상기 타깃 단말 기기는 상기 클라우드 서버가 상기 처리될 태스크의 제1 태스크 타입, 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 결정한 것이고, 상기 제1 단말 기기는 상기 제1 태스크 타입과 서로 매칭된다.
본 발명의 일 측면에 따라서, 전자 기기를 제공하고, 상기 전자 기기는, 프로세서; 및 프로세서가 실행 가능한 명령어를 저장하도록 구성된 메모리를 포함하며; 여기서, 상기 프로세서는 상기 메모리에 저장된 명령어를 호출하여, 상기 클라우드 서버측 방법 또는 타깃 단말 기기측 방법을 실행하도록 구성된다.
본 발명의 일 측면에 따라, 컴퓨터 프로그램 명령어가 저장된 컴퓨터 판독 가능 저장 매체를 제공하고, 상기 컴퓨터 프로그램 명령어가 프로세서에 의해 수행될 때 상기 클라우드 서버측 방법 또는 타깃 단말 기기측 방법을 구현한다.
본 발명의 일 측면에 따라, 컴퓨터 판독 가능 코드를 포함하는 컴퓨터 프로그램을 제공하고, 상기 컴퓨터 판독 가능 코드가 전자 기기에서 작동될 때, 상기 전자 기기에서의 프로세서는 상기 클라우드 서버측 방법 또는 타깃 단말 기기측 방법을 구현하도록 구성된다.
본 발명의 실시예에 있어서, 처리될 태스크의 제1 태스크 타입에 따라, 처리될 태스크를 실행할 수 있는 제1 단말 기기를 결정할 수 있고, 다음 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 잔여 연산 자원이 처리될 태스크에 필요한 연산 자원을 만족하는 타깃 단말 기기를 결정할 수 있음으로써, 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현하여, 단말 기기의 연산 자원으로 하여금 충분히 사용될 수 있도록 할 뿐만 아니라, 클라우드 서버의 연산 압력을 완화시킬 수도 있다.
이해해야 할 것은, 이상의 일반적인 설명 및 아래의 세부적인 설명은 다만 예시적 및 해석적인 것일 뿐이고, 본 발명을 한정하려는 것은 아니다. 아래 참조 도면이 예시적 실시예에 대한 상세한 설명에 따라, 본 발명의 다른 특징 및 측면은 명확해진다.
여기서 도면은 명세서에 통합되어 본 명세서의 일부를 구성하고, 이러한 도면은 본 발명에 부합되는 실시예를 도시하며, 명세서와 함께 본 발명의 기술 방안을 설명하기 위한 것이다.
도 1은 본 발명의 실시예에 따른 엔드 클라우드 협업 시스템의 예시도를 도시한다.
도 2는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도를 도시한다.
도 3는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도를 도시한다.
도 4는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도를 도시한다.
도 5는 본 발명의 실시예에 따른 태스크 스케줄링 장치의 블록도를 도시한다.
도 6는 본 발명의 실시예에 따른 태스크 스케줄링 장치의 블록도를 도시한다.
도 7은 본 발명의 실시예에 따른 전자 기기의 블록도를 도시한다.
도 8은 본 발명의 실시예에 따른 전자 기기의 블록도를 도시한다.
아래에 도면을 참조하여 본 발명의 다양한 예시적 실시예, 특징 및 측면을 상세하게 설명한다. 도면에서 동일한 도면 표시는 기능이 동일하거나 유사한 구성 요소를 나타낸다. 비록 실시예의 다양한 측면이 도면에서 도시되었지만, 특별히 지적하지 않는 한, 비례대로 제도될 필요는 없다.
여기서 전문적으로 사용되는 "예시적"이란 단어는 "예, 실시예 또는 설명적인 것으로 사용됨"을 의미한다. 여기서 "예시적"으로 설명된 임의의 실시예는 다른 실시예보다 더 우수하거나 좋은 것으로 해석될 필요는 없다.
본 명세서에서 용어 “및/또는”은 다만 연관 대상의 연관 관계를 설명하는 것이고, 세 가지 관계가 존재할 수 있음을 나타내며, 예를 들어, A 및/또는 B는, A가 단독적으로 존재, A 및 B가 동시에 존재, B가 단독적으로 존재하는 세 가지 상황을 나타낼 수 있다. 또한, 본문에서 용어 "적어도 하나"는 복수에서의 어느 하나 또는 복수에서의 적어도 두 개 중의 어느 하나의 조합을 나타내고, 예를 들어, A, B 및 C 중 적어도 하나를 포함하는 것은, A, B, C로 구성된 집합에서 선택된 어느 하나 또는 복수 개의 요소를 포함하는 것을 나타낼 수 있다.
또한, 본 발명을 더욱 잘 설명하기 위해, 아래의 구체적 실시 형태에서 수많은 구체적 세부 사항을 제공한다. 본 분야의 기술자는 일부 구체적 세부 사항이 없더라도, 본 발명은 마찬가지로 실시될 수 있음을 이해해야 한다. 일부 실제의 예에 있어서, 본 발명의 요지가 부각되도록 본 분야의 기술자들이 익숙한 방법, 수단, 구성 요소 및 회로에 대해서는 상세한 설명을 하지 않는다.
도 1은 본 발명의 실시예에 따른 엔드 클라우드 협업 시스템의 예시도를 도시한다. 도 1에 도시된 바와 같이, 상기 시스템은 클라우드 서버(11) 및 복수 개의 단말 기기(12)로 구성된다. 여기서 클라우드 서버(11)는 강력한 컴퓨팅 능력을 구비하고, 일부 단말 기기(12)는 일정한 컴퓨팅 능력(즉 예를 들어 스마트 카메라와 같은 스마트 단말)을 구비하며, 어떤 단말 기기(12)는 컴퓨팅 능력(즉 예를 들어 비스마트 카메라와 같은 비스마트 단말)이 거의 없다. 엔드 클라우드 협업 시스템은, 네트워크를 통해 클라우드 서버(11) 즉 클라우드 및 단말 기기(12)를 연관시키고, 클라우드 관리 소프트웨어(13) 및 클라우드 프록시 소프트웨어(14)를 사용하여 클라우드 및 단말 기기(12)에 대한 데이터 인터랙션 및 태스크 관리를 완료함으로써, 양자가 시스템의 전체 기능을 공동으로 완료할 수 있도록 한다.
클라우드는 전체 시스템의 태스크 스케줄링, 저장, 태스크 컴퓨팅, 운영 유지보수 등 기능을 책임지고, 여기서 태스크 컴퓨팅은 두 개의 측면을 포함하며, 첫 번째는 비스마트 단말에 의해 업로드된 소스 데이터에 대해 처리하는 것이고, 두 번째는 스마트 단말에 의해 업로드된 소스 데이터에 대해 처리한 결과에 대해, 2차 처리하여, 최종적인 통계 결정을 하는 것이다.
단말 기기(12)는 소스 데이터 수집 및 전달, 저장, 운영 유지보수 등 기능을 책임진다. 스마트 단말은, 자체적인 태스크 처리도 책임지고, 처리된 결과를 클라우드에 업로드하며; 비스마트 단말은, 자체적으로 처리 능력이 없고, 클라우드 프록시 소프트웨어(14)를 통해 소스 데이터를 클라우드 서버(11)로 송신하여 처리해야 한다.
상기 엔드 클라우드 협업 시스템을 대상으로 하여, 일부 단말 기기의 총 연산 자원은 자체적 컴퓨팅 태스크를 작동하는데 필요한 연산 자원보다 훨씬 크고, 관련 기술에서 단말 기기의 연산 자원에 대해 충분히 사용하지 못함으로써, 연산 자원의 낭비를 초래한다. 여기서, 연산 자원은 단말 기기의 해시레이트를 포함할 수 있고, 해시레이트는 단말 기기가 제공할 수 있는 컴퓨팅 능력을 설명하기 위한 것일 수 있으며, 해시레이트는 컴퓨팅 자원, 저장 자원, 저장 대역폭 등 조건의 영향을 받는다. 해시레이트 수요는 태스크에 필요한 컴퓨팅 능력을 설명하기 위한 것이다.
본 발명의 실시예의 태스크 스케줄링 방법에 따라, 단말 기기에 다양한 태스크를 미리 설정하고, 단말 기기의 총 연산 자원, 잔여 연산 자원 및 각 미리 설정된 태스크를 실행하는데 필요한 연산 자원에 대해 정량화를 수행하며 클라우드에 보고하며; 클라우드가 처리될 태스크를 수신한 다음, 단말 기기의 잔여 연산 자원 및 단말 기기에 따라 처리될 태스크를 실행하는데 필요한 연산 자원을 대상으로 하여, 클라우드에 액세스된 단말 기기에서 태스크 타입 및 연산 자원이 매칭되는 단말 기기를 찾을 수 있음으로써; 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현하고, 단말 기기의 능력 범위를 확장하여, 단말 기기의 연산 자원으로 하여금 충분히 응용되며, 동시에 추가로 클라우드의 연산 압력을 완화시킬 수 있다.
도 2는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도를 도시하고, 도 2에 도시된 바와 같이, 상기 태스크 스케줄링 방법은 클라우드 서버에 적용되며, 상기 태스크 스케줄링 방법은 아래 단계를 포함한다.
단계 S11에 있어서, 처리될 태스크의 제1 태스크 타입에 따라, 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정 - 복수 개의 단말 기기는 제1 단말 기기를 포함함 - 한다.
단계 S12에 있어서, 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 제1 단말 기기에서 타깃 단말 기기를 결정한다.
단계 S13에 있어서, 처리될 태스크의 처리 데이터를 타깃 단말 기기로 발송함으로써, 타깃 단말 기기로 하여금 처리될 태스크를 실행하도록 한다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은 클라우드 서버의 프로세서가 메모리에 저장된 컴퓨터 판독 가능 명령어를 호출하는 형태를 통해 구현될 수 있다.
가능한 구현 형태에 있어서, 단말 기기는 스마트 카메라, 사용자 기기(User Equipment, UE), 모바일 기기, 사용자 단말, 셀룰러 폰, 무선 전화, 개인용 정보 단말기(Personal Digital Assistant, PDA), 휴대용 기기, 컴퓨팅 기기, 차량 탑재 기기, 웨어러블 기기 등 컴퓨팅 능력을 구비하는 기기를 포함할 수 있다.
가능한 구현 형태에 있어서, 클라우드 서버와 단말 기기 사이에는 네트워크를 통해 연결되어, 데이터 전송을 수행할 수 있고; 다른 연결 형태일 수도 있으며, 이에 대해 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 처리될 태스크는 이미지 처리 태스크를 포함할 수 있고, 이미지 처리 태스크는 이미지 인식, 이미지 분할, 이미지 분류, 키포인트 검출 중 적어도 하나를 포함할 수 있으며; 처리 데이터는 한 프레임 이미지 또는 다중 프레임 이미지를 포함한다.
여기서, 이미지 인식 태스크는 예를 들어 얼굴 인식 태스크, 차량 번호판 인식 태스크, 교통법 위반 인식 태스크 등을 포함할 수 있지만 이에 한정되지 않고; 이미지 분할은 예를 들어 인물 분할 태스크, 차량 번호판 분할 태스크 등을 포함할 수 있지만 이에 한정되지 않으며; 이미지 분류 태스크는 예를 들어 차량 번호판 색상 분류 태스크, 차량 번호판 타입 분류 태스크 등을 포함할 수 있지만 이에 한정되지 않고; 키포인트 검출 태스크는 예를 들어 인체 키포인트 검출 태스크, 차량 번호판 윤곽 키포인트 검출 태스크 등을 포함할 수 있지만 이에 한정되지 않는다.
가능한 구현 형태에 있어서, 처리될 태스크는 처리 데이터(예를 들어 이미지)에 대해 처리하는데 필요한 전체 또는 부분적 알고리즘을 포함할 수 있고, 예를 들어, 얼굴 인식 태스크를 대상으로 하여, 얼굴 검출, 얼굴 특징 추출, 얼굴 비교 등 알고리즘을 포함할 수 있으며; 인물 분할 태스크를 대상으로 하여, 인물 분할 알고리즘을 포함할 수 있고; 이해해야 할 것은, 얼굴 인식 태스크 및 인물 분할 태스크를 동시에 포함할 수도 있다.
가능한 구현 형태에 있어서, 처리될 태스크는 음성 인식 태스크, 텍스트 인식 태스크 등을 더 포함할 수 있다. 상응하게, 처리 데이터는 오디오, 문자 등을 포함할 수 있다. 처리될 태스크의 태스크 타입에 대해, 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 단말 기기에 여러가지 태스크를 미리 설정하고, 예를 들어, 단말 기기에 얼굴 인식 태스크 및 차량 번호판 인식 태스크를 미리 설정하여 실행할 수 있으며, 차량 번호판 인식 태스크 및 교통법 위반 인식 태스크를 미리 설정할 수도 있다. 각 단말 기기에 미리 설정된 태스크에 대해, 실제 수요에 따라 설정될 수 있고, 이에 대해 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 단계 S11 전에, 상기 태스크 스케줄링 방법은 단말 기기에 의해 업로드된 기기 정보를 획득하는 단계 - 기기 정보는 단말 기기의 기기 식별자, 단말 기기와 매칭되는 태스크 타입, 태스크 타입에 대응되는 태스크의 연산 자원, 단말 기기의 총 연산 자원 및 단말 기기의 잔여 연산 자원을 포함할 수 있음 - 를 더 포함할 수 있다. 상기 형태를 통해, 후속적으로 단말 기기의 기기 정보에 기반하여 타깃 단말 기기를 효율적으로 결정하도록 할 수 있다.
여기서, 기기 식별자는 각 단말 기기에 대해 표시하기 위한 것일 수 있고; 단말 기기와 매칭되는 태스크 타입은, 단말 기기에 미리 설정된 다양한 태스크의 태스크 타입일 수 있으며; 태스크 타입의 태스크의 연산 자원은, 단말 기기에 미리 설정된 다양한 태스크에 각각 필요한 연산 자원일 수 있고; 단말 기기의 총 연산 자원은 단말 기기 전체의 연산 자원을 의미할 수 있다.
가능한 구현 형태에 있어서, 기기 정보는 단말 기기에서 작동 중인 태스크의 연산 자원을 더 포함할 수 있다. 단말 기기의 잔여 연산 자원은 단말 기기의 총 연산 자원과 작동 중인 태스크의 연산 자원의 차이를 의미할 수 있다.
가능한 구현 형태에 있어서, 단말 기기에 미리 설정된 다양한 태스크에 각각 필요한 연산 자원은, 단말 기기가 태스크를 작동할 때의 작동 정보에 따라 결정될 수 있다.
가능한 구현 형태에서, 클라우드 서버에는 상기 단말 기기의 기기 정보가 저장될 수 있고, 즉 복수 개의 기기 식별자와 태스크 타입 사이의 대응 관계가 저장되어 있으며, 이것은 클라우드 서버에 복수 개의 단말 기기와 태스크 타입 사이의 대응 관계가 저장되어 있는 것에 해당된다. 가능한 구현 형태에 있어서, 단계 S11에 있어서, 상기 처리될 태스크의 제1 태스크 타입에 따라, 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계 - 복수 개의 단말 기기는 제1 단말 기기를 포함함 - 는, 대응 관계 및 제1 태스크 타입에 따라, 복수 개의 단말 기기에서 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계를 포함할 수 있다. 상기 형태를 통해, 제1 태스크 타입과 매칭되는 제1 단말 기기를 빠르고 편리하게 결정할 수 있다.
가능한 구현 형태에 있어서, 단말 기기의 기기 정보가 저장되어 있는 데이터베이스를 검색하는 것을 통해, 대응 관계 및 제1 태스크 타입에 따라, 단말 기기에서 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 것, 즉, 처리될 태스크가 이미 미리 설정된 제1 단말 기기를 결정하는 것을 구현할 수 있다.
가능한 구현 형태에 있어서, 처리될 태스크의 제1 태스크 타입에 따라, 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정할 수 없는 경우, 즉, 복수 개의 단말 기기에 제1 태스크 타입과 매칭되는 제1 단말 기기가 존재하지 않는 경우가 존재할 수도 있고, 상기 경우에 있어서, 클라우드 서버에서 처리될 태스크를 실행할 수 있다. 상기 형태를 통해, 처리될 태스크를 지원하는 단말 기기가 없는 경우를 효과적으로 대응할 수 있다.
이해할 수 있는 것은, 연산 자원은 단말 기기가 제공할 수 있는 컴퓨팅 능력을 설명하기 위한 것일 수 있고, 하드웨어 성능, 메모리, 저장 대역폭 등 조건에 의해 한정되며, 태스크를 실행하는데 필요한 연산 자원(즉 연산 자원 수요)은 태스크가 상이한 단말 기기에서 작동될 때 상기 단말 기기가 제공해야 되는 컴퓨팅 능력을 설명하기 위한 것이다. 단말 기기의 프로세서 성능, 메모리, 메모리 대역폭 등은 상이하기에, 동일한 태스크가 상이한 단말 기기에서 작동될 때 필요한 연산 자원은 상이하다.
가능한 구현 형태에 있어서, 단계 S12에 있어서, 제1 단말 기기가 복수 개일 때, 상기 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원은, 처리될 태스크가 각 제1 단말 기기에서 작동될 때 필요한 연산 자원을 의미할 수 있고, 즉 제1 연산 자원은 복수 개를 포함하며; 제1 단말 기기가 하나일 때, 상기 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원은, 처리될 태스크가 상기 단말 기기에서 작동될 때 필요한 연산 자원을 의미할 수 있다.
상술한 바와 같이, 클라우드 서버에는 단말 기기의 기기 정보가 저장되어 있고, 복수 개의 단말 기기는 제1 단말 기기를 포함하면, 제1 단말 기기의 제1 잔여 연산 자원 및 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원은, 제1 단말 기기의 기기 식별자에 따라 기기 정보를 조회하여 획득할 수 있다.
가능한 구현 형태에 있어서, 단계 S13에 있어서, 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계는, 제1 단말 기기에서 제1 잔여 연산 자원이 제1 연산 자원보다 큰 타깃 단말 기기를 결정하는 단계를 포함할 수 있다.
예를 들어, 태스크 A가 단말 기기 B1에서 작동하는데 필요한 연산 자원은 2이고, 단말 기기 B2에서 작동하는데 필요한 연산 자원은 3이며, 단말 기기 B1의 잔여 연산 자원은 3이고, 단말 기기 B2의 잔여 연산 자원은 2이며; 단말 기기 B1의 잔여 연산 자원은 태스크 A가 단말 기기 B1에서 작동하는데 필요한 연산 자원보다 크고, 즉 단말 기기 B1의 잔여 연산 자원이 태스크 A가 단말 기기 B1에서 작동될 때의 연산 자원 수요를 만족하기에; 단말 기기 B1은 타깃 단말 기기일 수 있다.
상술한 바와 같이, 처리 데이터는 한 프레임 이미지 또는 다중 프레임 이미지를 포함할 수 있고, 여기서 다중 프레임 이미지는 비디오 스트림일 수 있으며; 물론 다른 타입의 데이터를 포함할 수도 있고, 처리 데이터와 처리될 태스크는 대응되며, 실시함에 있어서 어떤 타입의 데이터를 사용할지는 실제 수요에 따라 결정될 수 있고, 이에 대해 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 네트워크 전송 프로토콜을 통해, 처리될 태스크의 처리 데이터를 타깃 단말 기기로 발송함으로써, 타깃 단말 기기로 하여금 처리될 태스크를 실행하도록 구현할 수 있다.
가능한 구현 형태에 있어서, 단계 S13 이후, 상기 태스크 스케줄링 방법은, 타깃 단말 기기에 의해 리턴된 처리될 태스크의 태스크 처리 결과를 수신하는 단계 - 태스크 처리 결과는 처리 데이터에 대해 처리하는 처리 결과를 포함함 - 를 더 포함할 수 있다. 상기 형태를 통해, 클라우드 서버가 태스크 처리 결과를 수신한 다음, 태스크 처리 결과에 대해 추가로 처리하도록 할 수 있다.
본 발명의 실시예에 있어서, 처리될 태스크의 제1 태스크 타입에 따라, 처리될 태스크를 실행할 수 있는 제1 단말 기기를 결정할 수 있고, 다음 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 잔여 연산 자원에 따라, 잔여 연산 자원이 처리될 태스크에 필요한 연산 자원을 만족하는 타깃 단말 기기를 결정할 수 있음으로써, 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현하여, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용될 수 있도록 할 뿐만 아니라, 클라우드 서버의 연산 압력을 완화시킬 수도 있다.
가능한 구현 형태에 있어서, 상기 제1 단말 기기 중 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계는, 제1 단말 기기에서 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제2 단말 기기를 결정하는 단계 - 제1 단말 기기는 제2 단말 기기를 포함함 - ; 및 제2 단말 기기가 복수 개인 경우, 제2 단말 기기의 제2 잔여 연산 자원 및 제2 단말 기기가 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 제2 단말 기기에서 타깃 단말 기기를 결정하는 단계를 포함한다.
상술한 바와 같이, 제1 단말 기기는 하나 또는 복수 개를 포함할 수 있다. 제1 단말 기기가 복수 개를 포함하는 경우, 각 제1 단말 기기의 제1 잔여 연산 자원과 상기 제1 단말 기기에 대응되는 제1 연산 자원 사이의 크기 관계를 하나씩 결정하여, 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제1 단말 기기를 제2 단말 기기로 결정할 수 있다.
제1 단말 기기가 하나를 포함하는 경우, 만약 상기 제1 단말 기기의 제1 잔여 연산 자원이 상기 제1 단말 기기에 대응되는 제1 연산 자원보다 크면, 상기 제1 단말 기기를 제2 단말 기기로 결정한다.
이해할 수 있는 것은, 결정된 제2 단말 기기는 하나 또는 복수 개를 포함할 수 있다. 가능한 구현 형태에 있어서, 제2 단말 기기가 하나를 포함하는 경우, 상기 제2 단말 기기를 타깃 단말 기기로 직접 결정할 수 있다. 제2 단말 기기가 복수 개를 포함하는 경우, 추가로 제2 단말 기기의 제2 잔여 연산 자원 및 제2 단말 기기가 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 제2 단말 기기에서 타깃 단말 기기를 결정할 수 있다.
제2 단말 기기가 하나를 포함하는 경우를 대상으로 하여, 상기 태스크 A의 예를 계속하여 사용한다. 예를 들어, 태스크 A가 단말 기기 B1에서 작동될 때 필요한 연산 자원(제2 단말 기기 B1이 처리될 태스크를 처리하는 제2 연산 자원에 해당됨)은 2이고, 단말 기기 B2에서 작동될 때 필요한 연산 자원(제2 단말 기기 B2가 처리될 태스크를 처리하는 제2 연산 자원에 해당됨)은 3이며, 단말 기기 B1의 잔여 연산 자원(제2 단말 기기 B1의 제2 잔여 자원에 해당됨)은 3이고, 단말 기기 B2의 잔여 연산 자원(제2 단말 기기 B2의 제2 잔여 자원에 해당됨)은 2이다. 단말 기기 B1의 잔여 연산 자원은 태스크 A가 단말 기기 B1에서 작동될 때 필요한 연산 자원보다 크고, 즉 단말 기기 B1의 잔여 연산 자원이 태스크 A가 단말 기기 B1에서 작동될 때의 연산 자원 수요를 만족하기에; 단말 기기 B1은 제2 단말 기기일 수 있으며; 제2 단말 기기는 하나를 포함하기에, 단말 기기 B1은 타깃 단말 기기이다.
제2 단말 기기가 복수 개를 포함하는 경우를 대상으로 하여, 예를 들어, 태스크 A가 단말 기기 B1에서 작동될 때 필요한 연산 자원은 2이고, 단말 기기 B2에서 작동될 때 필요한 연산 자원은 3이며, 단말 기기 B3에서 작동될 때 필요한 연산 자원은 5이고, 단말 기기 B1의 잔여 연산 자원은 3이며, 단말 기기 B2의 잔여 연산 자원은 2이고, 단말 기기 B3의 잔여 연산 자원은 10이다. 단말 기기 B1의 잔여 연산 자원은 태스크 A가 단말 기기 B1에서 작동하는데 필요한 연산 자원보다 크고, 단말 기기 B3의 잔여 연산 자원은 태스크 A가 단말 기기 B3에서 작동될 때 필요한 연산 자원보다 크기에, 단말 기기 B1 및 단말 기기 B3은 제2 단말 기기일 수 있으며; 다시 단말 기기 B1의 잔여 연산 자원 3 및 태스크 A가 단말 기기 B1에서 작동될 때의 필요한 연산 자원 2 및 단말 기기 B3의 잔여 연산 자원 10 및 태스크 A가 단말 기기 B1에서 작동될 때의 필요한 연산 자원 5에 따라, 단말 기기 B1 및 B2에서 타깃 단말 기기를 결정한다.
가능한 구현 형태에 있어서, 제1 단말 기기에는 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제2 단말 기기가 존재하지 않는 경우, 즉, 제1 단말 기기의 제1 잔여 연산 자원은, 모두 처리될 태스크가 상기 제1 단말 기기에서 작동될 때의 연산 자원 수요에 만족되지 않고, 상기 경우에 있어서, 클라우드 서버에서 처리될 태스크를 실행할 수 있다. 상기 형태를 통해, 제1 단말 기기의 제1 잔여 연산 자원이 처리될 태스크의 연산 자원 수요를 만족하지 않는 경우를 효과적으로 대응할 수 있다.
본 발명의 실시예에 있어서, 제2 단말 기기의 제2 잔여 연산 자원 및 처리될 태스크가 상기 제2 단말 기기에서 작동될 때 필요한 제2 연산 자원에 따라, 제2 잔여 연산 자원과 태스크에 필요한 연산 자원이 서로 매칭되는 타깃 단말 기기를 효과적으로 결정할 수 있어서, 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현함으로써, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용될 수 있도록 할 수 있다.
가능한 구현 형태에 있어서, 제2 단말 기기의 제2 잔여 연산 자원 및 제2 단말 기기가 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 제2 단말 기기에서 타깃 단말 기기를 결정하는 단계는, 제2 연산 자원과 제2 잔여 연산 자원 사이의 비율값을 결정하는 단계; 비율값에서의 최대값과 대응되는 제2 단말 기기를, 타깃 단말 기기로 결정하는 단계를 포함한다.
가능한 구현 형태에 있어서, 제2 단말 기기에 대응되는 제2 연산 자원과 상기 제2 단말 기기의 제2 잔여 연산 자원 사이의 비율값 제일 큰 단말 기기를, 타깃 단말 기기로 결정할 수 있고, 예를 들어, 상기 단말 기기 B1 및 B2의 예를 계속하여 사용하여, 상기 예에 있어서 단말 기기 B1 중 태스크 A의 연산 자원과 잔여 연산 자원 사이 비율값 2/3는 단말 기기 B2 중 태스크 A의 연산 자원과 잔여 연산 자원 사이 비율값 5/10보다 크기에, 단말 기기 B1은 타깃 단말 기기일 수 있다.
상술한 바와 같이, 단말 기기의 프로세서 연산 능력, 메모리, 메모리 대역폭 등 자원은 상이하기에, 동일한 태스크가 상이한 단말 기기에서 작동될 때 필요한 연산 자원은 상이하다. 제2 연산 자원과 제2 잔여 연산 자원 사이의 비율값은, 각 제2 단말 기기가 동일한 처리될 태스크를 처리하는 것에 대응되는 제2 연산 자원과 상기 제2 단말 기기의 제2 잔여 연산 자원 사이의 비율값을 의미한다.
설명해야 할 것은, 상술된 비율값을 통해 타깃 단말 기기를 결정하는 형태는, 본 발명의 실시예에서 제공하는 한 가지 구체적인 구현 형태이고, 이해할 수 있는 것은, 본 발명은 이에 한정되지 않아야 한다. 본 발명의 실시예의 계시하에, 본 분야의 기술자는 다른 비교 형태를 선택하여 사용할 수도 있고, 예를 들어, 제2 잔여 연산 자원과 제2 연산 자원 사이의 비율값을 결정하여, 상기 비율값에서의 최소값과 대응되는 제2 단말 기기를 타깃 단말 기기로 결정할 수도 있다. 실시함에 있어서 실제 수요에 따라 타깃 단말 기기를 결정하는 형태를 선택할 수 있고, 제2 단말 기기가 처리될 태스크를 대상으로 하는 제2 연산 자원 및 제2 잔여 연산 자원에 따라 결정되기만 하면 되며, 이에 대해 본 발명의 실시예는 한정하지 않는다.
본 발명의 실시예에 있어서, 연산 자원이 많지 않은 단말 기기를 최대한 사용하고, 연산 자원이 충족한 기기를 더욱 많은 연산 자원이 필요한 태스크에 남겨줌으로써, 단말 기기의 연산 자원을 최대한 사용하여, 단말 기기의 컴퓨팅 자원에 대한 충분한 사용을 구현할 수 있다.
도 3는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도를 도시하고, 도 3에 도시된 바와 같이, 상기 태스크 스케줄링 방법은 타깃 단말 기기에 적용되며, 상기 태스크 스케줄링 방법은 아래 단계를 포함한다.
단계 S21에 있어서, 클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 경우, 처리 데이터에 대해 처리하여, 처리될 태스크의 태스크 처리 결과를 얻는다.
단계 S22에 있어서, 태스크 처리 결과를 클라우드 서버에 송신한다.
여기서, 타깃 단말 기기는 클라우드 서버가 처리될 태스크의 제1 태스크 타입, 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 제1 단말 기기에서 결정한 것이고, 제1 단말 기기는 제1 태스크 타입과 서로 매칭된다.
가능한 구현 형태에 있어서, 타깃 단말 기기는 스마트 카메라, 사용자 기기, 모바일 기기, 사용자 단말, 셀룰러 폰, 무선 전화, 개인용 정보 단말기, 휴대용 기기, 컴퓨팅 기기, 차량 탑재 기기, 웨어러블 기기 등 컴퓨팅 능력을 구비하는 기기를 포함할 수 있다.
가능한 구현 형태에 있어서, 타깃 단말 기기의 결정 과정은, 도 2에 도시된 바와 같은 본 발명의 실시예에서 개시된 태스크 스케줄링 방법에서의 관련 설명을 참조할 수 있다.
가능한 구현 형태에 있어서, 타깃 단말 기기에서 처리될 태스크를 실행함으로써, 처리 데이터에 대해 처리하여, 처리될 태스크의 태스크 처리 결과를 얻도록, 타깃 단말 기기에 의해 수신된 처리될 태스크의 처리 데이터에는, 처리될 태스크의 태스크 타입이 표시될 수 있다.
가능한 구현 형태에 있어서, 네트워크 전송 프로토콜을 통해, 태스크 처리 결과를 클라우드 서버에 송신함으로써, 클라우드 서버에서 태스크 처리 결과에 대해 추가로 처리할 수 있다.
본 발명의 실시예에 있어서, 결정된 타깃 단말 기기로 하여금 처리될 태스크를 실행함으로써, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용되어, 클라우드 서버의 연산 압력을 완화시킬 수 있다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 방법은, 타깃 단말 기기의 기기 정보를 결정하는 단계; 및 타깃 단말 기기의 기기 정보를 클라우드 서버에 송신하여, 클라우드 서버로 하여금 타깃 단말 기기의 기기 정보를 저장하도록 하는 단계 - 타깃 단말 기기의 기기 정보는, 타깃 단말 기기의 기기 식별자, 타깃 단말 기기와 매칭되는 제2 태스크 타입, 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원, 타깃 단말 기기의 총 연산 자원 및 타깃 단말 기기의 잔여 연산 자원을 포함함 - 를 더 포함한다.
가능한 구현 형태에 있어서, 타깃 단말 기기의 기기 식별자는 타깃 단말 기기에 대해 표시하기 위한 것일 수 있고; 타깃 단말 기기와 매칭되는 제2 태스크 타입은, 타깃 단말 기기에 미리 설정된 다양한 태스크의 태스크 타입을 의미할 수 있으며; 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원은, 타깃 단말 기기에 미리 설정된 다양한 태스크에 각각 필요한 연산 자원을 의미할 수 있고; 타깃 단말 기기의 총 연산 자원은 타깃 단말 기기 전체의 연산 자원을 의미할 수 있다.
가능한 구현 형태에 있어서, 기기 식별자는 문자 부호 및 숫자의 조합을 사용할 수 있고, 상기 타깃 단말 기기를 유일하게 표시할 수만 있으면 되며, 기기 식별자의 구체적 형태에 대해, 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원은, 타깃 단말 기기가 상이한 작동 상태에서의 작동 정보에 따라 결정될 수 있고, 여기서 작동 상태는, 제2 태스크 타입의 태스크를 작동하는 상태 및 태스크를 작동하지 않는 무부하 상태를 포함할 수 있다. 작동 정보는 타깃 단말 기기의 중앙처리장치(Central Processing Unit, CPU) 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함할 수 있지만 이에 한정되지 않는다.
가능한 구현 형태에 있어서, 연산 자원은 상이한 측정 형태를 사용하여 측정할 수 있고, 상응하게, 타깃 단말 기기의 총 연산 자원은 실제 수요에 기반하여 설정될 수 있으며, 예를 들어, 총 연산 자원을 1로 설정할 수 있고, 각 태스크에 필요한 연산 자원은 소수를 사용하여 측정할 수 있으며; 10 또는 100 등으로 설정할 수도 있고, 이렇게 각 태스크에 필요한 연산 자원은 정수로 환산하여 측정될 수 있으며, 구체적으로 실제 수요에 따라 설정될 수 있고, 이에 대해 본 발명의 실시예는 한정하지 않는다.
설명해야 할 것은, 본 발명의 실시예에 따라 결정된 각 태스크에 필요한 연산 자원은 절대값이 아닌 상대값이고, 즉 각 단말 기기의 전체 컴퓨팅 능력에 대비하여 결정된 값이다. 상이한 단말 기기의 전체 컴퓨팅 능력이 상이하기에, 상이한 단말 기기에 대해, 동일한 연산 자원이 나타내는 실제 연산 자원 수준은 상이할 수 있고, 태스크에 필요한 연산 자원은 모두 각 단말 기기에 기반하여 결정된 값이다.
가능한 구현 형태에 있어서, 타깃 단말 기기의 기기 정보는 타깃 단말 기기에서 작동 중인 태스크의 연산 자원을 더 포함할 수 있다. 타깃 단말 기기의 잔여 연산 자원은 타깃 단말 기기의 총 연산 자원과 작동 중인 태스크의 제6 연산 자원 사이의 차이를 의미할 수 있다. 예를 들어, 특정된 단말 기기에 대해, 상기 단말 기기에서 태스크 A 및 태스크 B가 작동되고, 총 연산 자원은 1이며, 태스크 A에 필요한 연산 자원은 0.25이고, 태스크 B에 필요한 연산 자원은 0.25이면, 상기 단말 기기의 잔여 연산 자원은 0.5이다.
상술한 바와 같이, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기는 타깃 단말 기기를 포함한다. 상응하게, 단말 기기의 제1 기기 정보는 타깃 단말 기기의 기기 정보를 포함한다. 단말 기기에서의 어느 한 단말 기기에 대해, 본 발명의 실시예에서 타깃 단말 기기의 기기 정보를 결정하는 것과 동일한 형태를 사용하여, 기기 정보를 결정할 수 있다.
가능한 구현 형태에 있어서, 타깃 단말 기기가 클라우드 서버에 처음으로 액세스 된 다음, 타깃 단말 기기의 기기 정보를 결정할 수 있다. 네트워크 전송 프로토콜을 통해, 타깃 단말 기기의 기기 정보를 클라우드 서버에 송신하여, 클라우드 서버에서 타깃 단말 기기를 등록하고, 타깃 단말 기기의 기기 정보를 저장하는 것을 구현한다.
가능한 구현 형태에 있어서, 클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 다음, 타깃 단말 기기의 기기 정보를 다시 결정할 수 있다. 네트워크 전송 프로토콜을 통해, 클라우드 서버로 하여금 저장된 타깃 단말 기기의 기기 정보를 업데이트하도록, 다시 결정된 타깃 단말 기기의 기기 정보를 클라우드 서버에 송신한다.
본 발명의 실시예에 있어서, 클라우드 서버가 단말 기기의 기기 정보에 기반하여, 태스크 스케줄링을 효과적으로 수행하도록, 클라우드 서버와 연결되는 단말 기기의 기기 정보를 클라우드 서버에 송신하는 것을 구현할 수 있다.
가능한 구현 형태에 있어서, 태스크 스케줄링 방법은, 기설정 샘플링 주기에 따라 샘플링된 타깃 단말 기기가 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보를 획득하는 단계; 및 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보에 따라, 타깃 연산 자원을 결정하는 단계 - 제1 상태는 타깃 단말 기기가 태스크를 실행하지 않는 상태를 포함하고, 제2 상태는 상기 타깃 단말 기기가 제2 태스크 타입에 대응되는 태스크를 실행하는 상태를 포함함 - 를 더 포함한다.
가능한 구현 형태에 있어서, 타깃 단말 기기에 작동 정보 모니터링 소프트웨어를 미리 설정할 수 있고, 상기 작동 정보 모니터링 소프트웨어는 기설정 샘플링 주기에 따라, 타깃 단말 기기에서 상이한 태스크 프로세스에 대응되는 작동 정보를 수집할 수 있다. 여기서, 작동 정보 모니터링 소프트웨어는 기존의 상기 기능을 구현할 수 있는 소프트웨어일 수 있고, 작동 정보 모니터링 소프트웨어의 구현 형태에 대해, 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 제1 상태는 타깃 단말 기기가 태스크를 실행하지 않는 상태를 포함한다. 즉 제1 상태는 예를 들어, 임베디드 태스크의 애플리케이션 프로그램을 시작하였지만, 임베디드 태스크를 실행하지 않는 것과 같은 타깃 단말 기기가 그 어떤 태스크도 실행하지 않는 무부하 상태일 수 있고, 상대적으로, 제2 상태는 임베디드 태스크를 실행하는 상태일 수 있다.
가능한 구현 형태에 있어서, 제2 태스크 타입의 태스크는 하나뿐만 아닐 수 있기에, 변수는 유일한 원칙에 기반하여, 동일한 테스트 데이터 (예를 들어 이미지 또는 비디오)에 기반하여, 제2 태스크 타입의 태스크를 각각 실행할 수 있다. 여기서, 테스트 데이터는 클라우드 서버에서 획득할 수 있고, 로컬 메모리에서 획득할 수도 있으며, 이에 대해 본 발명의 실시예는 한정하지 않는다.
가능한 구현 형태에 있어서, 기설정 샘플링 주기는 실제 수요에 따라 설정될 수 있고, 이에 대해 본 발명의 실시예는 한정하지 않는다. 기설정 샘플링 주기에 따라, 일정한 기간 내에 여러 그룹의 작동 정보를 수집할 수 있다. 여러 그룹의 작동 정보에 기반하여, 태스크 작동에 필요한 연산 자원을 더욱 정확하게 결정할 수 있다.
본 발명의 실시예에 있어서, 무부하 상태에서의 작동 정보 및 태스크 작동 상태에서의 작동 정보에 따라, 태스크 작동에 필요한 연산 자원을 더욱 정확하게 결정할 수 있다.
가능한 구현 형태에 있어서, 상기 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보에 따라, 타깃 연산 자원을 결정하는 단계는, 제1 상태에서의 작동 정보의 제1 평균값 및 제2 상태에서의 작동 정보의 제2 평균값을 결정하는 단계; 및 제2 평균값과 제1 평균값 사이의 차이값에서의 최대값을, 타깃 연산 자원으로 결정하는 단계를 포함한다.
가능한 구현 형태에 있어서, 타깃 단말 기기의 작동 정보는, 타깃 단말 기기의 CPU 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함할 수 있지만 이에 한정되지 않는다.
상술한 바와 같이, 수집된 작동 정보는 여러 그룹을 포함할 수 있고, 각 그룹의 작동 정보는 타깃 단말 기기의 CPU 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함할 수 있다.
가능한 구현 형태에 있어서, 제2 평균값과 제1 평균값 사이의 차이값은, 제2 상태에서의 CPU 사용률의 평균값과 제1 상태에서의 CPU 사용률의 평균값 사이의 차이값; 제2 상태에서의 하드웨어 가속 엔진 사용률의 평균값과 제1 상태에서의 하드웨어 가속 엔진 사용률의 평균값 사이의 차이값; 제2 상태에서의 메모리 사용률의 평균값과 제1 상태에서의 메모리 사용률의 평균값 사이의 차이값; 제2 상태에서의 메모리 대역폭 사용률의 평균값과 제1 상태에서의 메모리 대역폭 사용률의 평균값 사이의 차이값 중 적어도 하나를 포함한다. 상기 형태를 통해, 태스크에 필요한 타깃 연산 자원을 용이하게 측정하여, 타깃 연산 자원에 대해 정량화를 수행할 수 있다.
일부 경우에 있어서, 메모리 대역폭 사용률이 일정한 정도에 도달한 다음 애플리케이션 프로그램이 지연되고, 끊기는 등 현상이 발생되는 것을 고려하여, 메모리 대역폭은 보통 충분히 사용될 수 없다. 가능한 구현 형태에 있어서, 제2 상태에서의 메모리 대역폭 사용률의 평균값과 제1 상태에서의 메모리 대역폭 사용률의 평균값 사이의 차이값은 상기 차이값과 제1 가중 계수의 승적일 수 있다. 여기서, 제1 가중 계수의 구체적 값은 실제 수요에 따라 설정될 수 있고, 예를 들어, 2일 수 있으며, 이에 대해 본 발명의 실시예는 한정하지 않는다. 상기 형태를 통해, 결정된 연산 자원으로 하여금 더욱 정확하게 하여, 타깃 단말 기기에서 스케줄링 태스크를 작동할 때, 타깃 단말 기기의 메모리 대역폭에 과도한 압력을 가하여 끊기고 지연되는 것을 줄일 수 있다.
일부 경우에 있어서, 처리 데이터가 급증할 때, 단말 기기의 연산 성능은 비교적 큰 피크값이 나타날 수 있는 것을 고려하여, 상기 경우에서 태스크의 정상 작동을 보장하기 위해, 가능한 구현 형태에 있어서, 상기 제2 평균값과 제1 평균값 사이의 차이값에서의 최대값과 제2 가중 계수의 승적을, 타깃 연산 자원으로 결정할 수 있다. 여기서, 제2 가중 계수의 구체적 값에 대해 실제 수요, 과거 경험 등에 따라 결정할 수 있고, 예를 들어 1.2를 사용할 수 있으며, 이에 대해 본 발명의 실시예는 한정하지 않는다. 상기 형태를 통해, 단말 기기의 연산 성능이 피크값에 도달했을 때 태스크의 정상 작동을 보장할 수 있다.
본 발명의 실시예에 있어서, 제2 평균값과 제1 평균값 사이의 차이값을 결정하는 것을 통해, 차이값에서의 최대값을 타깃 연산 자원으로 결정하여, 애플리케이션 프로그램이 무부하 상태에서 연산 자원의 결정에 대한 간섭을 줄임으로써, 태스크에 필요한 연산 자원을 정확하게 결정할 수 있다.
가능한 구현 형태에 있어서, 복수 개의 단말 기기는 타깃 단말 기기를 포함하기에, 임의의 단말 기기를 대상으로 하여, 상기 단말 기기에 미리 설정된 다양한 태스크에 각각 필요한 연산 자원은, 상기 본 발명의 실시예에서 타깃 연산 자원을 결정하는 것과 동일한 형태를 사용할 수 있고, 여기서 반복하여 설명하지 않는다.
본 발명의 실시예는 연산 자원 평가 방법을 더 제공하고, 상기 연산 자원 평가 방법은,
예를 들어 { A, B, C } 세 가지 태스크와 같은 단말 기기가 미리 설정해야 하는 다양한 태스크 집합을 선택하는 단계; 및
태스크가 포함되지 않은 애플리케이션 프로그램을 시작하고, 동시에 작동 정보 모니터링 소프트웨어를 시작하여, t 시간 동안 작동하며, 시간 간격 s(기설정 샘플링 주기에 해당됨)(s<<t)로 애플리케이션 프로그램이 작동될 때의 작동 정보에 대해 샘플링을 수행하는 단계 - 작동 정보는 CPU 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률, 메모리 대역폭 사용률 정보를 포함할 수 있지만 이에 한정되지 않음 - 를 포함할 수 있다. 여기서, 각 샘플링 포인트에서 모두 한 그룹의 데이터를 얻고, 총
Figure pct00001
개 그룹의 데이터를 얻을 수 있으며, 여기서
Figure pct00002
이다. 얻은 각 그룹 데이터를 공식
Figure pct00003
에 따라 평균값을 구하고, 공식에서
Figure pct00004
는 i 번째 샘플링 포인트에 대응되는 데이터를 나타내며, m은 구한 평균값이고,
Figure pct00005
네 개의 무부하 상태에서의 작동 정보를 얻으며; 여기서 I cpu 는 CPU 사용률을 나타내고,
Figure pct00006
는 하드웨어 가속 엔진 사용률을 나타내며,
Figure pct00007
은 메모리 점유율을 나타내고
Figure pct00008
는 메모리 대역폭 사용률을 나타낸다.
{ A, B, C } 세 가지 태스크를 애플리케이션 프로그램에 각각 임베디드하고, 태스크와 대응되는 테스트 비디오를 로딩하며; 상기
Figure pct00009
를 얻는 것과 동일한 방법에 따라, A 태스크의 작동 정보
Figure pct00010
, B 태스크의 작동 정보
Figure pct00011
, C 태스크의 작동 정보
Figure pct00012
를 각각 얻는다.
예를 들어
Figure pct00013
와 같이, { A, B, C } 세 가지 태스크의 작동 정보에서 대응되는 무부하 상태에서의 작동 정보를 각각 감하면, A 태스크의 타깃 작동 정보
Figure pct00014
를 얻을 수 있고, 마찬가지로, B, C 태스크의 타깃 작동 정보
Figure pct00015
,
Figure pct00016
를 각각 획득할 수 있다.
다음 공식 (1)에 따라 태스크에 필요한 연산 자원
Figure pct00017
를 추정할 수 있다.
Figure pct00018
(1);
여기서,
Figure pct00019
는 최대값 함수를 구하는 것이고; 파라미터
Figure pct00020
는 메모리 대역폭의 가중 계수이며, 메모리 대역폭은 보통 충분히 사용될 수 없고, 대역폭 사용률이 일정한 정도에 도달하면 애플리케이션의 지연은 심해지기에, α>1이며, 사용자는 실제 상황에 따라 파라미터
Figure pct00021
의 값을 선택할 수 있고, 권장값은
Figure pct00022
이며; 파라미터
Figure pct00023
는 성능 피크값의 균형을 맞추기 위한 가중 계수이고, 따라서
Figure pct00024
이며, 사용자는 실제 상황에 따라 파라미터
Figure pct00025
의 값을 선택할 수 있으며, 권장값은
Figure pct00026
이고;
Figure pct00027
Figure pct00028
Figure pct00029
;
Figure pct00030
이다.
설명해야 할 것은, 상기 연산 자원 평가 방법에 따라 얻은 연산 자원은 절대값이 아닌 상대값이다. 상이한 단말 기기에 대해, 동일한 연산 자원값이 나타내는 연산 자원 수준은 보통 상이하다.
가능한 구현 형태에 있어서, 상기 연산 자원 평가 방법을 통해 결정된 연산 자원은 태스크에 필요한 연산 자원일 수 있고, 총 연산 자원은 1.0일 수 있으며; 연산 자원을 정수로 전환할 수도 있고, 예를 들어 A, B, C 세 가지 태스크에 필요한 연산 자원을 계산하여 각각 0.5, 0.25, 0.25를 얻으며, 상기 단말 기기의 총 연산 자원은 1/0.25 = 4로 환산될 수 있고, 전환된 각 태스크에 필요한 연산 자원은 각각 2, 1, 1이다.
본 발명의 실시예에 따라, 태스크 연산 자원 추정의 방법을 통해, 엔드 클라우드 협업 시스템의 태스크 스케줄링에 믿음직한 근거를 제공하여, 단말 기기의 성능 이용률을 효과적으로 향상시킬 수 있다.
클라우드 컴퓨팅 및 컴퓨터 시각 기술의 빠른 발전과 성숙됨에 따라, 클라우드 컴퓨팅 및 스마트 비디오 분석에 기반하는 다양한 스마트 비디오 분석 플랫폼은 끊임없이 나타나고, 스마트 도시, 스마트 단지 등 분야의 건설에 널리 사용된다. 이와 동시에, 단말 기기 컴퓨팅 칩 해시레이트의 급속한 향상에 따라, 스마트 캠코더의 처리 능력도 점점 더 강력해지고 있고, 따라서, 점점 더 많은 방안은 엔드 클라우드 협업의 형태를 사용하여 컴퓨팅 태스크를 처리하며, 컴퓨팅 능력을 구비하는 단말 기기는, 그 업무 데이터를 자체적으로 처리하여, 처리 결과를 클라우드에 업로드하고, 컴퓨팅 능력을 구비하지 않는 단말 기기는, 수집된 업무 데이터를 클라우드에 직접 업로드하여, 클라우드가 책임지고 처리한다. 엔드 클라우드 협업 태스크의 형태를 사용하여, 데이터로 하여금 더욱 빨리 처리될 수 있고, 클라우드의 컴퓨팅 및 대역폭 압력을 효과적으로 완화시킨다.
하지만, 상당한 부분의 단말 기기의 연산 자원은 자체적 태스크의 연산 자원 수요보다 훨씬 크고, 관련 기술에서 주로 단말 기기를 사용하여 자체적 태스크에 대해 처리하여, 잔여 해시레이트를 사용하여 더욱 많은 태스크를 처리할 수 없으며, 즉 단말 기기의 연산 자원에 대해 충분히 사용하지 못함으로써, 컴퓨팅 자원의 낭비를 초래한다.
따라서, 아래 몇 가지 문제를 고려해야 한다. 단말 기기가 자체적 태스크를 처리하는 것 외에, 일부 연산 자원은 유휴 상태인데, 이 부분의 유휴 연산 자원을 충분히 사용하는 문제를 고려해야 하며; 단말 기기 연산 자원을 충분히 사용하려면, 단말 기기가 동시에 몇 가지 태스크를 처리할 수 있는지를 측정해야 한다. 또한, 단말 기기의 연산 자원 및 태스크에 필요한 연산 자원에 대해 모델링 하여, 단말 기기가 몇 가지 태스크를 처리할 수 있는지를 평가하는 문제를 고려해야 하고; 엔드 클라우드 협업 시스템에 있어서, 클라우드가 태스크 스케줄링을 수행하여, 새로운 태스크으로 하여금 매칭되는 단말 기기에 합리적으로 할당될 수 있도록 하는 문제를 고려해야 한다.
이에 감안하여, 본 발명의 실시예는 “엔드 클라우드 협업”에 기반하는 다중 태스크 스케줄링 방법을 제공하고, 단말 기기에 다양한 태스크를 미리 설정하고, 단말 기기의 총 연산 자원 및 태스크에 필요한 연산 자원을 추상하는 것을 통해, 클라우드는 새로운 태스크를 이미 액세스된 기기에 합리적으로 할당하여 처리할 수 있으며, 상기 방안은 단말 기기의 능력 범위를 확장하여, 단말 기기의 컴퓨팅 능력으로 하여금 충분히 응용되고, 동시에 추가로 클라우드의 컴퓨팅 압력을 완화시키며, 주로 아래 두 개 측면으로 체현된다.
한편, 본 발명의 실시예는 단말 기기의 총 연산 자원 및 다양한 미리 설정 태스크에 필요한 연산 자원 평가 방법을 제공한다. 실시함에 있어서, 단말 기기에서 각 미리 설정 태스크를 작동하고, 작동될 때 시스템의 CPU 사용률, 스마트 하드웨어 가속기 사용률, 메모리 사용률, 메모리 대역폭 사용률 등 시스템 정보를 통계한 다음, 이러한 정보에 따라 태스크의 해시레이트 수요를 추상하며, 마지막에 다양한 미리 설정된 태스크의 해시레이트 수요에 따라, 플랫폼의 총 해시레이트를 추상한다.
다른 한편, 본 발명의 실시예는 엔드 클라우드 협업에 기반하는 다중 태스크 스케줄링 방법을 제공한다. 단말 기기가 클라우드에 액세스된 다음, 자체 미리 설정 태스크 타입 및 연산 자원 수요, 총 연산 자원 및 잔여 연산 자원을 클라우드에 보고하고; 새로운 태스크 요청이 클라우드에 의해 수신된 다음, 액세스된 단말 기기에서 태스크 타입 및 잔여 연산 자원에 매칭되는 기기를 찾으며, 만약 매칭에 성공하면, 매칭된 단말 기기에 의해 새로운 태스크를 처리하며, 만약 매칭에 실패하면, 클라우드는 새로운 태스크에 대해 처리한다.
도 4는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도를 도시하고, 도 4에 도시된 바와 같이, 상기 태스크 스케줄링 방법은 아래 단계를 포함한다.
단계 S401에 있어서, 단말 기기에 액세스한다.
상기 단말 기기는 일정한 컴퓨팅 능력을 구비하는 스마트 단말이다.
단계 S402에 있어서, 단말 기기는 기기 정보를 보고한다.
액세스된 단말 기기의 기기 식별자 ID, 자체 미리 설정 태스크 타입, 자체 작동 태스크 타입, 각 태스크에 필요한 연산 자원, 총 연산 자원, 잔여 연산 자원 등 기기 정보를 클라우드에 보고하여 등록하고, 클라우드 서비스 소프트웨어는 기기 정보에 대해 등록하며, 기기 정보를 저장한다.
단계 S403에 있어서, 처리될 태스크가 액세스된다.
즉 새로운 태스크 처리 신청에 있어서, 상기 처리될 태스크를 작동하는 단말 기기를 결정해야 한다.
단계 S404에 있어서, 처리될 태스크를 처리하는 것을 지원하는 단말 기기가 있는지 여부를 판단한다.
다시 말하면 단말 기기 내부에 처리될 태스크를 지원하는 알고리즘 종류가 포함되는지 여부를 판단한다. 처리될 태스크가 액세스될 때, 태스크 타입의 매칭을 수행하고, 즉 저장된 기기 정보 리스트에서 처리될 태스크가 포함된 모든 단말 기기를 검색하며; 매칭되는 단말 기기(제1 단말 기기에 해당됨)가 검색되지 않은 경우, 단계 S405를 실행하고; 매칭되는 단말 기기가 검색되는 경우에는, 추가로 연산 자원의 판단이 필요하고, 즉 단계 S406을 실행한다.
단계 S405에 있어서, 처리될 태스크는 클라우드에서 작동된다.
즉 클라우드 연산은 처리될 태스크를 액세스하여, 처리될 태스크의 계산을 책임진다.
단계 S406에 있어서, 잔여 연산 자원이 처리될 태스크에 필요한 연산 자원보다 큰 단말 기기가 존재하는지 여부를 판단한다.
다시 말하면 단말 기기의 잔여 연산 자원이 액세스된 처리될 태스크의 연산 자원 수요를 만족하는지 여부를 판단한다. 설명해야 할 것은, 처리될 태스크의 연산 자원 수요의 크기는 단말 기기와 관련되고, 단말 기기에 의해 업로드된 기기 정보를 조회하는 것을 통해 얻는다.
연산 자원 매칭에 실패하고, 즉 잔여 연산 자원이 처리될 태스크에 필요한 연산 자원보다 큰 단말 기기(제2 단말 기기에 해당됨)가 존재하지 않는 경우, 단계 S405를 실행하며; 연산 자원 매칭에 성공하고, 즉 잔여 연산 자원이 처리될 태스크에 필요한 연산 자원보다 큰 단말 기기가 존재하는 경우, 단계 S407을 실행한다.
단계 S407에 있어서, 연산 자원 매칭에 성공한 타깃 단말 기기를 선택하여 처리될 태스크를 작동한다.
연산 자원 매칭에 성공한 단말 기기에서 타깃 단말 기기를 선택하여 처리될 태스크를 작동한다. 선택 원칙은 처리될 태스크에 필요한 연산 자원과 단말 기기의 잔여 연산 자원 비율이 제일 큰 기기를 선택하는 것이다.
처리될 태스크가 타깃 단말 기기에서 작동되는 경우, 단계 S408을 실행한다.
단계 S408에 있어서, 타깃 단말 기기는 태스크 컴퓨팅 결과를 클라우드에 지속적으로 리턴한다.
본 발명의 실시예는 태스크 해시레이트 추정의 방법을 통해 엔드 클라우드 협업의 태스크 스케줄링에 믿음직한 근거를 제공하여, 단말 기기의 성능 이용률을 효과적으로 향상시킨다. 한편, 통계 방법을 통해, 단말 기기의 해시레이트 수준 및 다양한 태스크의 해시레이트 수요를 평가하고; 다른 한편, 태스크 해시레이트 추정의 방법을 통해 엔드 클라우드 협업 시스템에서의 합리적인 태스크 스케줄링을 구현하며, 스마트 단말 해시레이트의 충분한 사용을 구현한다.
가능한 구현 형태에 있어서, 본 발명의 실시예에서의 태스크 스케줄링 방법은 스마트 비디오 분석에, 스마트 모니터링, 스마트 도시, 스마트 커뮤니티 등 제품에 적용될 수 있다.
본 발명의 실시예에 따라, 시스템 태스크가 모두 지속적인 태스크일 때, 엔드 클라우드 협업 시스템에서 합리적인 태스크 스케줄링을 구현하여, 클라우드 기기의 연산 자원을 충분히 사용할 수 있고; 하드웨어 기기가 처리할 수 있는 태스크를 평가하며, 가능한 태스크 병렬 작동 방안을 구현할 수 있고; 엔드 클라우드 협업 시스템에서 단말 기기의 연산 자원 낭비를 개선할 수 있다.
본 발명에서 언급한 상기 각 방법 실시예는, 원리와 논리를 위반하지 않는 한, 모두 서로 상호적으로 결합되어 결합된 실시예를 형성할 수 있다는 것을 이해할 수 있다. 본 분야의 기술자는 구체적인 실시 형태의 상기 방법에 있어서, 각 단계의 구체적인 실행 순서는 그 기능 및 가능한 내적 논리에 의해 결정되는 것을 이해할 수 있다.
또한, 본 발명은 태스크 스케줄링 장치, 전자 기기, 컴퓨터 판독 가능 저장 매체, 프로그램을 더 제공하고, 상기 이미지 처리 장치, 전자 기기, 컴퓨터 판독 가능 저장 매체, 프로그램은 모두 본 발명에서 제공하는 어느 한 가지 태스크 스케줄링 방법을 구현하는데 사용될 수 있으며, 상응한 기술적 방안 및 설명은 방법 부분의 기재를 참조할 수 있다.
도 5는 본 발명의 실시예에 따른 태스크 스케줄링 장치의 블록도를 도시하고, 상기 태스크 스케줄링 장치는 클라우드 서버에 적용되며, 도 5에 도시된 바와 같이, 상기 태스크 스케줄링 장치는,
처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하도록 구성되는 제1 단말 기기 결정 모듈(101) - 상기 복수 개의 단말 기기는 상기 제1 단말 기기를 포함함 - ;
상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하도록 구성되는 타깃 단말 기기 결정 모듈(102); 및
상기 처리될 태스크의 처리 데이터를 상기 타깃 단말 기기로 발송함으로써, 상기 타깃 단말 기기로 하여금 상기 처리될 태스크를 실행하도록 구성되는 처리 데이터 발송 모듈(103)을 포함한다.
가능한 구현 형태에 있어서, 상기 클라우드 서버에는 상기 복수 개의 단말 기기와 태스크 타입 사이의 대응 관계가 저장되어 있고, 상기 제1 단말 기기 결정 모듈(101)은 또한, 상기 대응 관계 및 상기 제1 태스크 타입에 따라, 상기 복수 개의 단말 기기에서 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하도록 구성된다.
가능한 구현 형태에 있어서, 상기 타깃 단말 기기 결정 모듈(102)은, 상기 제1 단말 기기에서 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제2 단말 기기를 결정하도록 구성되는 제2 단말 기기 결정 서브 모듈 - 상기 제1 단말 기기는 상기 제2 단말 기기를 포함함 - ; 및 상기 제2 단말 기기가 복수 개인 경우, 상기 제2 단말 기기의 제2 잔여 연산 자원 및 상기 제2 단말 기기가 상기 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 상기 제2 단말 기기에서 상기 타깃 단말 기기를 결정하도록 구성되는 타깃 단말 기기 결정 서브 모듈을 포함한다.
가능한 구현 형태에 있어서, 상기 타깃 단말 기기 결정 서브 모듈은 또한, 상기 제2 단말 기기가 복수 개인 경우, 상기 제2 연산 자원과 상기 제2 잔여 연산 자원 사이의 비율값을 결정하고; 상기 비율값에서의 최대값과 대응되는 제2 단말 기기를, 상기 타깃 단말 기기로 결정하도록 구성된다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 장치는, 상기 복수 개의 단말 기기에 상기 제1 태스크 타입과 매칭되는 제1 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하도록 구성되는 제1 데이터 처리 모듈을 더 포함한다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 장치는, 상기 제1 단말 기기에 제1 잔여 연산 자원이 상기 제1 연산 자원보다 큰 제2 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하도록 구성되는 제2 데이터 처리 모듈을 더 포함한다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 장치는, 상기 타깃 단말 기기에 의해 리턴된 상기 처리될 태스크의 태스크 처리 결과를 수신하도록 구성되는 수신 모듈 - 상기 태스크 처리 결과는 상기 처리 데이터에 대해 처리하는 처리 결과를 포함함 - 을 더 포함한다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 장치는, 상기 단말 기기에 의해 업로드된 기기 정보를 획득하도록 구성되는 기기 정보 획득 모듈 - 상기 기기 정보는 상기 단말 기기의 기기 식별자, 상기 단말 기기와 매칭되는 태스크 타입, 상기 태스크 타입에 대응되는 태스크의 연산 자원, 상기 단말 기기의 총 연산 자원 및 상기 단말 기기의 잔여 연산 자원을 포함함 - 을 더 포함한다.
본 발명의 실시예에 있어서, 처리될 태스크의 제1 태스크 타입에 따라, 처리될 태스크를 실행할 수 있는 제1 단말 기기를 결정할 수 있고, 다음 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 잔여 연산 자원에 따라, 잔여 연산 자원이 처리될 태스크에 필요한 연산 자원을 만족하는 타깃 단말 기기를 결정할 수 있음으로써, 처리될 태스크를 단말 기기에 합리적으로 할당하는 것을 구현하여, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용될 수 있도록 할 뿐만 아니라, 클라우드 서버의 연산 압력을 완화시킬 수도 있다.
도 6는 본 발명의 실시예에 따른 태스크 스케줄링 장치의 블록도를 도시하고, 상기 태스크 스케줄링 장치는 타깃 단말 기기에 적용되며, 도 6에 도시된 바와 같이, 상기 태스크 스케줄링 장치는,
클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 경우, 상기 처리 데이터에 대해 처리하여, 상기 처리될 태스크의 태스크 처리 결과를 얻도록 구성되는 처리 모듈(201); 및
상기 태스크 처리 결과를 상기 클라우드 서버에 송신하도록 구성되는 처리 결과 송신 모듈(202)을 포함하고, 여기서, 상기 타깃 단말 기기는 상기 클라우드 서버가 상기 처리될 태스크의 제1 태스크 타입, 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 결정한 것이고, 상기 제1 단말 기기는 상기 제1 태스크 타입과 서로 매칭된다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 장치는, 상기 타깃 단말 기기의 기기 정보를 결정하도록 구성되는 기기 정보 결정 모듈; 및 상기 타깃 단말 기기의 기기 정보를 상기 클라우드 서버에 송신하여, 상기 클라우드 서버로 하여금 상기 타깃 단말 기기의 기기 정보를 저장하도록 구성되는 기기 정보 송신 모듈 - 상기 타깃 단말 기기의 기기 정보는, 타깃 단말 기기의 기기 식별자, 상기 타깃 단말 기기와 매칭되는 제2 태스크 타입, 상기 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원, 상기 타깃 단말 기기의 총 연산 자원 및 상기 타깃 단말 기기의 잔여 연산 자원을 포함함 - 을 더 포함한다.
가능한 구현 형태에 있어서, 상기 태스크 스케줄링 장치는, 기설정 샘플링 주기에 따라 샘플링된 상기 타깃 단말 기기가 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보를 획득하도록 구성되는 작동 정보 모듈; 및 상기 제1 상태에서의 작동 정보 및 상기 제2 상태에서의 작동 정보에 따라, 상기 타깃 연산 자원을 결정하도록 구성되는 연산 자원 결정 모듈 - 상기 제1 상태는 상기 타깃 단말 기기가 태스크를 실행하지 않는 상태를 포함하고, 상기 제2 상태는 상기 타깃 단말 기기가 상기 제2 태스크 타입에 대응되는 태스크를 실행하는 상태를 포함함 - 을 더 포함한다.
가능한 구현 형태에 있어서, 상기 연산 자원 결정 모듈은, 상기 제1 상태에서의 작동 정보의 제1 평균값 및 상기 제2 상태에서의 작동 정보의 제2 평균값을 결정하도록 구성되는 평균값 결정 서브 모듈; 및 상기 제2 평균값과 상기 제1 평균값 사이의 차이값에서의 최대값을, 상기 타깃 연산 자원으로 결정하도록 구성되는 연산 자원 결정 서브 모듈을 포함한다.
가능한 구현 형태에 있어서, 상기 작동 정보는 상기 타깃 단말 기기의 CPU 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함하고, 상기 제2 평균값과 상기 제1 평균값 사이의 차이값은, 상기 제2 상태에서의 CPU 사용률의 평균값과 상기 제1 상태에서의 CPU 사용률의 평균값 사이의 차이값; 상기 제2 상태에서의 하드웨어 가속 엔진 사용률의 평균값과 상기 제1 상태에서의 하드웨어 가속 엔진 사용률의 평균값 사이의 차이값; 상기 제2 상태에서의 메모리 사용률의 평균값과 상기 제1 상태에서의 메모리 사용률의 평균값 사이의 차이값; 및 상기 제2 상태에서의 메모리 대역폭 사용률의 평균값과 상기 제1 상태에서의 메모리 대역폭 사용률의 평균값 사이의 차이값 중 적어도 하나를 포함한다
본 발명의 실시예에 있어서, 결정된 타깃 단말 기기로 하여금 처리될 태스크를 실행함으로써, 단말 기기의 컴퓨팅 자원으로 하여금 충분히 사용되어, 클라우드 서버의 연산 압력을 완화시킬 수 있다.
일부 실시예에 있어서, 본 발명의 실시예에서 제공하는 장치가 구비하는 기능 또는 포함된 모듈은 전술한 방법 실시예에서 설명한 방법을 실행하도록 구성될 수 있고, 그 구체적인 구현은 전술한 방법 실시예의 설명을 참조할 수 있다.
본 발명의 실시예는 컴퓨터 프로그램 명령어가 저장된 컴퓨터 판독 가능 저장 매체를 더 제공하고, 상기 컴퓨터 프로그램 명령어가 프로세서에 의해 수행될 때 상기 태스크 스케줄링 방법을 구현한다. 컴퓨터 판독 가능 저장 매체는 비휘발성 컴퓨터 판독 가능 저장 매체일 수 있다.
본 발명의 실시예는 전자 기기를 더 제공하고, 상기 전자 기기는, 프로세서; 및 프로세서가 실행 가능한 명령어를 저장하도록 구성된 메모리를 포함하며; 여기서, 상기 프로세서는 상기 메모리에 저장된 명령어를 호출하여, 상기 태스크 스케줄링 방법을 실행하도록 구성된다.
본 발명의 실시예는 컴퓨터 판독 가능 코드를 포함하는 컴퓨터 프로그램 제품을 더 제공하고, 컴퓨터 판독 가능한 코드가 기기에서 작동될 때, 기기에서의 프로세서는 상기 어느 한 실시예에서 제공하는 태스크 스케줄링 방법을 구현하기 위한 명령어를 실행한다. 본 발명의 실시예는 컴퓨터 판독 가능 명령어를 저장하도록 구성된 다른 컴퓨터 프로그램 제품을 더 제공하고, 명령어가 실행될 경우 컴퓨터로 하여금 상기 어느 한 실시예에서 제공하는 태스크 스케줄링 방법의 동작을 실행하도록 한다.
전자 기기는 단말, 서버 또는 다른 형태의 기기로 제공될 수 있다.
도 7은 본 발명의 실시예에 따른 전자 기기(800)의 블록도를 도시한다. 예를 들어, 전자 기기(800)는 휴대폰, 컴퓨터, 디지털 방송 단말기, 메시지 송수신 기기, 게임 콘솔, 태블릿 기기, 의료 기기, 휘트니스 기기, 개인용 휴대 단말기 등 단말일 수 있다.
도 7을 참조하면, 전자 기기(800)는 처리 컴포넌트(802), 메모리(804), 전원 컴포넌트(806), 멀티미디어 컴포넌트(808), 오디오 컴포넌트(810), 입력/출력(Input Output, I/O)의 인터페이스(812), 센서 컴포넌트(814) 및 통신 컴포넌트(816) 중 하나 또는 복수 개의 컴포넌트를 포함할 수 있다.
처리 컴포넌트(802)는 보통 디스플레이, 전화 호출, 데이터 통신, 카메라 동작 및 기록 동작과 관련된 동작과 같은 전자 기기(800)의 전체적인 동작을 제어한다. 처리 컴포넌트(802)는 상기 태스크 스케줄링 방법의 전부 또는 일부 단계를 완료하기 위한 명령어를 수행하는 하나 또는 복수 개의 프로세서(820)를 포함할 수 있다. 또한, 처리 컴포넌트(802)는 처리 컴포넌트(802)및 다른 컴포넌트 사이의 인터랙션이 용이하도록, 하나 또는 복수 개의 모듈을 포함할 수 있다. 예를 들어, 처리 컴포넌트(802)는 멀티미디어 컴포넌트(808)및 처리 컴포넌트(802)사이의 용이한 인터랙션을 위해, 멀티미디어 모듈을 포함할 수 있다.
메모리(804)는 전자 기기(800)의 동작을 지원하기 위해, 다양한 유형의 데이터를 저장하도록 구성된다. 이러한 데이터의 예시는 전자 기기(800)에서의 동작을 위한 임의의 애플리케이션 프로그램 또는 방법의 명령어, 연락인 데이터, 전화번호부 데이터, 메시지, 이미지, 비디오 등을 포함한다. 메모리(804)는 정적 랜덤 액세스 메모리(Static Random-Access Memory, SRAM), 전기적 소거 및 프로그램 가능 읽기 전용 메모리(Electrically Erasable Programmable Read Only Memory, EEPROM), 소거 및 프로그램 가능 읽기 전용 메모리(Electrical Programmable Read Only Memory, EPROM), 프로그램 가능 읽기 전용 메모리(Programmable Read-Only Memory, PROM), 읽기 전용 메모리(Read-Only Memory, ROM), 자기 메모리, 플래시 메모리, 디스켓 또는 CD와 같은 임의의 타입의 휘발성 또는 비휘발성 저장 기기 또는 이들의 조합에 의해 구현될 수 있다.
전원 컴포넌트(806)는 전자 기기(800)의 다양한 컴포넌트에 전력을 제공한다. 전원 컴포넌트(806)는 전원 관리 시스템, 하나 또는 복수 개의 전원 및 전자 기기(800)를 위해 전력을 생성, 관리 및 할당하는 것과 관련된 다른 컴포넌트를 포함할 수 있다.
멀티미디어 컴포넌트(808)는 상기 전자 기기(800) 및 사용자 사이에 하나의 출력 인터페이스를 제공하는 스크린을 포함한다. 일부 실시예에 있어서, 스크린은 액정 디스플레이(Liquid Crystal Display, LCD) 및 터치 패널(Touch Panel, TP)을 포함할 수 있다. 만약 스크린이 터치 패널을 포함하면, 스크린은 사용자에 의해 입력된 신호를 수신하도록 터치스크린으로 구현될 수 있다. 터치 패널은 터치, 슬라이드 및 터치 패널에서의 제스처를 감지하도록 하나 또는 복수 개의 터치 센서를 포함한다 상기 터치 센서는 터치 또는 슬라이드 동작의 경계를 감지할 수 있을 뿐만 아니라, 상기 터치 또는 슬라이드 동작과 관련된 지속 시간 및 압력을 검출할 수도 있다. 일부 실시예에 있어서, 멀티미디어 컴포넌트(808)는 하나의 전방 카메라 및 후방 카메라 중 적어도 하나를 포함한다. 전자 기기(800)가 촬영 모드 또는 비디오 모드와 같은 작동 모드일 때, 전방 카메라 및 후방 카메라 중 적어도 하나는 외부의 멀티미디어 데이터를 수신할 수 있다. 각 전방 카메라 및 후방 카메라는 고정된 광학 렌즈 시스템이거나 초점 거리 및 광학 줌 기능을 구비할 수 있다.
오디오 컴포넌트(810)는 오디오 신호 출력 및 오디오 신호 입력 중 적어도 하나를 수행하도록 구성된다. 예를 들어, 오디오 컴포넌트(810)는 하나의 마이크로폰(MIC, Microphone)을 포함하고, 전자 기기(800)가 호출 모드, 기록 모드 및 음성 인식 모드와 같은 작동 모드일 때, 마이크로폰은 외부 오디오 신호를 수신하도록 구성된다. 수신된 오디오 신호는 추가로 메모리(804)에 저장되거나 통신 컴포넌트(816)를 통해 송신될 수 있다. 일부 실시예에 있어서, 오디오 컴포넌트(810)는 오디오 신호를 출력하도록 구성된 하나의 스피커를 더 포함한다.
입력/출력(I/O) 인터페이스(812)는 처리 컴포넌트(802) 및 주변 인터페이스 모듈 사이에 인터페이스를 제공하고, 상기 주변 인터페이스 모듈은 키보드, 클릭 휠, 버튼 등일 수 있다. 이러한 버튼은 홈 버튼, 음량 버튼, 시작 버튼 및 잠금 버튼을 포함할 수 있지만 이에 한정되지 않는다.
센서 컴포넌트(814)는 전자 기기(800)에 다양한 측면의 상태 평가를 제공하기 위한 하나 또는 복수 개의 센서를 포함한다. 예를 들어, 센서 컴포넌트(814)는 전자 기기(800)의 온/오프 상태, 컴포넌트의 상대 위치를 검출할 수 있고, 예를 들어, 상기 컴포넌트는 전자 기기(800)의 모니터와 키패드이며, 센서 컴포넌트(814)는 전자 기기(800) 또는 전자 기기(800)에서 하나의 컴포넌트의 위치 변화, 사용자와 전자 기기(800) 접촉의 존재 유무, 전자 기기(800) 방위 또는 가속/감속 및 전자 기기(800)의 온도 변화도 검출할 수 있다. 센서 컴포넌트(814)는 그 어떤 물리적 접촉이 없을 때 근처 물체의 존재를 검출하도록 구성된 근접 센서를 포함할 수 있다. 센서 컴포넌트(814)는 상보성 금속 산화막 반도체(CMOS, Complementary Metal-Oxide-Semiconductor) 또는 전하 결합 장치(CCD, Charge Coupled Device) 이미지 센서와 같은 이미징 애플리케이션에 사용하기 위한 광 센서를 더 포함할 수 있다. 일부 실시예에 있어서, 상기 센서 컴포넌트(814)는 가속도 센서, 자이로스코프 센서, 자기 센서, 압력 센서 또는 온도 센서를 더 포함할 수 있다.
통신 컴포넌트(816)는 전자 기기(800) 및 다른 기기 사이의 유선 또는 무선 형태의 통신을 용이하게 하도록 구성된다. 전자 기기(800)는 예를 들어 와이파이(Wi-Fi, Wireless Fidelity), 2세대 이동 통신 기술(2G, The 2nd Generation) 또는 3세대 이동 통신 기술(3G, The 3nd Generation) 또는 이들의 조합과 같은 통신 표준에 기반하는 무선 네트워크에 액세스할 수 있다. 일 예시적 실시예에 있어서, 통신 컴포넌트(816)는 방송 채널을 통해 외부 방송 관리 시스템으로부터의 방송 신호 또는 방송 관련 정보를 수신한다. 일 예시적 실시예에 있어서, 상기 통신 컴포넌트(816)는 근거리 통신을 촉진하도록 근거리 자기장 통신(Near Field Communication, NFC) 모듈을 더 포함한다. 예를 들어, NFC 모듈은 무선 주파수 인식(RFID, Radio Frequency Identification) 기술, 적외선 통신 규격(IrDA, Infrared Data Association) 기술, 초광대역(UWB, Ultra Wide Band) 기술, 블루투스(BT, Blue Tooth) 기술 및 다른 기술에 기반하여 구현될 수 있다.
예시적 실시예에 있어서, 전자 기기(800)는 하나 또는 복수 개의 응용 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 디지털 신호 프로세서(Digital Signal Processor, DSP), 디지털 신호 처리 기기(Digital Signal Processing Device, DSPD), 프로그램 가능 논리 소자(Programmable Logic Device, PLD), 필드 프로그램 가능 게이트 어레이(Field Programmable Gate Array, FPGA), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 또는 다른 전자 소자에 의해 구현되어, 상기 태스크 스케줄링 방법을 실행하도록 구성될 수 있다.
예시적 실시예에 있어서, 예를 들어 컴퓨터 프로그램 명령어를 포함하는 메모리(804)와 같은 비휘발성 컴퓨터 판독 가능 저장 매체를 더 제공하고, 상기 컴퓨터 프로그램 명령어는 전자 기기(800)의 프로세서(820)에 의해 수행됨으로써 상기 태스크 스케줄링 방법을 완료하도록 한다.
도 8은 본 발명의 실시예에 따른 전자 기기(1900)의 블록도를 도시한다. 예를 들어, 전자 기기(1900)는 서버로 제공될 수 있다. 도 8을 참조하면, 전자 기기(1900)는 처리 컴포넌트(1922)를 포함하고, 하나 또는 복수 개의 프로세서 및 메모리(1932)를 대표로 하는 메모리 자원을 포함할 수 있으며, 예를 들어 애플리케이션 프로그램과 같은 처리 컴포넌트(1922)에 의해 실행될 수 있는 명령어를 저장하도록 구성된다. 메모리(1932)에 저장된 애플리케이션 프로그램은 하나 또는 하나 이상의 각각 한 세트 명령어에 대응되는 모듈을 포함할 수 있다. 또한, 처리 컴포넌트(1922)는 명령어를 수행하여, 상기 태스크 스케줄링 방법을 수행하도록 구성된다.
전자 기기(1900)는 전자 기기(1900)의 전원 관리를 실행하도록 구성된 전원 컴포넌트(1926), 전자 기기(1900)를 네트워크에 연결하도록 구성된 유선 또는 무선 네트워크 인터페이스(1950) 및 입력 출력(I/O) 인터페이스(1958)를 더 포함할 수 있다. 전자 기기(1900)는, 예를 들어 마이크로소프트 서버 운영 체제(Windows ServerTM), 애플 회사에서 출시한 그래픽 사용자 인터페이스 기반 운영 체제(Mac OS XTM), 다중 사용자 다중 프로세스의 컴퓨터 운영 체제(UnixTM), 자유 및 오픈 소스 코드 Unix 계열 운영 체제(LinuxTM), 오픈 소스 코드 Unix 계열 운영 체제(FreeBSDTM) 또는 유사한 운영 체제와 같은 메모리(1932)에 저장된 운영 체제에 기반하여 동작될 수 있다.
예시적 실시예에 있어서, 예를 들어 컴퓨터 프로그램 명령어를 포함하는 메모리(1932)와 같은 비휘발성 컴퓨터 판독 가능 저장 매체를 더 제공하고, 상기 컴퓨터 프로그램 명령어는 전자 기기(1900)의 처리 컴포넌트(1922)에 의해 수행됨으로써 상기 태스크 스케줄링 방법을 완료하도록 한다.
본 발명의 실시예는 시스템, 방법 및 컴퓨터 프로그램 제품 중 적어도 하나일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 컴퓨터 판독 가능 저장 매체에는 프로세서로 하여금 본 발명의 실시예의 각 측면을 구현하도록 하기 위한 컴퓨터 판독 가능 프로그램 명령어가 탑재되어 있다.
컴퓨터 판독 가능 저장 매체는 명령어 실행 기기에 의해 사용되는 명령어를 유지 및 저장할 수 있는 유형 기기일 수 있다. 컴퓨터 판독 가능 저장 매체는 예를 들어 전기 저장 기기, 자기 저장 기기, 광 저장 기기, 전자기 저장 기기, 반도체 저장 기기 또는 이들의 임의의 적합한 조합일 수 있(이에 한정되지 않는)다. 컴퓨터 판독 가능 저장 매체는, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM, Random Access Memory), 읽기 전용 메모리(ROM), 소거 및 프로그램 가능 읽기 전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 콤팩트 디스크 읽기 전용 메모리(CD-ROM, Compact Disc Read-Only Memory), 디지털 비디오 디스크(DVD, Digital Video Disc), 메모리 스틱, 플로피 디스크, 명령어가 저장된 펀치 카드 또는 홈내에 철기된 구조와 같은 기계적으로 인코딩된 기기 및 이들의 임의의 적합한 조합을 포함할 수 있다. 여기서 사용되는 컴퓨터 판독 가능 저장 매체는 무선 전자파 또는 다른 자유롭게 전파되는 전자기파, 도파관 또는 다른 전송 매체를 통해 전파되는 전자기파(예를 들어, 광섬유 케이블을 통과하는 펄스), 또는 와이어를 통해 전송되는 전기 신호와 같은 순간적인 신호 자체로 해석되지 않는다.
여기서 설명한 컴퓨터 판독 가능 프로그램 명령어는 컴퓨터 판독 가능 저장 매체로부터 각 컴퓨팅/처리 기기로 다운로드 될 수 있거나, 또는 인터넷, 근거리 통신망, 광역 통신망 및 무선 네트워크 중 적어도 하나와 같은 네트워크를 통해, 외부 컴퓨터 또는 외부 저장 기기로 다운로드 될 수 있다. 네트워크는 동 전송 케이블, 광섬유 전송, 무선 전송, 라우터, 방화벽, 교환기, 게이트웨이 컴퓨터 및 에지 서버 중 적어도 하나를 포함할 수 있다. 각 컴퓨팅/처리 기기의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독 가능 프로그램 명령어를 수신하고, 각 컴퓨팅/처리 기기에서의 컴퓨터 판독 가능 저장 매체에 저장하도록, 상기 컴퓨터 판독 가능 프로그램 명령어를 전달한다.
본 발명의 동작을 실행하기 위한 컴퓨터 프로그램 명령어는 어셈블리 명령어, 명령어 세트 아키텍처(ISA) 명령어, 머신 명령어, 머신 관련 명령어, 마이크로 코드, 펌웨어 명령어, 상태 설정 데이터, 또는 하나 또는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드 또는 목적 코드일 수 있고, 상기 프로그래밍 언어는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어 및 “C” 언어 또는 유사한 프로그래밍 언어와 같은 일반적인 프로그래밍 언어를 포함한다. 컴퓨터 판독 가능 프로그램 명령어는 사용자 컴퓨터에서 완전히 수행되거나, 사용자 컴퓨터에서 부분적으로 수행되거나, 독립적인 소프트웨어 패키지로서 수행되거나, 사용자 컴퓨터에서 일부가 수행되고 원격 컴퓨터에서 일부가 수행되거나, 원격 컴퓨터 또는 서버에서 완전히 수행될 수 있다. 컴퓨터 판독 가능 프로그램 명령어는 사용자 컴퓨터에서 완전히 수행되거나, 사용자 컴퓨터에서 부분적으로 수행되거나, 독립적인 소프트웨어 패키지로서 수행되거나, 사용자 컴퓨터에서 일부가 수행되고 원격 컴퓨터에서 일부가 수행되거나, 원격 컴퓨터 또는 서버에서 완전히 수행될 수 있다. 원격 컴퓨터와 관련된 상황에서, 원격 컴퓨터는 근거리 통신망(LAN, Local Area Network) 또는 광대역 통신망(WAN, Wide Area Network)을 포함하는 모든 타입의 네트워크를 통해 사용자 컴퓨터에 연결되거나 외부 컴퓨터에 연결(예를 들어 인터넷 서비스 제공 업체를 사용하여 인터넷을 통해 연결)될 수 있다. 일부 실시예에 있어서, 프로그램 가능 논리 회로, 필드 프로그래머블 게이트 어레이(FPGA) 또는 프로그램 가능 논리 어레이 (PLA)와 같은 전자 회로는 컴퓨터 판독 가능 프로그램 명령어의 상태 정보를 이용하여 개인화될 수 있고, 상기 전자 회로는 컴퓨터 판독 가능 프로그램 명령어를 수행할 수 있음으로써, 본 발명의 다양한 측면을 구현한다.
여기서 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및 블록도 중 적어도 하나를 참조하여 본 발명의 다양한 측면을 설명하였다. 흐름도 및 블록도 중 적어도 하나의 각 블록 및 흐름도 및 블록도 중 적어도 하나의 블록들의 조합은, 컴퓨터 판독 가능 프로그램 명령어에 의해 모두 구현될 수 있음을 이해해야 한다.
이러한 컴퓨터 판독 가능 프로그램 명령어는 범용 컴퓨터, 특수 목적 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서에 제공될 수 있음으로써, 이러한 명령어가 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서에 의해 수행되도록 하는 기계가 생성되고, 흐름도 및 블록도 중 적어도 하나에서의 하나 또는 복수 개의 블록에 지정된 기능/동작을 구현하는 장치가 생성된다. 이러한 컴퓨터 판독 가능 프로그램 명령어를 컴퓨터 판독 가능 저장 매체에 저장할 수도 있으며, 이러한 명령어는 컴퓨터, 프로그램 가능 데이터 처리 장치 및 다른 기기 중 적어도 하나가 특정한 방법으로 작동될 수 있도록 함으로써, 명령어가 저장되어 있는 컴퓨터 판독 가능 매체는 제조품을 포함하며, 상기 제조품은 흐름도 및 블록도 중 적어도 하나에서의 하나 또는 복수 개의 블록에 지정된 기능/동작을 구현하는 명령어를 포함한다.
컴퓨터 판독 가능 프로그램 명령어는 컴퓨터, 다른 프로그램 가능 데이터 처리 장치 또는 다른 기기에 로딩될 수도 있어, 컴퓨터로 구현되는 과정을 생성하기 위해, 일련의 동작 단계가 컴퓨터, 다른 프로그램 가능 데이터 처리 장치 또는 다른 기기에서 수행되도록 함으로써, 컴퓨터, 다른 프로그램 가능 데이터 처리 장치 또는 다른 기기에서 수행되는 명령어는 흐름도 및 블록도 중 적어도 하나에서의 하나 또는 복수 개의 블록에 지정된 기능/동작을 구현한다.
도면에서의 흐름도 및 블록도는 본 발명의 복수 개의 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 구현 가능한 체계 아키텍처, 기능 및 동작을 도시한다. 이와 관련하여, 흐름도 또는 블록도에서의 각 블록은 모듈, 프로그램 세그먼트 또는 명령어의 일부를 나타낼 수 있고, 상기 모듈, 프로그램 세그먼트 또는 명령어의 일부는 하나 또는 복수 개의 지정된 논리적 기능을 구현하기 위한 실행 가능한 명령어를 포함한다. 일부 대안적인 구현에서, 블록에 표시된 기능은 도면에 표시된 것과 상이한 순서로 발생될 수도 있다. 예를 들어, 연속적으로 도시된 두 개의 블록은 실제로 동시에 수행될 수 있고, 때로는 관련 기능에 따라 역순으로 수행될 수도 있으며, 이는 관련된 기능에 의해 결정된다. 또한 유의해야 할 것은, 블록도 및 흐름도 중 적어도 하나에서의 각 블록 및 블록도 및 흐름도 중 적어도 하나에서의 블록의 조합은, 지정된 기능 또는 동작을 실행하는 전용 하드웨어 기반의 시스템에 의해 구현될 수 있거나, 전용 하드웨어와 컴퓨터 명령어의 조합으로 구현될 수 있다.
상기 컴퓨터 프로그램 제품은 하드웨어, 소프트웨어 또는 이들의 결합의 형태를 통해 구현될 수 있다. 선택 가능한 실시예에 있어서, 상기 컴퓨터 프로그램 제품은 컴퓨터 저장 매체로서 체현되며, 다른 선택 가능한 실시예에 있어서, 컴퓨터 프로그램 제품은 예를 들어 소프트웨어 개발 키트(Software Development Kit, SDK) 등과 같은 소프트웨어 제품으로서 체현된다.
이상 본 발명의 각 실시예를 설명하였고, 상기 설명은 예시적이며, 철저하지 않고, 개시된 각 실시예에 한정되지도 않는다. 설명된 각 실시예의 범위 및 사상을 벗어나지 않는 경우, 많은 수정 및 변경은 본 기술 분야의 통상적인 기술자에게는 자명한 것이다. 본문에서 사용된 용어의 선택은 각 실시예의 원리, 실제 응용 또는 시장에서의 기술에 대한 개선을 가장 잘 해석하거나, 또는 본 기술분야의 다른 통상적인 기술자가 본문에서 개시된 각 실시예를 이해할 수 있는 것을 목적으로 한다.
본 발명의 실시예에서, 처리될 태스크의 제1 태스크 타입에 따라, 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정 - 복수 개의 단말 기기는 제1 단말 기기를 포함함 - 하고; 제1 단말 기기가 처리될 태스크를 대상으로 하는 제1 연산 자원 및 제1 단말 기기의 제1 잔여 연산 자원에 따라, 제1 단말 기기에서 타깃 단말 기기를 결정하며; 처리될 태스크의 처리 데이터를 타깃 단말 기기로 발송함으로써, 타깃 단말 기기로 하여금 처리될 태스크를 실행하도록 한다. 본 발명의 실시예는 단말 기기의 연산 자원으로 하여금 충분히 사용되어, 클라우드 서버의 연산 압력을 완화시키는 것을 구현할 수 있다.

Claims (29)

  1. 태스크 스케줄링 방법으로서,
    클라우드 서버에 적용되고,
    처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계 - 상기 복수 개의 단말 기기는 상기 제1 단말 기기를 포함함 - ;
    상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계; 및
    상기 처리될 태스크의 처리 데이터를 상기 타깃 단말 기기로 발송함으로써, 상기 타깃 단말 기기로 하여금 상기 처리될 태스크를 실행하도록 하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  2. 제1항에 있어서,
    상기 클라우드 서버에는 상기 복수 개의 단말 기기와 태스크 타입 사이의 대응 관계가 저장되어 있고,
    상기 처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계는,
    상기 대응 관계 및 상기 제1 태스크 타입에 따라, 상기 복수 개의 단말 기기에서 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하는 단계는,
    상기 제1 단말 기기에서 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제2 단말 기기를 결정하는 단계 - 상기 제1 단말 기기는 상기 제2 단말 기기를 포함함 - ; 및
    상기 제2 단말 기기가 복수 개인 경우, 상기 제2 단말 기기의 제2 잔여 연산 자원 및 상기 제2 단말 기기가 상기 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 상기 제2 단말 기기에서 상기 타깃 단말 기기를 결정하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  4. 제3항에 있어서,
    상기 제2 단말 기기의 제2 잔여 연산 자원 및 상기 제2 단말 기기가 상기 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 상기 제2 단말 기기에서 상기 타깃 단말 기기를 결정하는 단계는,
    상기 제2 연산 자원과 상기 제2 잔여 연산 자원 사이의 비율값을 결정하는 단계; 및
    상기 비율값에서의 최대값과 대응되는 제2 단말 기기를, 상기 타깃 단말 기기로 결정하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 복수 개의 단말 기기에 상기 제1 태스크 타입과 매칭되는 제1 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하는 단계를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  6. 제1항 또는 제3항에 있어서,
    상기 제1 단말 기기에 제1 잔여 연산 자원이 상기 제1 연산 자원보다 큰 제2 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하는 단계를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 타깃 단말 기기에 의해 리턴된 상기 처리될 태스크의 태스크 처리 결과를 수신하는 단계 - 상기 태스크 처리 결과는 상기 처리 데이터에 대해 처리하는 처리 결과를 포함함 - 를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 단말 기기에 의해 업로드된 기기 정보를 획득하는 단계 - 상기 기기 정보는 상기 단말 기기의 기기 식별자, 상기 단말 기기와 매칭되는 태스크 타입, 상기 태스크 타입에 대응되는 태스크의 연산 자원, 상기 단말 기기의 총 연산 자원 및 상기 단말 기기의 잔여 연산 자원을 포함함 - 를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  9. 태스크 스케줄링 방법으로서,
    타깃 단말 기기에 적용되고,
    클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 경우, 상기 처리 데이터에 대해 처리하여, 상기 처리될 태스크의 태스크 처리 결과를 얻는 단계; 및
    상기 태스크 처리 결과를 상기 클라우드 서버에 송신하는 단계를 포함하며,
    상기 타깃 단말 기기는 상기 클라우드 서버가 상기 처리될 태스크의 제1 태스크 타입, 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 결정한 것이고, 상기 제1 단말 기기는 상기 제1 태스크 타입과 서로 매칭되는 것을 특징으로 하는 태스크 스케줄링 방법.
  10. 제9항에 있어서,
    상기 타깃 단말 기기의 기기 정보를 결정하는 단계; 및
    상기 타깃 단말 기기의 기기 정보를 상기 클라우드 서버에 송신하여, 상기 클라우드 서버로 하여금 상기 타깃 단말 기기의 기기 정보를 저장하도록 하는 단계 - 상기 타깃 단말 기기의 기기 정보는, 타깃 단말 기기의 기기 식별자, 상기 타깃 단말 기기와 매칭되는 제2 태스크 타입, 상기 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원, 상기 타깃 단말 기기의 총 연산 자원 및 상기 타깃 단말 기기의 잔여 연산 자원을 포함함 - 를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  11. 제10항에 있어서,
    기설정 샘플링 주기에 따라 샘플링된 상기 타깃 단말 기기가 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보를 획득하는 단계; 및
    상기 제1 상태에서의 작동 정보 및 상기 제2 상태에서의 작동 정보에 따라, 상기 타깃 연산 자원을 결정하는 단계 - 상기 제1 상태는 상기 타깃 단말 기기가 태스크를 실행하지 않는 상태를 포함하고, 상기 제2 상태는 상기 타깃 단말 기기가 상기 제2 태스크 타입에 대응되는 태스크를 실행하는 상태를 포함함 - 를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  12. 제11항에 있어서,
    상기 제1 상태에서의 작동 정보 및 상기 제2 상태에서의 작동 정보에 따라, 상기 타깃 연산 자원을 결정하는 단계는,
    상기 제1 상태에서의 작동 정보의 제1 평균값 및 상기 제2 상태에서의 작동 정보의 제2 평균값을 결정하는 단계; 및
    상기 제2 평균값과 상기 제1 평균값 사이의 차이값에서의 최대값을, 상기 타깃 연산 자원으로 결정하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  13. 제12항에 있어서,
    상기 작동 정보는 상기 타깃 단말 기기의 중앙처리장치(CPU) 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함하고,
    상기 제2 평균값과 상기 제1 평균값 사이의 차이값은,
    상기 제2 상태에서의 CPU 사용률의 평균값과 상기 제1 상태에서의 CPU 사용률의 평균값 사이의 차이값;
    상기 제2 상태에서의 하드웨어 가속 엔진 사용률의 평균값과 상기 제1 상태에서의 하드웨어 가속 엔진 사용률의 평균값 사이의 차이값;
    상기 제2 상태에서의 메모리 사용률의 평균값과 상기 제1 상태에서의 메모리 사용률의 평균값 사이의 차이값; 및
    상기 제2 상태에서의 메모리 대역폭 사용률의 평균값과 상기 제1 상태에서의 메모리 대역폭 사용률의 평균값 사이의 차이값 중 적어도 하나를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  14. 태스크 스케줄링 장치로서,
    클라우드 서버에 적용되고,
    처리될 태스크의 제1 태스크 타입에 따라, 상기 클라우드 서버와 연결되는 복수 개의 단말 기기에서, 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하도록 구성되는 제1 단말 기기 결정 모듈 - 상기 복수 개의 단말 기기는 상기 제1 단말 기기를 포함함 - ;
    상기 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 타깃 단말 기기를 결정하도록 구성되는 타깃 단말 기기 결정 모듈; 및
    상기 처리될 태스크의 처리 데이터를 상기 타깃 단말 기기로 발송함으로써, 상기 타깃 단말 기기로 하여금 상기 처리될 태스크를 실행하도록 구성되는 처리 데이터 발송 모듈을 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  15. 제14항에 있어서,
    상기 클라우드 서버에는 상기 복수 개의 단말 기기와 태스크 타입 사이의 대응 관계가 저장되어 있고, 상기 제1 단말 기기 결정 모듈은 또한, 상기 대응 관계 및 상기 제1 태스크 타입에 따라, 상기 복수 개의 단말 기기에서 상기 제1 태스크 타입과 매칭되는 제1 단말 기기를 결정하도록 구성되는 것을 특징으로 하는 태스크 스케줄링 장치.
  16. 제14항 또는 제15항에 있어서,
    상기 타깃 단말 기기 결정 모듈은,
    상기 제1 단말 기기에서 제1 잔여 연산 자원이 제1 연산 자원보다 큰 제2 단말 기기를 결정하도록 구성되는 제2 단말 기기 결정 서브 모듈 - 상기 제1 단말 기기는 상기 제2 단말 기기를 포함함 - ; 및
    상기 제2 단말 기기가 복수 개인 경우, 상기 제2 단말 기기의 제2 잔여 연산 자원 및 상기 제2 단말 기기가 상기 처리될 태스크를 대상으로 하는 제2 연산 자원에 따라, 상기 제2 단말 기기에서 상기 타깃 단말 기기를 결정하도록 구성되는 타깃 단말 기기 결정 서브 모듈을 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  17. 제16항에 있어서,
    상기 타깃 단말 기기 결정 서브 모듈은 또한, 상기 제2 단말 기기가 복수 개인 경우, 상기 제2 연산 자원과 상기 제2 잔여 연산 자원 사이의 비율값을 결정하고; 상기 비율값에서의 최대값과 대응되는 제2 단말 기기를, 상기 타깃 단말 기기로 결정하도록 구성되는 것을 특징으로 하는 태스크 스케줄링 장치.
  18. 제14항 또는 제15항에 있어서,
    상기 복수 개의 단말 기기에 상기 제1 태스크 타입과 매칭되는 제1 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하도록 구성되는 제1 데이터 처리 모듈을 더 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  19. 제14항 또는 제16항에 있어서,
    상기 제1 단말 기기에 제1 잔여 연산 자원이 상기 제1 연산 자원보다 큰 제2 단말 기기가 존재하지 않는 경우, 상기 클라우드 서버에서 상기 처리될 태스크를 실행하도록 구성되는 제2 데이터 처리 모듈을 더 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 타깃 단말 기기에 의해 리턴된 상기 처리될 태스크의 태스크 처리 결과를 수신하도록 구성되는 수신 모듈 - 상기 태스크 처리 결과는 상기 처리 데이터에 대해 처리하는 처리 결과를 포함함 - 을 더 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  21. 제14항 내지 제20항 중 어느 한 항에 있어서,
    상기 단말 기기에 의해 업로드된 기기 정보를 획득하도록 구성되는 기기 정보 획득 모듈 - 상기 기기 정보는 상기 단말 기기의 기기 식별자, 상기 단말 기기와 매칭되는 태스크 타입, 상기 태스크 타입에 대응되는 태스크의 연산 자원, 상기 단말 기기의 총 연산 자원 및 상기 단말 기기의 잔여 연산 자원을 포함함 - 을 더 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  22. 태스크 스케줄링 장치로서,
    타깃 단말 기기에 적용되고,
    클라우드 서버에 의해 송신된 처리될 태스크의 처리 데이터가 수신된 경우, 상기 처리 데이터에 대해 처리하여, 상기 처리될 태스크의 태스크 처리 결과를 얻도록 구성되는 처리 모듈; 및
    상기 태스크 처리 결과를 상기 클라우드 서버에 송신하도록 구성되는 처리 결과 송신 모듈을 포함하며,
    상기 타깃 단말 기기는 상기 클라우드 서버가 상기 처리될 태스크의 제1 태스크 타입, 제1 단말 기기가 상기 처리될 태스크를 대상으로 하는 제1 연산 자원 및 상기 제1 단말 기기의 제1 잔여 연산 자원에 따라, 상기 제1 단말 기기에서 결정한 것이고, 상기 제1 단말 기기는 상기 제1 태스크 타입과 서로 매칭되는 것을 특징으로 하는 태스크 스케줄링 장치.
  23. 제22항에 있어서,
    상기 타깃 단말 기기의 기기 정보를 결정하도록 구성되는 기기 정보 결정 모듈; 및
    상기 타깃 단말 기기의 기기 정보를 상기 클라우드 서버에 송신하여, 상기 클라우드 서버로 하여금 상기 타깃 단말 기기의 기기 정보를 저장하도록 구성되는 기기 정보 송신 모듈 - 상기 타깃 단말 기기의 기기 정보는, 타깃 단말 기기의 기기 식별자, 상기 타깃 단말 기기와 매칭되는 제2 태스크 타입, 상기 제2 태스크 타입에 대응되는 태스크의 타깃 연산 자원, 상기 타깃 단말 기기의 총 연산 자원 및 상기 타깃 단말 기기의 잔여 연산 자원을 포함함 - 을 더 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  24. 제23항에 있어서,
    기설정 샘플링 주기에 따라 샘플링된 상기 타깃 단말 기기가 제1 상태에서의 작동 정보 및 제2 상태에서의 작동 정보를 획득하도록 구성되는 작동 정보 모듈; 및
    상기 제1 상태에서의 작동 정보 및 상기 제2 상태에서의 작동 정보에 따라, 상기 타깃 연산 자원을 결정하도록 구성되는 연산 자원 결정 모듈 - 상기 제1 상태는 상기 타깃 단말 기기가 태스크를 실행하지 않는 상태를 포함하고, 상기 제2 상태는 상기 타깃 단말 기기가 상기 제2 태스크 타입에 대응되는 태스크를 실행하는 상태를 포함함 - 을 더 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  25. 제24항에 있어서,
    상기 연산 자원 결정 모듈은, 상기 제1 상태에서의 작동 정보의 제1 평균값 및 상기 제2 상태에서의 작동 정보의 제2 평균값을 결정하도록 구성되는 평균값 결정 서브 모듈; 및 상기 제2 평균값과 상기 제1 평균값 사이의 차이값에서의 최대값을, 상기 타깃 연산 자원으로 결정하도록 구성되는 연산 자원 결정 서브 모듈을 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  26. 제25항에 있어서,
    상기 작동 정보는 상기 타깃 단말 기기의 CPU 사용률, 하드웨어 가속 엔진 사용률, 메모리 사용률 및 메모리 대역폭 사용률 중 적어도 하나를 포함하고, 상기 제2 평균값과 상기 제1 평균값 사이의 차이값은, 상기 제2 상태에서의 CPU 사용률의 평균값과 상기 제1 상태에서의 CPU 사용률의 평균값 사이의 차이값; 상기 제2 상태에서의 하드웨어 가속 엔진 사용률의 평균값과 상기 제1 상태에서의 하드웨어 가속 엔진 사용률의 평균값 사이의 차이값; 상기 제2 상태에서의 메모리 사용률의 평균값과 상기 제1 상태에서의 메모리 사용률의 평균값 사이의 차이값; 및 상기 제2 상태에서의 메모리 대역폭 사용률의 평균값과 상기 제1 상태에서의 메모리 대역폭 사용률의 평균값 사이의 차이값 중 적어도 하나를 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  27. 전자 기기로서,
    프로세서; 및
    프로세서가 실행 가능한 명령어를 저장하도록 구성된 메모리를 포함하고;
    상기 프로세서는 상기 메모리에 저장된 명령어를 호출하여, 제1항 내지 제8항 중 어느 한 항에 따른 태스크 스케줄링 방법 또는 제9항 내지 제13항 중 어느 한 항에 따른 태스크 스케줄링 방법을 실행하도록 구성된 것을 특징으로 하는 전자 기기.
  28. 컴퓨터 판독 가능 저장 매체로서,
    컴퓨터 프로그램 명령어가 저장되어 있고, 상기 컴퓨터 프로그램 명령어가 프로세서에 의해 실행될 때 제1항 내지 제8항 중 어느 한 항에 따른 태스크 스케줄링 방법 또는 제9항 내지 제13항 중 어느 한 항에 따른 태스크 스케줄링 방법을 구현하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  29. 컴퓨터 프로그램으로서,
    컴퓨터 판독 가능 코드를 포함하고, 상기 컴퓨터 판독 가능 코드가 전자 기기에서 작동될 때, 상기 전자 기기에서의 프로세서가 제1항 내지 제8항 중 어느 한 항에 따른 태스크 스케줄링 방법 또는 제9항 내지 제13항 중 어느 한 항에 따른 태스크 스케줄링 방법을 구현하도록 구성된 것을 특징으로 하는 컴퓨터 프로그램.
KR1020227020274A 2021-03-22 2021-07-19 태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 KR20220133858A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110302393.1A CN112905350A (zh) 2021-03-22 2021-03-22 任务调度方法及装置、电子设备和存储介质
CN202110302393.1 2021-03-22
PCT/CN2021/107171 WO2022198853A1 (zh) 2021-03-22 2021-07-19 任务调度方法及装置、电子设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
KR20220133858A true KR20220133858A (ko) 2022-10-05

Family

ID=76106373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227020274A KR20220133858A (ko) 2021-03-22 2021-07-19 태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품

Country Status (3)

Country Link
KR (1) KR20220133858A (ko)
CN (1) CN112905350A (ko)
WO (1) WO2022198853A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905350A (zh) * 2021-03-22 2021-06-04 北京市商汤科技开发有限公司 任务调度方法及装置、电子设备和存储介质
CN113742059B (zh) * 2021-07-15 2024-03-29 上海朋熙半导体有限公司 任务分配方法、装置、计算机设备和存储介质
CN113691617A (zh) * 2021-08-23 2021-11-23 北京思必拓科技有限责任公司 终端设备群软硬件资源互联共享方法及***
CN113742068A (zh) * 2021-08-27 2021-12-03 深圳市商汤科技有限公司 任务调度方法、装置、设备、存储介质及计算机程序产品
CN113656166A (zh) * 2021-09-02 2021-11-16 上海联影医疗科技股份有限公司 一种任务处理***及其计算资源分配方法
CN114090247A (zh) * 2021-11-22 2022-02-25 北京百度网讯科技有限公司 用于处理数据的方法、装置、设备以及存储介质
CN114201278B (zh) * 2021-12-07 2023-12-15 北京百度网讯科技有限公司 任务处理方法、任务处理装置、电子设备以及存储介质
CN117435354B (zh) * 2023-12-20 2024-04-09 腾讯科技(深圳)有限公司 算法模型的运行方法、装置、***、电子设备及存储介质
CN117453377B (zh) * 2023-12-21 2024-04-26 腾讯科技(深圳)有限公司 模型调度方法、终端设备以及服务器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049268B (zh) * 2015-08-28 2018-12-28 东方网力科技股份有限公司 分布式计算资源分配***和任务处理方法
US10368283B2 (en) * 2016-04-29 2019-07-30 International Business Machines Corporation Convergence of cloud and mobile environments
CN108062243B (zh) * 2016-11-08 2022-01-04 杭州海康威视数字技术股份有限公司 执行计划的生成方法、任务执行方法及装置
US20180191859A1 (en) * 2016-12-29 2018-07-05 Ranjan Sharma Network resource schedulers and scheduling methods for cloud deployment
CN106933664B (zh) * 2017-03-09 2020-06-30 北京搜狐新媒体信息技术有限公司 一种Hadoop集群的资源调度方法及装置
CN111045795A (zh) * 2018-10-11 2020-04-21 浙江宇视科技有限公司 资源调度方法及装置
CN109976907B (zh) * 2019-03-11 2021-08-31 百度在线网络技术(北京)有限公司 任务分配方法和***、电子设备、计算机可读介质
CN110597626B (zh) * 2019-08-23 2022-09-06 第四范式(北京)技术有限公司 在分布式***中资源及任务的分配方法、装置及***
CN111124662B (zh) * 2019-11-07 2022-11-08 北京科技大学 一种雾计算负载均衡方法及***
CN111427694A (zh) * 2020-03-26 2020-07-17 北京金山云网络技术有限公司 任务执行方法、装置、***和服务器
CN111367677A (zh) * 2020-03-31 2020-07-03 中国工商银行股份有限公司 集群资源分配方法及***
CN111796933B (zh) * 2020-06-28 2023-11-21 北京小米松果电子有限公司 资源调度方法、装置、存储介质和电子设备
CN112905350A (zh) * 2021-03-22 2021-06-04 北京市商汤科技开发有限公司 任务调度方法及装置、电子设备和存储介质

Also Published As

Publication number Publication date
WO2022198853A1 (zh) 2022-09-29
CN112905350A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
KR20220133858A (ko) 태스크 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품
EP3687158A1 (en) Image processing method and device
RU2636677C2 (ru) Способ и приспособление для привязки устройства
US10558511B2 (en) Method and device for evaluating system fluency, and UE
WO2018219170A1 (zh) 控制对焦的方法、计算机设备及计算机可读存储介质
EP3343996A1 (en) Method and apparatus for triggering reporting buffer status report and user equipment
EP2978202A1 (en) Calling method, device and system
CN109121468A (zh) 关于网络切片的接入方法及装置
US20190051147A1 (en) Remote control method, apparatus, terminal device, and computer readable storage medium
WO2015100913A1 (zh) 图像缩略图的生成方法、装置和终端
CN110502444B (zh) 一种图像处理算法的测试方法及测试装置
CN113887474B (zh) 呼吸率检测方法及装置、电子设备和存储介质
JP6862564B2 (ja) 画像合成のための方法、装置および不揮発性コンピュータ可読媒体
CN111338971B (zh) 应用测试方法、装置、电子设备及存储介质
CN107820684A (zh) 信道检测、信息发送方法、装置及通信设备
CN111010314A (zh) 终端设备的通信测试方法及装置、路由设备、存储介质
RU2663355C1 (ru) Способ и устройство для установления соединения для услуги
CN112867175A (zh) 设备连接方法、装置、电子设备和存储介质
CN111953980A (zh) 视频处理方法及装置
CN115391601B (zh) 视频格式的检测方法、索引模型的构建方法及装置
CN115512116B (zh) 图像分割模型优化方法、装置、电子设备及可读存储介质
CN114518959A (zh) 基于分布式的节点资源负载均衡方法、装置及电子设备
CN112256432A (zh) 服务过载的处理方法、装置、电子设备及存储介质
CN113867914A (zh) 任务调度方法及装置、电子设备和存储介质
CN110784721A (zh) 一种图片数据压缩方法、装置、电子设备及存储介质