KR101771928B1 - 태스크 스케줄링 장치 및 방법 - Google Patents

태스크 스케줄링 장치 및 방법 Download PDF

Info

Publication number
KR101771928B1
KR101771928B1 KR1020160021490A KR20160021490A KR101771928B1 KR 101771928 B1 KR101771928 B1 KR 101771928B1 KR 1020160021490 A KR1020160021490 A KR 1020160021490A KR 20160021490 A KR20160021490 A KR 20160021490A KR 101771928 B1 KR101771928 B1 KR 101771928B1
Authority
KR
South Korea
Prior art keywords
task
satisfaction index
scheduling
satisfaction
tasks
Prior art date
Application number
KR1020160021490A
Other languages
English (en)
Other versions
KR20160102917A (ko
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 KR20160102917A publication Critical patent/KR20160102917A/ko
Application granted granted Critical
Publication of KR101771928B1 publication Critical patent/KR101771928B1/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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

프로세서의 자원을 서비스 받도록 태스크를 스케줄링하는 태스크 스케줄링 장치는, 프로세서의 자원에 대해 각 태스크가 서비스 받을 기대 할당량의 비율인 기대값을 산출하는 기대값 산출부; 산출된 기대값에 기초하여, 각 태스크가 받은 서비스의 만족 정도를 나타내는 태스크 만족 지수를 산출하는 만족 지수 산출부; 및 산출된 태스크 만족 지수에 기초하여, 태스크를 스케줄링하는 태스크 스케줄링부; 를 포함할 수 있다.
이와 같은 태스크 스케줄링 장치 및 방법에 의하면, 태스크의 지분율을 이용하여 자원 할당의 만족 정도를 수치화하고, 이를 이용하여 태스크 스케줄링을 수행함으로써, 스케줄링 과정에 있어 높은 공정성을 담보할 수 있다. 태스크의 지분 분포가 편향되거나, 태스크의 수가 많아지더라도 기대 실행시간과 실제 실행시간과의 차이인 서비스 시간 오차(service time error)의 상한을 보장하고, 평균 서비스 시간 오차 측면에서 높은 공정성을 제공한다. 태스크의 지분 및 지분 분포의 다양성을 제공할 수 있으며, 이와 함께 서비스 품질의 다양성을 제공할 수 있다. 또한, 단일처리기 기반 서버 시스템과 다중처리기 기반 서버 시스템에 모두 적용이 가능하다.

Description

태스크 스케줄링 장치 및 방법{TASK SCHEDULING APPARATUS AND METHOD}
본 발명은 서버 시스템 환경에서 태스크를 스케줄링하는 장치 및 방법에 관한 것이다.
네트워크와 하드웨어의 발전으로 서버 시스템은 그 활용 범위가 넓어지면서 사용자의 요구도 다양해지고 높은 수준의 서비스 품질이 요구되고 있다. 이를 위해 서버 시스템은 서로 다른 요구사항을 포함하는 다양한 태스크들에게 한정된 자원을 공정하게 할당하고, 대규모 요구에도 안정적으로 지원하도록 높은 효율성을 제공하는 스케줄링 알고리즘을 채택할 필요성이 생겼다. 여기서, 스케줄링이란 서버 시스템을 구성하고 있는 다양한 태스크들에게 한정된 시스템 자원을 언제, 얼마만큼 배분할 것인가는 결정하는 프로그램 기능을 의미한다.
우선순위를 정해 놓고 정해진 우선순위에 따라 자원을 할당하는 기존의 우선순위 기반 스케줄링 알고리즘은 주어진 시간 동안 태스크에게 할당할 컴퓨팅 자원의 양을 정확히 예측할 수 없어 높은 공정성을 기대하기 어려운 문제점이 있다.
가상 시간(virtual time) 기반의 스케줄링 알고리즘들은 높은 공정성을 보이는 반면 태스크가 갖는 지분 분포가 다양해지거나, 태스크의 수가 많아질수록 스케줄링 오버헤드가 커지는 문제점이 있다.
태스크들의 누적 실행 시간을 각 태스크의 지분 비율에 의해 정규화하는 CFS(Complete Fair Scheduler) 스케줄링 알고리즘은 태스크의 지분이 일정 범위의 정수값에 의해 결정되므로 다양한 서비스 품질을 제공하는데 한계가 있다.
따라서 태스크 스케줄링에 있어 공정성을 담보하면서도 스케줄링 오버헤드, 다양성의 한계 등을 극복하는 새로운 알고리즘 도입에 대한 니즈가 발생하고 있다.
관련 선행기술로는 대한민국 공개특허공보 제10-2013-0115574호(발명의 명칭: 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치, 공개일자: 2013. 10. 22)가 있다.
본 발명은 태스크의 지분율을 이용하여 자원 할당의 만족 정도를 수치화하고, 이를 이용하여 태스크 스케줄링을 수행하는 장치 및 방법을 제공하고자 한다.
상술한 과제를 해결하기 위하여, 다음과 같은 태스크 스케줄링 장치 및 방법이 제공된다.
프로세서의 자원을 서비스 받도록 태스크를 스케줄링하는 태스크 스케줄링 장치는, 프로세서의 자원에 대해 각 태스크가 서비스 받을 기대 할당량의 비율인 기대값을 산출하는 기대값 산출부; 산출된 기대값에 기초하여, 각 태스크가 받은 서비스의 만족 정도를 나타내는 태스크 만족 지수를 산출하는 만족 지수 산출부; 및 산출된 태스크 만족 지수에 기초하여, 태스크를 스케줄링하는 태스크 스케줄링부; 를 포함할 수 있다.
만족 지수 산출부는, 하기의 [수학식 2]을 이용하여, 태스크 만족 지수를 산출할 수 있다.
[수학식 2]
Figure 112016017911549-pat00001

여기서,
Figure 112016017911549-pat00002
는 n번째 단위 시간에서 i번째 태스크(410)의 태스크 만족 지수를 나타내고,
Figure 112016017911549-pat00003
는 n 번째 단위 시간에서 i
Figure 112016017911549-pat00004
번째 태스크(410)의 실행 여부에 따라 0 또는 1을 반환하는 함수,
Figure 112016017911549-pat00005
는 i번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다.
태스크 스케줄링부는, 태스크 만족 지수가 낮은 태스크에 우선 순위를 두고, 우선 순위가 높은 순서대로 태스크를 선택하여 프로세서에 전달할 수 있다.
만족 지수 산출부는, 하기의 [수학식 3]에 의해 정의되는 잠재적 만족 지수를 산출할 수 있다.
[수학식 3]
Figure 112016017911549-pat00006

여기서
Figure 112016017911549-pat00007
는 n번째 단위 시간에서 i번째 태스크의 잠재적 만족 지수를 나타내고,
Figure 112016017911549-pat00008
는 n번째 단위 시간에서 i번째 태스크(410)의 태스크 만족 지수를 나타내며,
Figure 112016017911549-pat00009
는 i번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다.
태스크 스케줄링부는, 잠재적 만족 지수에 기초하여, 태스크를 스케줄링할 수 있다.
프로세서의 자원을 서비스 받도록 태스크를 스케줄링하는 태스크 스케줄링 방법은, 프로세서의 자원에 대해 각 태스크가 서비스 받을 기대 할당량의 비율인 기대값을 산출하고; 산출된 기대값에 기초하여, 각 태스크가 받은 서비스의 만족 정도를 나타내는 태스크 만족 지수를 산출하고; 및 산출된 태스크 만족 지수에 기초하여, 태스크를 스케줄링하는; 것을 포함할 수 있다.
이와 같은 태스크 스케줄링 장치 및 방법에 의하면, 태스크의 지분율을 이용하여 자원 할당의 만족 정도를 수치화하고, 이를 이용하여 태스크 스케줄링을 수행함으로써, 스케줄링 과정에 있어 높은 공정성을 담보할 수 있다.
태스크의 지분 분포가 편향되거나, 태스크의 수가 많아지더라도 기대 실행시간과 실제 실행시간과의 차이인 서비스 시간 오차(service time error)의 상한을 보장하고, 평균 서비스 시간 오차 측면에서 높은 공정성을 제공한다.
태스크의 지분 및 지분 분포의 다양성을 제공할 수 있으며, 이와 함께 서비스 품질의 다양성을 제공할 수 있다.
또한, 단일처리기 기반 서버 시스템과 다중처리기 기반 서버 시스템에 모두 적용이 가능하다.
도 1은 태스크 스케줄링 장치의 일 실시예에 따른 구성도이다.
도 2는 태스크의 상태 전이를 설명하기 위한 도면이다.
도 3은 스케줄러의 일 실시예에 따른 구성도이다.
도 4는 태스크의 실행 여부에 따른 태스크 만족 지수를 설명하기 위한 도면이다.
도 5a 내지 도 5d는 태스크 스케줄링의 과정을 단위 시간에 따라 도시한 도면이다.
도 6은 태스크 스케줄링 방법의 일 실시예에 따른 흐름도이다.
도 7은 태스크 스케줄링 방법의 다른 실시예에 따른 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수개의 관련된 기재된 항목들의 조합 또는 복수개의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명에 따른 태스크 스케줄링 장치는, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted-device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 또는 스마트 와치(smartwatch))중 적어도 하나를 포함할 수 있다.
태스크 스케줄링 장치는 스마트 가전 제품(smart home appliance) 일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자 장치는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSync, 애플TV, 또는 구글 TV), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
태스크 스케줄링 장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magneticresonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.
태스크 스케줄링 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다.
태스크 스케줄링 장치는 상술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있으며, 상술한 기기들에 한정되지 않음은 통상의 기술자에게 자명하다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 태스크 스케줄링 장치의 일 실시예에 따른 구성도이다.
도 1을 참조하면 태스크 스케줄링 장치(1)는 스케줄러(100), 프로세서(200), 태스크 매니저(300), 메모리(400)를 포함할 수 있다.
태스크 매니저(300)는 사용자의 요청 또는 기 정의된 스케줄에 따라 태스크(task, 410)를 생성, 삭제 및 변경할 수 있다. 예를 들어, 사용자가 태스크 스케줄링 장치(1)를 통해 어플리케이션 실행 기능을 요청하는 경우, 태스크 매니저(300)는 어플리케이션의 실행 기능에 대응하는 태스크(410)를 생성하고, 이를 스케줄러(100)에 전달할 수 있다.
여기서, 태스크(410)는 자신만의 일정한 프로그램 영역(예: 코드, 스택 등)을 가지고 실행되는 작업(job)을 의미할 수 있다. 예를 들어, 태스크(410)는 임베디드 시스템(embedded system)에서 스케줄링(scheduling)의 최소 단위를 의미할 수 있다. 여기서, 스케줄링이란 처리해야 할 다양한 태스크(410)에게 한정된 시스템 자원을 언제, 얼마만큼 배분하고 서비스할 것인가는 결정하는 프로그램 기능을 의미할 수 있다.
태스크 매니저(300)는 태스크(410)의 상태를 모니터링할 수 있다. 태스크(410)의 상태는 도 2에 예시된 바와 같이 대기(waiting), 준비(Ready), 실행(Running) 및 중단(Suspended) 상태로 구분할 수 있다.
도 2는 태스크의 상태 전이를 설명하기 위한 도면이다.
도 2를 참고하면, 먼저 대기 상태는 태스크(410)가 스케줄링을 통하여 실행 순서를 대기하는 상태를 의미한다. 즉, 시스템 자원의 준비 등 특정한 조건이 만족될 때까지 기다리고 있는 상태를 대기 상태라고 하며, 이 후 조건이 만족되어 실행 가능한 상태가 되면 준비 상태가 된다.
준비 상태는 현재 실행되지는 않고 있지만, 언제라도 즉시 실행이 가능한 조건을 갖춘 상태를 의미한다. 중단 상태에서 이벤트(Enter Event)가 발생하거나, 대기 상태에서 특정 조건이 만족되는 경우, 실행 상태에서 회귀하는 경우(preempt)에는 준비 상태로 전환 된다.
실행 상태는 스케줄링에 의해 프로세서(200)에서 처리되고 있는 상태 즉, 중앙처리장치(CPU)를 사용하고 있는 상태를 의미한다. 여러 개의 태스크(410) 중에서 스케줄링을 통해 실행 권한을 받으면 실행 상태가 되어 할당된 시간만큼 해당 프로세서(200)의 CPU를 사용하게 된다. 실행 상태에 있는 태스크(410)는 무조건 할당된 시간만큼 실행되는 것은 아니며, 우선 순위가 높은 태스크(410)나 인터럽트 신호가 들어오면 스케줄러(100)에 의해 현재 실행되는 태스크(410)가 강제적으로 중단되고, 대기 상태로 전환될 수 있다.
중단 상태는 태스크(410)의 실행이 종료(terminate)된 상태로서, 상술한 바 있듯이 이벤트(Enter Event)가 발생하면 준비 상태로 전이된다.
태스크 매니저(300)는 태스크(410)가 대기 상태에 있는지, 준비 상태, 실행 상태, 또는 중단 상태에 있는지를 모니터링하고, 이를 스케줄러(100)에 전달할 수 있다.
메모리(400)는 태스크(410) 정보를 저장할 수 있다. 메모리(400)는 태스크(410)의 생성, 삭제 및 변경된 정보 및 태스크(410)의 상태 정보를 저장할 수 있다.
태스크 매니저(300)에 의해 생성되어 메모리(400)에서 대기 또는 준비 상태에 있는 태스크(410)는 스케줄러(100)의 스케줄링을 통해 프로세서(200)에 할당될 수 있으며, 이에 따라 실행 상태로 전환되어 해당 프로세서(200)에서 처리된다.
이와 같은 메모리(400)는 롬(Read Only Memory: ROM), 피롬(Programmable Read Only Memory: PROM), 이피롬(Erasable Programmable Read Only Memory: EPROM), 플레시 메모리와 같은 비휘발성 메모리 소자, 또는 램(Random Access Memory: RAM)과 같은 휘발성 메모리 소자, 또는 하드 디스크, 광 디스크와 같은 저장 장치로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 당업계에 알려져 있는 임의의 다른 형태로 구현될 수도 있다.
프로세서(200)는 중앙처리장치(CPU)를 포함하여 할당된 태스크(410)를 처리할 수 있다. 프로세서(200)는 태스크(410)와 관련된 명령어를 실행할 수 있는 최소 단위의 연산 장치를 의미할 수 있다.
프로세서(200)는 하나 이상으로 마련될 수 있다. 프로세서(200)는 도 1에 도시된 바와 같이 복수개로 마련될 수 있으며, 각각의 프로세서(200)은 스케줄러(100)의 스케줄링에 따라 해당 프로세서(200)에 할당된 태스크(410)를 처리할 수 있다. 프로세서(200)는 도 1의 예시와 달리 단일 프로세서(200)로 마련될 수도 있다.
프로세서(200)의 구성에 따라, 태스크 스케줄링 장치(1)는 단일처리기 또는 다중처리기를 구성하게 된다. 즉, 태스크 스케줄링 장치(1)는 단일 프로세서(200)를 포함하여 단일처리기를 구성하거나, 복수의 프로세서(200)를 포함하여 다중처리기를 구성할 수 있다.
스케줄러(100)는 태스크(410)의 지분에 기반하여 태스크를 스케줄링하고, 스케줄링에 따라 프로세서(200)에 할당하여 처리되도록 한다.
여기서, 스케줄링의 대상이 되는 태스크(410)는 메모리(400) 상에서 대기 상태 또는 준비 상태에 있는 태스크(410)를 의미한다.
또한, 지분은 프로세서(200)의 자원에 대해 각 태스크(410)가 서비스 받을 기대 할당량을 양의 정수 값으로 표현한 것을 의미한다. 양의 정수 지분은 시스템이 실행되기 이전에 이미 설정되어 있는 것으로, 스케줄링이 요구되는 대기 또는 준비 상태에 있는 태스크(410)에 따라 지분이 결정된다. 양의 정수 지분은 태스크(410)가 운영체제 및 기타 프로그램에서 갖는 중요도, 활용 빈도에 따른 지분을 다른 태스크에 대한 상대적인 수치 또는 절대적인 수치로 나타내어 진다.
예를 들어, 스케줄링이 요구되는 4개의 태스크(태스크A, B, C, 및 D)에 대해, 양의 정수 지분은 태스크A: 태스크B: 태스크C: 태스크D = 4:3:2:1을 갖도록 설정될 수 있다.
스케줄러(100)는 단위 시간별로 태스크 스케줄링을 수행할 수 있다. 즉, 프로세서(200) 자원은 일정한 시간할당량인 단위 시간만큼 태스크(410)에게 서비스 된다. 단위 시간은 태스크(410)가 자원을 할당 받아 실행되는 기본 단위로 타임 퀀텀(time quantum)으로 볼 수 있으며, 이하 설명의 편의를 위해 단위 시간을 '1' 로 고려하기로 한다.
스케줄러(100)는 태스크(410)가 단위 시간마다 해당 지분에 비례하여 프로세서(200)에 할당되어 서비스를 받을 수 있도록 스케줄링한다. 스케줄러(100)는 태스크(410)의 지분율을 이용하여 단위 시간마다 서비스의 만족 정도를 수치화하고, 각 태스크(410)의 서비스의 만족 정도에 기초하여 태스크(410) 스케줄링을 수행할 수 있다.
도 3은 스케줄러의 일 실시예에 따른 구성도이다.
도 3을 참조하면, 스케줄러(100)는 기대값 산출부(110), 만족 지수 산출부(120), 및 태스크 스케줄징부(130)를 포함할 수 있다.
기대값 산출부(110)는 프로세서(200) 자원에 대한 각 태스크(410)의 기대값을 산출한다.
여기서, 기대값이란 프로세서(200)의 자원에 대해 각 태스크(410)가 서비스 받을 기대 할당량의 비율로 정의할 수 있으며, 하기의 [수학식 1]과 같이 각 태스크(410)의 지분 비율 즉, 지분율
Figure 112016017911549-pat00010
로 표현될 수 있다.
[수학식 1]
Figure 112016017911549-pat00011

여기서,
Figure 112016017911549-pat00012
는 i 번째 태스크가 다른 태스크에 비하여, 프로세서(200)에서 서비스를 받을 수 있는 양의 정수 지분을 나타낸다.
예를 들어, 태스크A, B, C 및 D의 양의 정수 지분이 4:3:2:1 일 때, 기대값 산출부(110)는 태스크 A, B, C 및 D의 기대값을 0.4, 0.3, 0.2, 0.1 로써 각각 산출할 수 있다.
이와 같이, 기대값은 태스크(410)가 프로세서(200) 중 어느 하나에서 처리 될 수 있는 기대 정도를 상대적으로 나타내는 수치로서, 다른 태스크와의 관계에 따라 다르게 나타날 수 있다. 기대값은 다른 태스크와의 상대적인 중요성 및 사용 빈도의 차이 등 다양한 요소에 따라 차등적으로 부여되는 것이다.
또한, 같은 태스크라도 대기 또는 준비 상태에 있는 다른 태스크와의 관계에 따라서 매번 다른 기대값을 나타낼 수 있다.
만족 지수 산출부(120)는 산출된 기대값을 기초로 태스크(410)가 받은 서비스의 만족 정도를 산출한다. 만족 지수 산출부(120)는 산출된 기대값으로부터 '태스크 만족 지수' 또는 '잠재적 만족 지수'를 정의하고, 이를 이용하여 각 태스크(410)가 받은 서비스의 만족 정도를 산출할 수 있다.
여기서, '태스크 만족 지수' 또는 '잠재적 만족 지수'는 태스크의 지분에 따라 자원을 분배하는 시스템에서 공정성을 확보하기 위하여 사용되는 스케줄링 평가 기준으로 정의할 수 있다.
프로세서(200)의 자원이 태스크에 순차적으로 분배됨에 따라 각각의 태스크(410)가 받은 서비스의 만족 정도는 변동되기 때문에, 시간의 흐름에 따라 '태스크 만족 지수' 또는 '잠재적 만족 지수'를 갱신하고, 갱신한 만족 지수 기초하여 상기 태스크를 새로이 스케줄링할 필요가 있다.
따라서, 만족 지수 산출부(120)는 단위 시간마다 각 태스크(410)의 태스크 만족 지수 또는 잠재적 만족 지수를 갱신할 수 있다. 만족 지수 산출부(120)는 프로세서(200)의 전체 수, 산출된 기대값, 이전 단위 시간에서의 태스크 만족 지수(또는 잠재적 만족 지수) 및 태스크의 실행 여부에 기초하여 현재 단위 시간에서의 태스크 만족 지수(또는 잠재적 만족 지수)를 갱신할 수 있다.
구체적으로, 태스크 만족 지수는 하기의 [수학식 2]과 같이 정의될 수 있다.
[수학식 2]
Figure 112016017911549-pat00013

여기서,
Figure 112016017911549-pat00014
는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내고,
Figure 112016017911549-pat00015
는 n 번째 단위 시간에서 i 번째 태스크(410)의 실행 여부에 따라 0 또는 1을 반환하는 함수,
Figure 112016017911549-pat00016
는 i 번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다. 상술한 바 있듯이, 단위 시간은 스케줄링에 있어 태스크 실행에 할당되는 시간 단위 즉, 타임 퀀텀(Time quantum)을 의미하고,
Figure 112016017911549-pat00017
이다.
프로세서(200)가 M 개인 시스템에서, 태스크
Figure 112016017911549-pat00018
의 단위 시간당 실행 기대값은
Figure 112016017911549-pat00019
이 된다. 태스크가 해당 단위 시간에 선택되지 않으면 실행 기대값
Figure 112016017911549-pat00020
Figure 112016017911549-pat00021
만큼 태스크 만족 지수가 감소하고, 태스크가 해당 단위 시간에 선택되면 단위 시간의 값에서 실행 기대값
Figure 112016017911549-pat00022
을 뺀 값만큼 태스크 만족 지수가 증가하며, 이는 도 4에 도시되어 있다.
도 4는 태스크의 실행 여부에 따른 태스크 만족 지수를 설명하기 위한 도면이다.
도 4를 참조하면, 태스크
Figure 112016017911549-pat00023
가 스케줄링 시간에 선택되지 않으면 태스크 만족 지수는 실행 기대값인
Figure 112016017911549-pat00024
만큼 감소하는 반면, 태스크
Figure 112016017911549-pat00025
가 선택되어 실행되면 태스크 만족 지수는
Figure 112016017911549-pat00026
만큼 증가한다. 즉, 매 단위 시간 마다 각 태스크들의 태스크 만족 지수는 각 태스크
Figure 112016017911549-pat00027
의 실행 기대값인
Figure 112016017911549-pat00028
만큼 감소되고, 태스크
Figure 112016017911549-pat00029
가 실행되는 경우에만 기본 단위 시간 1 이 추가로 증가된다.
프로세서(200)가
Figure 112016017911549-pat00030
만큼 비례적으로 서비스하여 각각의 태스크(410)가 실제로 서비스 받은 시간(즉, 실제 실행 시간)과 그 태스크(410)가 서비스 받아야 할 시간(즉, 기대 실행 시간) 사이의 오차를 '서비스 시간 오차(service time error)'라고 정의할 때,
Figure 112016017911549-pat00031
는 단위 시간당 서비스 시간 오차의 누적 결과를 의미하게 되며, 자원 할당량에 대한 태스크(410)의 만족 여부를 알 수 있게 해준다.
임의의 시간에 어떤 태스크(410)의
Figure 112016017911549-pat00032
이 0 보다 작다는 것은 태스크(410)가 그 지분만큼 서비스를 받지 못해 불만족스러운 상태에 있는 것을 의미하고, 0 보다 크다는 것은 그 반대 즉, 태스크(410)가 그 지분만큼 서비스를 받아 만족스러운 상태에 있는 것을 의미하며, 매 단위 시간에서 모든 태스크의 태스크 만족 지수의 합은 항상 0 을 형성하게 된다.
또한, 단위 시간이 1임을 고려하면,
Figure 112016017911549-pat00033
가 -1 이라는 것은 지분을 고려한 단위 시간당 서비스 시간 오차가 -1 이라는 것으로, 그 시간까지 그 태스크(410)가 지분을 통해 받을 수 있는 시간보다 한단위 시간만큼 서비스를 덜 받았다는 것을 의미하며, 매 단위 시간에서 각 태스크의 태스크 만족 지수는 항상 -1 이상의 값을 갖게 된다.
잠재적 만족 지수는 하기의 [수학식 3]과 같이 정의될 수 있다.
[수학식 3]
Figure 112016017911549-pat00034

여기서
Figure 112016017911549-pat00035
는 n 번째 단위 시간에서 i 번째 태스크의 잠재적 만족 지수를 나타내고,
Figure 112016017911549-pat00036
는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내며,
Figure 112016017911549-pat00037
는 i 번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다. 잠재적 만족 지수
Figure 112016017911549-pat00038
는 프로세서(200)가 M 개인 시스템상에서 n 번째 스케줄링 시간에 선택되지 않을 때, (n+1) 번째 가질 수 있는 태스크 만족 지수를 의미하는 것으로 볼 수 있다.
만족 지수 산출부(120)는 [수학식 2]에 따라 단위 시간마다 태스크 만족 지수를 산출할 수 있다. 또는, 만족 지수 산출부(120)는 [수학식 2] 및 [수학식 3]에 따라 단위 시간마다 태스크 만족 지수와 잠재적 만족 지수를 산출할 수 있다.
태스크 스케줄링부(130)는 태스크 만족 지수 또는 잠재적 만족 지수를 기초로 태스크(410)를 스케줄링한다. 태스크 스케줄링부(130)는 태스크 만족 지수에 기초하여 태스크를 스케줄링할 수 있다. 만족 지수 산출부(120)가 단위 시간마다 태스크 만족 지수 및 이를 바탕으로 잠재적 만족 지수를 산출하는 경우, 태스크 스케줄링부(130)는 잠재적 만족 지수에 기초하여 태스크를 스케줄링할 수 있다. 이하 태스크 스케줄링부(130)가 태스크(410)를 스케줄링하는 실시예들을 설명하기로 하며, 설명의 편의를 위해 태스크 스케줄링 장치(1)가 단일 프로세서(200)로 구성되는 것을 예시하기로 한다.
먼저, 태스크 스케줄링부(130)는 태스크 만족 지수에 기초하여 태스크(410)를 스케줄링 할 수 있다.
이를 위해, 태스크 스케줄링부(130)는 만족 지수 산출부(120)에서 단위 시간마다 산출된 태스크의 태스크 만족 지수를 비교할 수 있다. 태스크 스케줄링부(130)는 태스크 만족 지수의 비교 결과에 기초하여 태스크(410)를 선택하고, 이를 프로세서(200)에 전달할 수 있다.
예를 들어, 태스크 스케줄링부(130)는 복수의 태스크(410) 중에서 태스크 만족 지수가 가장 낮은 태스크(410)를 선택하기 위하여, 태스크 만족 지수를 태스크(410)별로 비교할 수 있다. 여기서, 태스크 만족 지수가 가장 낮다는 것은, 그 태스크가 그 지분만큼 서비스를 받지 못하여 불만족이 가장 크다는 것을 의미한다.
태스크 스케줄링부(130)는 이른바 그리디 스케줄링 알고리즘(Greedy scheduling algorithm)을 구현한 장치로서, 태스크 만족 지수가 가장 작은 태스크(410)를 선택하여 실행하는 알고리즘을 채택할 수 있다. 태스크 스케줄링부(130)는 태스크 만족 지수가 가장 낮은 태스크를 선택하여, 이 태스크(410)가 프로세서(200)에 전달되도록 할 수 있는 것이다.
복수의 태스크(410)가 동일한 태스크 만족 지수를 갖는 경우, 태스크 스케줄링부(130)는 식별가능한 태스크 ID, 지분 등을 기준으로 복수의 태스크(410) 중 임의로 선택하여 프로세서(200)에 전달할 수 있다. 여기서, 동일한 태스크 만족 지수를 갖는다는 것은, 서비스의 만족 정도 또는 서비스의 불만족 정도가 동일하다는 것을 의미한다.
태스크 만족 지수에 기초하여 태스크를 스케줄링하는 과정에 대한 더욱 구체적 설명은 [표 1] 및 도 5a 내지 도 5d를 참조하여 상술하기로 한다.
[표 1]은 태스크 만족 지수에 의한 태스크 선택 방법을 나타낸다. 또한, 도 5a 내지 도 5d는 태스크 스케줄링의 과정을 단위 시간에 따라 도시한 도면이다. 표 1 및 도 5a 내지 도 5d에서는 각각 4:3:2:1 의 지분을 갖는 복수의 태스크(태스크A, B, C 및 D)에 대한 태스크 선택 방법 및 과정을 나타내고 있다.
Figure 112016017911549-pat00039
[표 1] 및 도 5a 내지 도 5d를 참조하면, 단위 시간 n=0 인 경우, 태스크 A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 태스크 만족 지수는 [수학식 2]에 의하여 각각 산출될 수 있고, 모두 0으로 동일하기에 태스크는 무작위로 선택될 수 있다. 여기에서는 지분이 가장 큰 태스크A(411)가 선택된 것으로 할 수 있다.
태스크 스케줄링부(130)는 선택된 태스크A(411)를 프로세서(200)에 전달하여 실행 상태로 전환시키고, 단위 시간 '1' 만큼 프로세서(200)에서 서비스 받을 수 있도록 한다.
n=1 인 경우, 태스크A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 태스크 만족 지수는 [수학식 2]에 의하여 각각 0.6, -0.3, -0.2, -0.1 로써 산출될 수 있고, 따라서 태스크 만족 지수가 가장 낮은 태스크B(412)가 선택될 수 있다.
태스크 스케줄링부(130)는 태스크A(412)의 실행을 중단하고, 태스크B(412)를 실행 상태로 전환시킨다. 즉, 선택된 태스크B(412)를 프로세서(200)에 전달하여 프로세서(200)에서 서비스 받을 수 있도록 한다.
n=2 인 경우, 태스크A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 태스크 만족 지수는 [수학식 2]에 의하여 각각 0.2, 0.4, -0.4, -0.2 로써 산출될 수 있고, 태스크 스케줄링부(130)는 태스크 만족 지수를 비교하여 태스크 만족 지수가 가장 낮은 태스크C(413)를 선택할 수 있다.
태스크 스케줄링부(130)는 이전 단위 시간(즉, n=1)에 선택된 태스크B(412)의 실행을 중단하고, 새롭게 선택된 태스크C(413)를 실행 상태로 전환시킨다. 즉, 선택된 태스크C(413)를 프로세서(200)에 전달하여 프로세서(200)에서 서비스 받을 수 있도록 한다.
n=3 인 경우, 태스크A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 태스크 만족 지수는 [수학식 2]에 의하여 각각 -0.2, 0.1, 0.4, -0.3 으로써 산출될 수 있고, 태스크 스케줄링부(130)는 태스크 만족 지수가 가장 낮은 태스크D(414)를 선택할 수 있다.
태스크 스케줄링부(130)는 태스크C(413)의 실행을 중단시킴과 동시에 태스크D(414)를 실행 상태로 전환시켜, 태스크D(414)가 프로세서(200)에서 서비스 받을 수 있도록 한다.
태스크 스케줄링부(130)는 각 단위 시간에 태스크 만족 지수가 가장 낮은 태스크를 선택함으로써, 서비스의 불만족 정도가 가장 큰 태스크가 프로세서(200)의 서비스를 받을 수 있는 기회를 제공하고 복수의 태스크에게 공정성을 부여한다.
태스크 스케줄링부(130)는 잠재적 만족 지수에 기초하여 태스크(410)를 스케줄링 할 수 있다.
이를 위해, 만족 지수 산출부(120)는 태스크 만족 지수뿐만 아니라 잠재적 만족 지수를 단위 시간마다 산출할 수 있으며, 태스크 스케줄링부(130)는 산출된 태스크(410)의 잠재적 만족 지수를 비교할 수 있다. 태스크 스케줄링부(130)는 잠재적 만족 지수의 비교 결과에 기초하여 태스크(410)를 선택하고, 이를 프로세서(200)에 전달할 수 있다.
잠재적 만족 지수는 태스크(410)의 선택 과정에서 해당 태스크가 선택되지 않는다는 전제하에 계산될 수 있는 지수이다. 즉, 산출한 태스크 만족 지수로써 태스크를 선택하는 것이 아니라, 다음 단위 시간에서 실행되지 않을 경우를 가정하여 불만족도가 가장 큰 태스크를 선택하기 위함이다.
예를 들어, 태스크 스케줄링부(130)는 복수의 태스크(410) 중에서 잠재적 만족 지수가 가장 낮은 태스크(410)를 선택하기 위하여, 잠재적 만족 지수를 태스크(410)별로 비교할 수 있다. 태스크 스케줄링부(130)는 잠재적 만족 지수가 가장 낮은 태스크를 선택하여, 이 태스크(410)가 프로세서(200)에 전달되도록 할 수 있는 것이다. 복수의 태스크(410)가 동일한 잠재적 만족 지수를 갖는 경우, 태스크 스케줄링부(130)는 식별가능한 태스크 ID, 지분 등을 기준으로 복수의 태스크(410) 중 무작위 선택하여 프로세서(200)에 전달할 수 있다.
[표 2]는 각각 4:3:2:1 의 지분을 갖는 복수의 태스크(태스크A, B, C 및 D)에 대해, 잠재적 만족 지수에 의한 태스크 선택 방법을 나타낸다.
Figure 112016017911549-pat00040
[표 2]를 참조하면, 단위 시간 n=0 인 경우, 태스크 A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 잠재적 만족 지수는 [수학식 3]에 의하여 각각 -0.4, -0.3, -0.2, -0.1 로써 산출될 수 있고, 따라서 잠재적 만족 지수가 가장 낮은 태스크B(412)가 선택될 수 있다.
태스크 스케줄링부(130)는 선택된 태스크A(411)를 프로세서(200)에 전달하여 실행 상태로 전환시키고, 단위 시간 '1' 만큼 프로세서(200)에서 서비스 받을 수 있도록 한다.
n=1 인 경우, 태스크A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 잠재적 만족 지수는 [수학식 3]에 의하여 각각 0.2, -0.6, -0.4, -0.2 로써 산출될 수 있고, 태스크 스케줄링부(130)는 잠재적 만족 지수를 비교하여 잠재적 만족 지수가 가장 낮은 태스크C(413)를 선택할 수 있다.
태스크 스케줄링부(130)는 태스크A(412)의 실행을 중단하고, 태스크B(412)를 실행 상태로 전환시킨다. 즉, 선택된 태스크B(412)를 프로세서(200)에 전달하여 프로세서(200)에서 서비스 받을 수 있도록 한다.
마찬가지로, 단위 시간 n=2 에서 태스크A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 잠재적 만족 지수는 [수학식 3]에 의하여 각각 -0.2, 0.1, -0.6, -0.3 으로써 산출될 수 있고, 태스크 스케줄링부(130)는 잠재적 만족 지수가 가장 낮은 태스크C(413)를 선택할 수 있다.
태스크 스케줄링부(130)는 이전 단위 시간(즉, n=1)에 선택된 태스크B(412)의 실행을 중단하고, 새롭게 선택된 태스크C(413)를 실행 상태로 전환시킨다. 즉, 선택된 태스크C(413)를 프로세서(200)에 전달하여 프로세서(200)에서 서비스 받을 수 있도록 한다.
n=3 인 경우, 태스크A(411), 태스크B(412), 태스크C(413), 및 태스크D(414)의 잠재적 만족 지수는 [수학식 3]에 의하여 각각 -0.6, -0.2, 0.2, -0.4 로써 산출될 수 있다. 따라서, 태스크 스케줄링부(130)는 잠재적 만족 지수가 가장 낮은 태스크A(411)를 선택할 수 있다.
태스크 스케줄링부(130)는 태스크C(413)의 실행을 중단시킴과 동시에 태스크A(411)를 실행 상태로 전환시켜, 태스크A(411)가 프로세서(200)에서 서비스 받을 수 있도록 한다.
태스크 스케줄링부(130)는 각 단위 시간에 잠재적 만족 지수가 가장 낮은 태스크를 선택함으로써, 서비스의 불만족 정도가 가장 큰 태스크가 프로세서(200)의 서비스를 받을 수 있는 기회를 제공하고 복수의 태스크에게 공정성을 부여한다.
구체적으로, [표 2]에서와 같이 4:3:2:1 의 지분을 갖는 복수의 태스크(410)에 대해 잠재적 만족 지수에 기초하여 스케줄링을 수행하는 경우, 각각의 태스크(410)가 실제로 서비스 받은 시간(즉, 실제 실행 시간)과 그 태스크(410)가 서비스 받아야 할 시간(즉, 기대 실행 시간) 사이의 오차 즉, 서비스 시간 오차는 최소 -0.6 에서 최대 0.6 을 형성하며, 평균 서비스 시간 오차도 0.28 로써 높은 공정성을 담보하게 된다.
태스크 스케줄링부(130)를 설명함에 있어, 설명의 편의를 위해 태스크 스케줄링 장치(1)가 단일 프로세서(200)를 포함하는 것을 예시하였으나, 상술한 바 있듯이 태스크 스케줄링 장치(1)는 복수의 프로세서(200) 포함하여 다중처리기를 구성할 수도 있다.
이 경우, 태스크 스케줄링부(130)는 프로세서(200)의 수에 대응하여 복수의 태스크(200)를 선택할 수 있다. 태스크 스케줄링부(130)는 단위 시간마다 각 태스크(410)의 잠재적 만족 지수(또는 태스크 만족 지수)를 비교하여 잠재적 만족 지수(또는 태스크 만족 지수)가 낮은 태스크(410)에 우선 순위를 두고, 프로세서(200)의 수에 대응하는 복수의 태스크(200)를 선택하여 프로세서(200)에 전달할 수 있다.
일 예로, 태스크 스케줄링 장치(1)가 제 1프로세서 및 제 2프로세서를 포함하고, 복수의 태스크(410)가 [표 2]에서와 같이 태스크A: 태스크B: 태스크C: 태스크D = 4:3:2:1의 지분을 갖는 경우를 예로 들 수 있다.
이 경우, 단위 시간 n=0 에서, 태스크 스케줄링부(130)는 잠재적 만족 지수가 가장 낮은 태스크A 및 태스크B를 선택하고, 제 1프로세서 및 제 2프로세서에 각각 전달하여 서비스 받을 수 있도록 한다. 예를 들어, 태스크A는 제 1프로세서에 전달되고 태스크B는 제 2프로세서에 전달될 수 있으며, 이에 따라 태스크A 및 태스크B는 단위 시간 '1' 만큼 해당 프로세서(200)에서 서비스 받을 수 있게 된다.
이와 같이 태스크 스케줄링부(130)는 각 단위 시간에 태스크 만족 지수 또는 잠재적 만족 지수가 가장 낮은 태스크에 우선 순위를 두어 선택함으로써, 서비스의 불만족 정도가 가장 큰 태스크 순서대로 프로세서(200)에서 서비스 받을 수 있도록 하고 공정성을 제공한다.
이상으로 스케줄러(100) 및 이를 포함하는 태스크 스케줄링 장치(100)를 예시된 구성도를 바탕으로 설명하였으며, 이하에서는 주어진 흐름도를 참조하여 스케줄러(100)에 의한 태스크 스케줄링 방법을 살펴보기로 한다. 이 때, 동일하거나 대응되는 과정의 설명은 생략하는 것으로 한다.
도 6은 태스크 스케줄링 방법의 일 실시예에 따른 흐름도이다.
도 6을 참조하면, 먼저 스케줄러(100)는 프로세서(200) 자원에 대한 각 태스크(410)의 기대값을 산출한다(510). 여기서, 태스크(410)는 메모리(400) 상에서 대기 상태 또는 준비 상태에 있는 태스크(410)를 의미할 수 있다.
스케줄러(100)는 하기의 [수학식 1]을 이용하여 각 태스크(410)의 지분율
Figure 112016017911549-pat00041
를 기대값으로 산출할 수 있다.
[수학식 1]
Figure 112016017911549-pat00042

여기서,
Figure 112016017911549-pat00043
는 i 번째 태스크가 다른 태스크에 비하여, 프로세서(200)에서 서비스를 받을 수 있는 양의 정수 지분을 나타낸다.
상술한 바 있듯이, 기대값은 다른 태스크와의 상대적인 중요성 및 사용 빈도의 차이 등 다양한 요소에 따라 차등적으로 부여된다. 또한, 같은 태스크라도 대기 또는 준비 상태에 있는 다른 태스크와의 관계에 따라서 매번 다른 기대값을 나타낸다.
다음으로, 스케줄러(100)는 산출된 기대값에 기초하여 태스크(410)가 받은 서비스의 만족 정도의 '태스크 만족 지수'를 산출한다(520).
스케줄러(100)는 하기의 [수학식 2]을 이용하여 태스크 만족 지수를 산출할 수 있다.
[수학식 2]
Figure 112016017911549-pat00044

여기서,
Figure 112016017911549-pat00045
는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내고,
Figure 112016017911549-pat00046
는 n 번째 단위 시간에서 i 번째 태스크(410)의 실행 여부에 따라 0 또는 1을 반환하는 함수,
Figure 112016017911549-pat00047
는 i 번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다. 상술한 바 있듯이, 단위 시간은 스케줄링에 있어 태스크 실행에 할당되는 시간 단위 즉, 타임 퀀텀(Time quantum)을 의미하고,
Figure 112016017911549-pat00048
이다.
프로세서(200)가 M 개인 시스템에서, 태스크
Figure 112016017911549-pat00049
의 단위 시간당 실행 기대값은
Figure 112016017911549-pat00050
이 된다. 태스크가 해당 단위 시간에 선택되지 않으면 실행 기대값
Figure 112016017911549-pat00051
만큼 태스크 만족 지수가 감소하고, 태스크가 해당 단위 시간에 선택되면 단위 시간의 값에서 실행 기대값
Figure 112016017911549-pat00052
을 뺀 값만큼 태스크 만족 지수가 증가하게 된다.
즉,
Figure 112016017911549-pat00053
는 단위 시간당 서비스 시간 오차의 누적 결과를 의미하는 것으로, 자원 할당량에 대한 태스크(410)의 만족 여부를 알 수 있게 해준다.
임의의 시간에 어떤 태스크(410)의
Figure 112016017911549-pat00054
이 0 보다 작다는 것은 태스크(410)가 해당 단위 시간에 그 지분만큼 서비스를 받지 못해 불만족스러운 상태에 있는 것을 의미하고, 0보다 크다는 것은 그 반대 즉, 태스크(410)가 해당 단위 시간에 그 지분만큼 서비스를 받아 만족스러운 상태에 있는 것을 의미하게 된다. 또한,
Figure 112016017911549-pat00055
이 0 보다 작아질수록 해당 단위 시간에 태스크(410)의 불만족 정도가 큰 것을 의미하고, 0 보다 커질수록 해당 단위 시간에 태스크(410)의 만족 정도가 큰 것을 의미하게 된다.
스케줄러(100)는 태스크 만족 지수를 비교하여 태스크(410)를 스케줄링한다(530).
스케줄러(100)는 해당 단위 시간에 산출된 태스크(410)의 태스크 만족 지수를 비교할 수 있다. 스케줄러(100)는 태스크 만족 지수의 비교 결과에 기초하여 태스크(410)를 선택하고, 이를 프로세서(200)에 전달할 수 있다.
스케줄러(100)는 이른바 그리디 스케줄링 알고리즘(Greedy scheduling algorithm)을 구현한 장치로서, 태스크 만족 지수가 가장 작은 태스크(410)를 선택하여 실행하는 알고리즘을 채택할 수 있다. 스케줄러(100)는 태스크 만족 지수를 태스크(410)별로 비교하고, 복수의 태스크(410) 중 태스크 만족 지수가 가장 낮은 태스크를 선택하여, 이 태스크(410)가 프로세서(200)에 전달되도록 할 수 있다.
복수의 태스크(410)가 동일한 태스크 만족 지수를 갖는 경우, 스케줄러(100)는 식별가능한 태스크 ID, 지분 등을 기준으로 복수의 태스크(410) 중 임의로 선택하여 프로세서(200)에 전달할 수 있다.
상술한 520 과정 및 530 과정은 단위 시간마다 이루어질 수 있다. 즉, 스케줄러(100)는 매 단위 시간마다 산출된 기대값에 기초하여 태스크 만족 지수를 산출하고, 산출된 태스크 만족 지수를 비교하여 태스크 스케줄링을 수행할 수 있다. 스케줄러(100)는 각 단위 시간에 태스크 만족 지수가 가장 낮은 태스크를 선택함으로써, 서비스의 불만족 정도가 가장 큰 태스크가 프로세서(200)의 서비스를 받을 수 있는 기회를 제공하고 복수의 태스크(410)에게 공정성을 부여하는 것이다.
한편, 상술한 바는 태스크 스케줄링 장치(1)가 단일 프로세서(200)를 포함하는 경우를 예시한 것으로, 이와 달리 태스크 스케줄링 장치(1)가 복수의 프로세서(200)을 포함하는 경우, 스케줄러(100)는 530 과정에서 프로세서(200)의 수에 대응하여 복수의 태스크(200)를 선택할 수 있다. 스케줄러(100)는 각 태스크(410)의 태스크 만족 지수를 비교하여 태스크 만족 지수가 낮은 태스크(410)에 우선 순위를 두고, 프로세서(200)의 수에 대응하는 복수의 태스크(200)를 선택하여 프로세서(200)에 전달할 수 있다.
일 예로, 태스크 스케줄링 장치(1)가 제 1프로세서 및 제 2프로세서를 포함하고, 단위 시간 n=1 에 대해 복수의 태스크(410) 태스크A, B, C, 및 D가 각각 0.2, -0.6, -0.4, -0.2 의 태스크 만족 지수를 갖을 때, 스케줄러(100)는 태스크 만족 지수가 가장 낮은 태스크B 및 태스크C를 선택하고, 제 1프로세서 및 제 2프로세서에 각각 전달하여 서비스 받을 수 있도록 한다. 예를 들어, 태스크B는 제 1프로세서에 전달되고 태스크C는 제 2프로세서에 전달될 수 있으며, 이에 따라 태스크B 및 태스크C는 단위 시간 '1' 만큼 해당 프로세서(200)에서 서비스 받을 수 있게 된다.
도 7은 태스크 스케줄링 방법의 다른 실시예에 따른 흐름도이다.
도 7을 참조하면, 먼저 스케줄러(100)는 프로세서(200) 자원에 대한 각 태스크(410)의 기대값을 산출한다(610). 610 과정은 상술한 바 있는 510 과정과 동일하다.
다음으로, 스케줄러(100)는 산출된 기대값에 기초하여 태스크(410)가 받은 서비스의 만족 정도의 지표인 '태스크 만족 지수' 및 '잠재적 만족 지수'를 산출한다(520).
스케줄러(100)는 산출된 기대값에 기초하여 태스크 만족 지수를 산출하고, 기대값과 태스크 만족 지수에 기초하여 잠재적 만족 지수를 산출할 수 있다. 여기서, 태스크 만족 지수의 산출 과정은 상술한 520 과정과 동일하므로 이하 그에 대한 설명은 생략하기로 한다.
스케줄러(100)는 하기의 [수학식 3]을 이용하여 잠재적 만족 지수를 산출한다.
[수학식 3]
Figure 112016017911549-pat00056

여기서
Figure 112016017911549-pat00057
는 n 번째 단위 시간에서 i 번째 태스크의 잠재적 만족 지수를 나타내고,
Figure 112016017911549-pat00058
는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내며,
Figure 112016017911549-pat00059
는 i번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다. 즉, 잠재적 만족 지수
Figure 112016017911549-pat00060
는 프로세서(200)가 M 개인 시스템상에서 n 번째 스케줄링 시간에 선택되지 않을 때, (n+1) 번째 가질 수 있는 태스크 만족 지수를 의미한다.
스케줄러(100)는 잠재적 만족 지수를 비교하여 태스크(410)를 스케줄링한다(630).
스케줄러(100)는 해당 단위 시간에 산출된 태스크(410)의 잠재적 만족 지수를 비교할 수 있다. 스케줄러(100)는 잠재적 만족 지수의 비교 결과에 기초하여 태스크(410)를 선택하고, 이를 프로세서(200)에 전달할 수 있다.
잠재적 만족 지수는 태스크(410)의 선택 과정에서 해당 태스크가 선택되지 않는다는 전제하에 계산될 수 있는 지수이다. 즉, 산출한 태스크 만족 지수로써 태스크를 선택하는 것이 아니라, 다음 단위 시간에서 실행되지 않을 경우를 가정하여 불만족도가 가장 큰 태스크를 선택하기 위함이다.
예를 들어, 태스크 스케줄링부(130)는 복수의 태스크(410) 중에서 잠재적 만족 지수가 가장 낮은 태스크(410)를 선택하기 위하여, 잠재적 만족 지수를 태스크(410)별로 비교할 수 있다. 태스크 스케줄링부(130)는 잠재적 만족 지수가 가장 낮은 태스크를 선택하여, 이 태스크(410)가 프로세서(200)에 전달되도록 할 수 있는 것이다.
상술한 바는 태스크 스케줄링 장치(1)가 단일 프로세서(200)를 포함하는 경우를 예시한 것으로, 이와 달리 태스크 스케줄링 장치(1)가 복수의 프로세서(200)을 포함하는 경우, 스케줄러(100)는 프로세서(200)의 수에 대응하여 복수의 태스크(200)를 선택할 수 있다. 스케줄러(100)는 각 태스크(410)의 잠재적 만족 지수를 비교하여 잠재적 만족 지수가 낮은 태스크(410)에 우선 순위를 두고, 프로세서(200)의 수에 대응하는 복수의 태스크(200)를 선택하여 프로세서(200)에 전달할 수 있다.
[표 2]의 예시에서, 태스크 스케줄링 장치(1)가 제 1프로세서 및 제 2프로세서를 포함한다고 할 때, 단위 시간 n=0 에 대해 스케줄러(100)는 태스크 만족 지수가 가장 낮은 태스크A 및 태스크B를 선택하고, 제 1프로세서 및 제 2프로세서에 각각 전달하여 서비스 받을 수 있도록 한다.
복수의 태스크(410)가 동일한 잠재적 만족 지수를 갖는 경우, 태스크 스케줄링부(130)는 식별가능한 태스크 ID, 지분 등을 기준으로 복수의 태스크(410) 중 무작위 선택하여 프로세서(200)에 전달할 수 있다.
상술한 620 과정 및 630 과정은 단위 시간마다 이루어질 수 있다. 즉, 스케줄러(100)는 매 단위 시간마다 산출된 기대값에 기초하여 잠재적 만족 지수를 산출하고, 산출된 잠재적 만족 지수를 비교하여 태스크 스케줄링을 수행할 수 있다. 스케줄러(100)는 각 단위 시간에 잠재적 만족 지수가 낮은 태스크를 우선적으로 선택함으로써, 서비스의 불만족 정도가 큰 태스크가 프로세서(200)의 서비스를 받을 수 있는 기회를 제공하고 복수의 태스크(410)에게 공정성을 부여하는 것이다.
이상으로 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1 : 태스크 스케줄링 장치
100 : 스케줄러 110 : 기대값 산출부
120 : 만족 지수 산출부 130 : 태스크 스케줄링부
200 : 프로세서 300 : 태스크 메니저
400 : 메모리 400 : 태스크

Claims (6)

  1. 복수의 프로세서의 자원을 서비스 받도록 태스크를 스케줄링하는 태스크 스케줄링 장치에 있어서,
    상기 복수의 프로세서의 자원에 대해 각 태스크가 서비스 받을 기대 할당량의 비율인 기대값을 산출하는 기대값 산출부;
    상기 산출된 기대값에 기초하여, 상기 각 태스크가 받은 서비스의 만족 정도를 나타내는 태스크 만족 지수를 산출하는 만족 지수 산출부; 및
    상기 산출된 태스크 만족 지수에 기초하여, 상기 태스크를 스케줄링하는 태스크 스케줄링부;
    를 포함하고,
    상기 만족 지수 산출부는,
    하기의 [수학식 2]을 이용하여, 상기 태스크 만족 지수를 산출하고,
    상기 태스크 스케줄링부는
    상기 태스크 만족 지수가 낮은 태스크에 우선 순위를 두고, 우선 순위가 높은 순서대로 상기 태스크를 선택하여 상기 복수의 프로세서에 전달하되,
    상기 태스크 만족 지수가 -1미만인 태스크에게 우선적으로 실행 기회가 부여되도록 스케줄링하고, 상기 태스크 만족 지수가 1초과인 태스크에게 실행 기회가 부여되지 않도록 스케줄링하는 태스크 스케줄링 장치.
    [수학식 2]
    Figure 112017073651790-pat00061


    여기서,
    Figure 112017073651790-pat00062
    는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내고,
    Figure 112017073651790-pat00063
    는 n 번째 단위 시간에서 i 번째 태스크(410)의 실행 여부에 따라 0 또는 1을 반환하는 함수,
    Figure 112017073651790-pat00064
    는 i 번째 태스크(410)의 기대값, M은 상기 복수의 프로세서(200)의 수를 각각 나타낸다.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 만족 지수 산출부는,
    하기의 [수학식 3]에 의해 정의되는 잠재적 만족 지수를 산출하는 태스크 스케줄링 장치.

    [수학식 3]
    Figure 112016017911549-pat00065


    여기서
    Figure 112016017911549-pat00066
    는 n 번째 단위 시간에서 i 번째 태스크의 잠재적 만족 지수를 나타내고,
    Figure 112016017911549-pat00067
    는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내며,
    Figure 112016017911549-pat00068
    는 i 번째 태스크(410)의 기대값, M은 프로세서(200)의 수를 각각 나타낸다.
  5. 제 4 항에 있어서,
    상기 태스크 스케줄링부는,
    상기 잠재적 만족 지수에 기초하여, 상기 태스크를 스케줄링하는 태스크 스케줄링 장치.
  6. 복수의 프로세서의 자원을 서비스 받도록 태스크를 스케줄링하는 태스크 스케줄링 방법에 있어서,
    기대값 산출부가, 상기 복수의 프로세서의 자원에 대해 각 태스크가 서비스 받을 기대 할당량의 비율인 기대값을 산출하고;
    만족 지수 산출부가, 상기 산출된 기대값에 기초하여, 상기 각 태스크가 받은 서비스의 만족 정도를 나타내는 태스크 만족 지수를 산출하고; 및
    스케줄링부가, 상기 산출된 태스크 만족 지수에 기초하여, 상기 태스크를 스케줄링하는;
    것을 포함하고,
    상기 만족 지수 산출부는,
    하기의 [수학식 2]을 이용하여, 상기 태스크 만족 지수를 산출하고,
    상기 스케줄링부는
    상기 태스크 만족 지수가 낮은 태스크에 우선 순위를 두고, 우선 순위가 높은 순서대로 상기 태스크를 선택하여 상기 복수의 프로세서에 전달하되,
    상기 태스크 만족 지수가 -1미만인 태스크에게 우선적으로 실행 기회가 부여되도록 스케줄링하고, 상기 태스크 만족 지수가 1초과인 태스크에게 실행 기회가 부여되지 않도록 스케줄링하는 태스크 스케줄링 방법.
    [수학식 2]
    Figure 112017073651790-pat00079


    여기서,
    Figure 112017073651790-pat00080
    는 n 번째 단위 시간에서 i 번째 태스크(410)의 태스크 만족 지수를 나타내고,
    Figure 112017073651790-pat00081
    는 n 번째 단위 시간에서 i 번째 태스크(410)의 실행 여부에 따라 0 또는 1을 반환하는 함수,
    Figure 112017073651790-pat00082
    는 i 번째 태스크(410)의 기대값, M은 상기 복수의 프로세서(200)의 수를 각각 나타낸다.
KR1020160021490A 2015-02-23 2016-02-23 태스크 스케줄링 장치 및 방법 KR101771928B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150025447 2015-02-23
KR20150025447 2015-02-23

Publications (2)

Publication Number Publication Date
KR20160102917A KR20160102917A (ko) 2016-08-31
KR101771928B1 true KR101771928B1 (ko) 2017-08-29

Family

ID=56877424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021490A KR101771928B1 (ko) 2015-02-23 2016-02-23 태스크 스케줄링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101771928B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101958112B1 (ko) * 2017-09-29 2019-07-04 건국대학교 산학협력단 태스크 스케줄링 장치 및 태스크 스케줄링 방법
KR102496115B1 (ko) * 2019-11-28 2023-02-06 한국전자통신연구원 강화학습 기반 이타적 스케줄링 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160565A (ja) 2009-01-06 2010-07-22 Ricoh Co Ltd タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160565A (ja) 2009-01-06 2010-07-22 Ricoh Co Ltd タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김아름 외 3명. ‘QoS 스케줄링 알고리즘을 위한 지분 분포의 효과 분석’. 정보과학회논문지: 시스템 및 이론, 제40권, 제1호, 2013.2, pp.38-44.
정진만 외 6명. 'QoS 보장을 위한 태스크 만족 지수 기반의 비례 지분 스케줄링 기법'. 정보과학회논문지: 컴퓨팅의 실제 및 레터, 18(5), 2012.5, pp.389-393.*

Also Published As

Publication number Publication date
KR20160102917A (ko) 2016-08-31

Similar Documents

Publication Publication Date Title
US11032212B2 (en) Systems and methods for provision of a guaranteed batch
US7730185B2 (en) Method, apparatus and computer program product for sharing resources
CN107341050B (zh) 基于动态线程池的服务处理方法和装置
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
US10162683B2 (en) Weighted stealing of resources
US20140282626A1 (en) Processing of application programming interface traffic
US9280388B2 (en) Method and apparatus for efficient scheduling of multithreaded programs
US9973512B2 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US20070250629A1 (en) Method and a system that enables the calculation of resource requirements for a composite application
CN107168806B (zh) 分发调度机的资源调度方法、系统以及计算机设备
Yao et al. LsPS: A job size-based scheduler for efficient task assignments in Hadoop
US20100036641A1 (en) System and method of estimating multi-tasking performance
US20220195434A1 (en) Oversubscription scheduling
CN109669773B (zh) 金融数据处理方法、装置、设备和存储介质
US20210360058A1 (en) Job allocation support system and method
CN112764890A (zh) 调度备份任务的方法、设备和计算机程序产品
KR101771928B1 (ko) 태스크 스케줄링 장치 및 방법
US10545799B2 (en) Information processing apparatus, method for controlling same, and storage medium
KR20170109185A (ko) 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치
US11711795B2 (en) Apparatus and method for altruistic scheduling based on reinforcement learning
KR102269271B1 (ko) 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치
CN109842665B (zh) 用于任务分配服务器的任务处理方法和装置
CN103377089A (zh) 处理器群的基于负载的编程管理方法和系统
JP2010009288A (ja) マルチプロセッサシステム及びプログラム実行方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant