KR101541156B1 - 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법 - Google Patents
다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법 Download PDFInfo
- Publication number
- KR101541156B1 KR101541156B1 KR1020130137398A KR20130137398A KR101541156B1 KR 101541156 B1 KR101541156 B1 KR 101541156B1 KR 1020130137398 A KR1020130137398 A KR 1020130137398A KR 20130137398 A KR20130137398 A KR 20130137398A KR 101541156 B1 KR101541156 B1 KR 101541156B1
- Authority
- KR
- South Korea
- Prior art keywords
- preparation
- task
- value
- bits
- bit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
웨어러블 PC와 같이 하드웨어 자원 제약이 심한 시스템에서 우선순위 확정에 상관없이 시간과 공간 복잡도를 항상 O(1)로 보장하여 실시간 태스크를 스케줄링하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법이 개시된다. 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치는 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 준비리스트 생성부 및 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 소정의 우선권을 갖는 태스크(P)를 상기 준비그룹단 및 준비테이블에 삽입하는 태스크 삽입부를 포함하되, 상기 소정의 우선권을 갖는 태스크(P)는, 상기 상하위 차원의 관계를 갖는 복수개의 준비그룹 각각에서의 위치를 나타내는 비트와, 상기 준비테이블에서의 위치를 나타내는 비트로 구성된다.
Description
본 발명은, 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법에 관한 것이다. 더욱 상세하게는 본 발명은, 웨어러블 PC와 같이 하드웨어 자원 제약이 심한 시스템에서 우선순위 확정에 상관없이 시간과 공간 복잡도를 항상 O(1)로 보장하여 실시간 태스크를 스케줄링하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법에 관한 것이다.
웨어러블 PC란, 의류에 PC 기능을 담은 컴퓨터이다.
구체적으로, 미국 군사 훈련용으로 개발되기 시작하여, 점점 일상생활은 물론, 패션 및 이동통신기기 및 디지털 제품에까지 그 영역을 넓히고 있다. 컴퓨터 기술뿐만 아니라 기계, 물리, 의류(첨단소재, 디자인, 패션), 감성공학, 심리 등의 여러 분야와 서로 밀접하게 연동하여 연구해야만 성공할 수 있는 미래의 컴퓨팅 기술로서, 미래 일상생활에 필요한 각종 디지털 장치와 기능을 의복 내에 통합시킨 신종 차세대 의류인 ‘스마트 의류’도 웨어러블 컴퓨터와 일맥 상통한다.
이러한 웨어러블 PC에서도 기존 PC에서와 같이 사용자가 요구하는 다양한 서비스들을 지원하기 위해 시스템에 탑재되는 응용프로그램들 복잡도의 증가와 웨어러블 PC의 구조적인 CPU 성능, 메모리 용량, 배터리 용량 등의 하드웨어 자원 제약의 극복, 사용자의 QoS(Quality Of Service)를 보장하기 위해서 각 커널 서비스들의 실행시간을 예측할 수 있는 실시간 운영체제들을 사용해야만 한다.
실시간 운영체제는 모든 실시간 태스크에 대해 그 종료 시한을 만족할 수 있도록 하며, 실행 준비 상태의 높은 우선순위 태스크가 존재하는 데도 낮은 우선순위의 태스크가 CPU를 점유하는 우선순위 역전현상이 발생하지 않도록 보장하여 시간 결정성을 보장해야 한다. 이를 위해서 실시간 운영체제에는 우선순위에 상관없이 시간 결정성을 보장하는 태스크 스케줄링 알고리즘이 필요하지만 기존 알고리즘은 우선순위 확장에 따른 메모리 오버헤드가 존재한다.
따라서, 웨어러블 PC와 같이 하드웨어 자원 제약이 심한 시스템에서 우선순위 확장에 상관없이 시간과 공간 복잡도를 항상 O(1)로 보장하여 실시간 태스크를 스케줄링하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법이 필요한 실정이다. 관련 기술로는 한국공개특허 제10-2000-0037391호가 존재한다.
본 발명의 목적은, 상기 종래 기술의 문제점을 해결하기 위한 것으로, 웨어러블 PC와 같이 하드웨어 자원제약이 심한 시스템에서 우선순위 확장에 상관없이 시간과 공간 복잡도가 항상 O(1)인 다차원 기법의 시공간 걸정적 태스크 스케줄러를 구현하는 것을 가능케 하는 것이다.
또한, 본 발명의 목적은, 우선순위 확장에 따른 메모리 오버헤드 없이 항상 일정한 메모리 공간만을 요구하여 공간 복잡도 0(1)을 보장하고, 태스크 스케줄링 시 태스크 수에 상관없이 항상 고정된 명령을 수행하므로 항상 고정 상수 시간에 최상위 우선순위가 할당된 태스크의 위치를 검출하는 것을 가능케 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 다차원 기법의 시공간 결정적태스크 스케줄링 장치는, 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 준비리스트 생성부 및 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 소정의 우선권을 갖는 태스크(P)를 상기 준비그룹단 및 준비테이블에 삽입하는 태스크 삽입부를 포함하되, 상기 소정의 우선권을 갖는 태스크(P)는, 상기 상하위 차원의 관계를 갖는 복수개의 준비그룹 각각에서의 위치를 나타내는 비트와, 상기 준비테이블에서의 위치를 나타내는 비트로 구성된다.
이 때, 상기 준비리스트 생성부는, 상기 준비그룹단의 최상위 차원의 준비그룹인 제 1 준비그룹은 4비트로 형성하며, 상기 제 1 준비그룹의 각 비트마다 4비트로 형성된 상기 제 1 준비그룹의 하위 차원인 차상위 차원에 해당되는 제 2 준비그룹을 형성하며, 상기 제 2 준비그룹의 각 비트마다 4비트로 형성된 상기 제 2 준비그룹의 하위 차원인 차하위 차원에 해당하는 제 3 준비그룹을 형성함으로써, 상기 제 1 준비그룹의 특정 비트에 대응되는 상기 제 2 준비그룹, 상기 제 3 준비그룹 및 상기 준비테이블의 비트 중 어느 하나의 비트 값이 1 인 경우, 상기 제 1 준비그룹의 특정 비트를 1로 설정함으로써 상기 제 1 준비그룹에 수행 준비 상태의 태스크가 존재하는 것을 나타내도록 준비리스트를 생성할 수 있다.
이 때, 상기 준비리스트 생성부는, 8비트로 형성된 소정의 우선권을 갖는 태스크(P)를, 2비트 단위로 분류하여 분류된 4개의 2비트 단위 값에 대응하여, 상기 제 1 준비그룹, 제 2 준비그룹, 제 3 준비그룹 및 준비테이블에 매핑하도록 준비리스트를 생성할 수 있다.
이 때, 상기 태스크 삽입부는, 상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로, 상기 소정의 우선권을 갖는 태스크(P)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 비트마스킹하는 제 1 삽입 수행, 상기 소정의 우선권을 갖는 태스크(P)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 비트마스킹하는 제 2 삽입 수행, 상기 소정의 우선권을 갖는 태스크(P)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 비트마스킹하는 제 3 삽입 수행 및 상기 소정의 우선권을 갖는 태스크(P)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 비트마스킹하는 제 4 삽입 수행을 포함할 수 있다.
이 때, 상기 준비 테이블의 변경사항에 대응하여 상기 준비테이블에서 최상위 우선순위 태스크(Q)를 선택하는 태스크 선택부를 더 포함할 수 있다.
이 때, 상기 태스크 선택부는,상기 준비리스트의 모든 태스크를 비교하지 않고 상기 최상위 우선순위 태스크(Q)를 검출하기 위한 우선순위 변환 테이블인 언맵테이블을 기반으로, 상기 제 1 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최상위 2 비트의 값을 구하는 제 1 선택 수행, 상기 제 2 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차상위 2 비트의 값을 구하는 제 2 선택 수행, 상기 제 3 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차하위 2 비트의 값을 구하는 제 3 선택 수행, 상기 준비 테이블 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최하위 2 비트의 값을 구하는 제 4 선택 수행 및 상기 최상위 2 비트의 값, 차상위 2 비트의 값, 차하위 2 비트의 값 및 최하위 2 비트의 값을 기반으로 최상위 우선순위 태스크를 결정하는 제 5 선택 수행을 포함할 수 있다.
이 때, 상기 제 5 선택 수행은, 상기 최상위 2 비트의 값을 좌측으로 6비트 이동한 값과, 상기 차상위 2 비트의 값을 좌측으로 4 비트 이동한 값과, 상기 차하위 2 비트의 값을 좌측으로 2 비트 이동한 값 및 상기 최하위 2 비트의 값을 더하여 상기 최상위 우선순위 태스크를 결정할 수 있다.
이 때, 상기 최상위 우선순위 태스크(Q)에게 CPU를 할당하여 상기 최상위 우선순위 태스크(Q)를 실행하는 태스크 실행부를 더 포함할 수 있다.
이 때, 실행 종료되거나 실행 중지된 태스크인 삭제 대상 태스크(R)를 상기 준비리스트에서 삭제하는 태스크 삭제부를 더 포함할 수 있다.
이 때, 상기 태스크 삭제부는, 상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로, 상기 삭제 대상 태스크(R)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 언마스킹하는 제 1 삭제 수행, 상기 제 1 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 언마스킹하는 제 2 삭제 수행, 상기 제 2 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 언마스킹하는 제 3 삭제 수행 및 상기 제 3 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 언마스킹하는 제 4 삭제 수행을 포함할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 방법은, 준비리스트 생성부에 의하여, 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 단계 및 태스크 삽입부에 의하여, 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 소정의 우선권을 갖는 태스크(P)를 상기 준비그룹단 및 준비테이블에 삽입하는 단계를 포함하되, 상기 소정의 우선권을 갖는 태스크(P)는, 상기 상하위 차원의 관계를 갖는 복수개의 준비그룹 각각에서의 위치를 나타내는 비트와, 상기 준비테이블에서의 위치를 나타내는 비트로 구성된다.
이 때, 상기 준비리스트를 생성하는 단계는, 상기 준비그룹단의 최상위 차원의 준비그룹인 제 1 준비그룹은 4비트로 형성하며, 상기 제 1 준비그룹의 각 비트마다 4비트로 형성된 상기 제 1 준비그룹의 하위 차원인 차상위 차원에 해당되는 제 2 준비그룹을 형성하며, 상기 제 2 준비그룹의 각 비트마다 4비트로 형성된 상기 제 2 준비그룹의 하위 차원인 차하위 차원에 해당하는 제 3 준비그룹을 형성함으로써, 상기 제 1 준비그룹의 특정 비트에 대응되는 상기 제 2 준비그룹, 상기 제 3 준비그룹 및 상기 준비테이블의 비트 중 어느 하나의 비트 값이 1 인 경우, 상기 제 1 준비그룹의 특정 비트를 1로 설정함으로써 상기 제 1 준비그룹에 수행 준비 상태의 태스크가 존재하는 것을 나타내도록 준비리스트를 생성할 수 있다.
이 때, 상기 준비리스트를 생성하는 단계는, 8비트로 형성된 소정의 우선권을 갖는 태스크(P)를, 2비트 단위로 분류하여 분류된 4개의 2비트 단위 값에 대응하여, 상기 제 1 준비그룹, 제 2 준비그룹, 제 3 준비그룹 및 준비테이블에 매핑하도록 준비리스트를 생성할 수 있다.
이 때, 상기 삽입하는 단계는, 상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로, 상기 소정의 우선권을 갖는 태스크(P)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 비트마스킹하는 제 1 삽입 수행 단계, 상기 소정의 우선권을 갖는 태스크(P)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 비트마스킹하는 제 2 삽입 수행 단계, 상기 소정의 우선권을 갖는 태스크(P)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 비트마스킹하는 제 3 삽입 수행 단계 및 상기 소정의 우선권을 갖는 태스크(P)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 비트마스킹하는 제 4 삽입 수행 단계를 포함할 수 있다.
이 때, 상기 준비 테이블의 변경사항에 대응하여 상기 준비테이블에서 최상위 우선순위 태스크(Q)를 선택하는 단계를 더 포함할 수 있다.
이 때, 상기 선택하는 단계는, 상기 준비리스트의 모든 태스크를 비교하지 않고 상기 최상위 우선순위 태스크(Q)를 검출하기 위한 우선순위 변환 테이블인 언맵테이블을 기반으로, 상기 제 1 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최상위 2 비트의 값을 구하는 제 1 선택 수행 단계, 상기 제 2 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차상위 2 비트의 값을 구하는 제 2 선택 수행 단계, 상기 제 3 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차하위 2 비트의 값을 구하는 제 3 선택 수행 단계, 상기 준비 테이블 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최하위 2 비트의 값을 구하는 제 4 선택 수행 단계 및 상기 최상위 2 비트의 값, 차상위 2 비트의 값, 차하위 2 비트의 값 및 최하위 2 비트의 값을 기반으로 최상위 우선순위 태스크를 결정하는 제 5 선택 수행 단계를 포함할 수 있다.
이 때, 상기 제 5 선택 수행 단계는, 상기 최상위 2 비트의 값을 좌측으로 6비트 이동한 값과, 상기 차상위 2 비트의 값을 좌측으로 4 비트 이동한 값과, 상기 차하위 2 비트의 값을 좌측으로 2 비트 이동한 값 및 상기 최하위 2 비트의 값을 더하여 상기 최상위 우선순위 태스크를 결정할 수 있다.
이 때, 상기 선택하는 단계 이후에, 태스크 실행부에 의하여, 상기 최상위 우선순위 태스크(Q)에게 CPU를 할당하여 상기 최상위 우선순위 태스크(Q)를 실행하는 단계를 더 포함할 수 있다.
이 때, 태스크 삭제부에 의하여, 실행 종료되거나 실행 중지된 태스크인 삭제 대상 태스크(R)를 상기 준비리스트에서 삭제하는 단계를 더 포함할 수 있다.
이 때, 상기 삭제하는 단계는, 상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로, 상기 삭제 대상 태스크(R)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 언마스킹하는 제 1 삭제 수행 단계, 상기 제 1 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 언마스킹하는 제 2 삭제 수행 단계, 상기 제 2 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 언마스킹하는 제 3 삭제 수행 단계 및 상기 제 3 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 언마스킹하는 제 4 삭제 수행 단계를 포함할 수 있다.
본 발명에 의하면, 웨어러블 PC와 같이 하드웨어 자원제약이 심한 시스템에서 우선순위 확장에 상관없이 시간과 공간 복잡도가 항상 O(1)인 다차원 기법의 시공간 결정적 태스크 스케줄러를 구현할 수 있다.
또한, 본 발명에 의하면, 우선순위 확장에 따른 메모리 오버헤드 없이 항상 일정한 메모리 공간만을 요구하여 공간 복잡도 O(1)을 보장하고, 태스크 스케줄링 시 태스크 수에 상관없이 항상 고정된 명령을 수행하므로 항상 고정 상수 시간에 최상위 우선순위가 할당된 태스크의 위치를 검출할 수 있다.
도 1은 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치의 블록도이다.
도 2는 본 발명에 따른 3차원 기반의 태스크 우선권을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비그룹단을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비테이블을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비리스트를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 태스크 우선권을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비그룹단을 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비테이블을 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비리스트를 설명하기 위한 도면이다.
도 10은 태스크를 삽입, 선택 및 삭제하기 위해 활용되는 맵테이블 및 언맵테이블을 설명하기 위한 도면이다.
도 11은 본 발명에 따른 태스크 삽입부가 태스크를 삭제하기 위한 슈도(Pseudo) 코드를 설명하기 위한 도면이다.
도 12는 본 발명에 따른 태스크 선택부가 태스크를 선택하기 위한 슈도 코드를 설명하기 위한 도면이다.
도 13은 본 발명에 따른 태스크 삭제부가 태스크를 삭제하기 위한 슈도 코드를 설명하기 위한 도면이다.
도 14는 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 방법의 흐름도이다.
도 2는 본 발명에 따른 3차원 기반의 태스크 우선권을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비그룹단을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비테이블을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비리스트를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 태스크 우선권을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비그룹단을 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비테이블을 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비리스트를 설명하기 위한 도면이다.
도 10은 태스크를 삽입, 선택 및 삭제하기 위해 활용되는 맵테이블 및 언맵테이블을 설명하기 위한 도면이다.
도 11은 본 발명에 따른 태스크 삽입부가 태스크를 삭제하기 위한 슈도(Pseudo) 코드를 설명하기 위한 도면이다.
도 12는 본 발명에 따른 태스크 선택부가 태스크를 선택하기 위한 슈도 코드를 설명하기 위한 도면이다.
도 13은 본 발명에 따른 태스크 삭제부가 태스크를 삭제하기 위한 슈도 코드를 설명하기 위한 도면이다.
도 14는 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 방법의 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다.
본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a),(b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.
이하, 도면을 참조하여 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치에 대하여 설명하도록 한다. 본 발명에서 다차원 기법이라 함은 적어도 3차원 이상의 차원을 갖는 기법을 의미하며, 본 발명에 대한 설명은 3차원의 경우와 4차원의 경우를 나누어 설명하도록 한다. 도 1은 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치의 블록도이다.
도 1을 참조하여 설명하면, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100)는, 준비리스트 생성부(110), 태스크 삽입부(120), 태스크 실행부(140) 및 태스크 삭제부(150)를 포함한다.
상기 준비리스트 생성부(110)는, 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 기능을 수행한다.
상기 태스크 삽입부(120)는, 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 태스크를 상기 준비그룹단 및 준비테이블에 삽입하는 기능을 수행한다.
이 때, 상기 소정의 우선권을 갖는 태스크(P)는, 상기 상하위 차원의 관계를 갖는 복수개의 준비그룹 각각에서의 위치를 나타내는 비트와, 상기 준비테이블에서의 위치를 나타내는 비트로 구성된다. 또한, 상기 소정의 우선권을 갖는 태스크(P)는 그 숫자가 낮을수록 우선권이 높은 것을 의미한다.
이하, 본 발명에 따른 일실시예로서, 4비트를 활용한 3차원을 기반으로 하여 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치를 구현한 경우에 대하여 설명하도록 한다.
도 2는 본 발명에 따른 3차원 기반의 태스크 우선권을 설명하기 위한 도면이다. 도 3은 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비그룹단을 설명하기 위한 도면이다. 도 4는 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비테이블을 설명하기 위한 도면이다. 도 5는 본 발명의 일실시예인 3차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 3차원 기반의 준비리스트를 설명하기 위한 도면이다.
도 2를 참조하여 설명하면, 3차원 기반의 태스크 우선권은 6비트로 구현될 수 있으며, 2비트씩 최상위 비트(1)인 "ZZ"과, 차상위 비트(3)인 "YY"와, 차하위 비트(5)인 "XX"로 분류될 수 있다.
상기 준비리스트 생성부(110)는, 상기 준비그룹단의 최상위 차원의 준비그룹인 제 1 준비그룹은 4비트로 형성하며, 상기 제 1 준비그룹의 각 비트마다 4비트로 형성된 상기 제 1 준비그룹의 하위 차원인 차상위 차원에 해당되는 제 2 준비그룹을 형성함으로써, 상기 제 1 준비그룹의 특정 비트에 대응되는 상기 제 2 준비그룹 및 상기 준비테이블의 비트 중 어느 하나의 비트 값이 1 인 경우, 상기 제 1 준비그룹의 특정 비트를 1로 설정함으로써 상기 제 1 준비그룹에 수행 준비 상태의 태스크가 존재하는 것을 나타내도록 준비리스트를 생성할 수 있다.
도 2 내지 5를 함께 참조하여 설명하면, 맵테이블과 언맵테이블을 활용하고, 제 1 준비그룹(10)과 제 2 준비그룹(30) 및 준비테이블(50)의 데이터 변수를 사용하여 64 우선순위 단계(0~63)에서 시간 복잡도 O(1)과 공간 복잡도 O(1)을 보장한다. 상기 제 1 준비그룹(10)의 각 비트는 4개의 제 2 준비그룹[](30)을 하나의 그룹으로 지정하여 그룹 내의 한 비트라도 "1"인 경우 상기 제 1 준비그룹의 해당 비트를 "1"로 설정하여, 설정된 각 비트는 해당 그룹에 수행 중비 상태의 태스크가 있는 그룹인지를 나타낸다. 이와 유사하게, 제 2 준비그룹[](30)은 4개의 준비테이블[][](50)을 하나의 그룹으로 지정하며 각 비트는 해당 그룹에 수행 준비 상태의 태스크가 있는지를 나타낸다.
이하, 본 발명에 따른 일실시예로서, 4비트를 활용한 4차원을 기반으로 하여 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치를 구현한 경우에 대하여 설명하도록 한다.
도 6은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 태스크 우선권을 설명하기 위한 도면이다. 도 7은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비그룹단을 설명하기 위한 도면이다. 도 8은 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비테이블을 설명하기 위한 도면이다. 도 9는 본 발명의 일실시예인 4차원 기법의 시공간 결정적 태스크 스케줄링 장치에 있어서 4차원 기반의 준비리스트를 설명하기 위한 도면이다.
도 6을 참조하여 설명하면, 4차원 기반의 태스크 우선권은 8비트로 구현될 수 있으며, 2비트씩 최상위 비트(2)인 "ZZ"과, 차상위 비트(4)인 "YY"와, 차하위 비트(6)인 "XX"와, 최하위 비트(8)인 "WW"로 분류될 수 있다.
상기 준비리스트 생성부(110)는, 상기 준비그룹단의 최상위 차원의 준비그룹인 제 1 준비그룹은 4비트로 형성하며, 상기 제 1 준비그룹의 각 비트마다 4비트로 형성된 상기 제 1 준비그룹의 하위 차원인 차상위 차원에 해당되는 제 2 준비그룹을 형성하며, 상기 제 2 준비그룹의 각 비트마다 4비트로 형성된 상기 제 2 준비그룹의 하위 차원인 차하위 차원에 해당하는 제 3 준비그룹을 형성함으로써,상기 제 1 준비그룹의 특정 비트에 대응되는 상기 제 2 준비그룹, 상기 제 3 준비그룹 및 상기 준비테이블의 비트 중 어느 하나의 비트 값이 1 인 경우, 상기 제 1 준비그룹의 특정 비트를 1로 설정함으로써 상기 제 1 준비그룹에 수행 준비 상태의 태스크가 존재하는 것을 나타내도록 준비리스트를 생성할 수 있다.
도 6 내지 9를 함께 참조하여 설명하면, 맵테이블과 언맵테이블을 활용하고, 제 1 준비그룹(20)과 제 2 준비그룹(40), 제 3 준비그룹(60) 및 준비테이블(80)의 데이터 변수를 사용하여 256 우선순위 단계(0~255)에서 시간 복잡도 O(1)과 공간 복잡도 O(1)을 보장한다. 상기 제 1 준비그룹(20)의 각 비트는 4개의 제 2 준비그룹[](40)을 하나의 그룹으로 지정하며, 각 비트는 해당 그룹에 수행 준비상태의 태스크가 있는 그룹인지를 나타낸다. 이와 유사하게 제 2 준비그룹[](40)은 4개의 제 3 준비그룹[][](60)을 하나의 준비그룹으로 지정하며, 각 비트는 해당 그룹에 수행 준비 상태의 태스크가 있는 그룹인지를 나타낸다. 또한, 제 3 준비그룹[][](60)은 4개의 준비테이블[][][](80)을 하나의 그룹으로 지정하며 각 비트는 해당 그룹에 수행 준비 상태의 태스크가 있는지를 나타낸다.
이하, 본 발명에서 시간 및 공간 복잡도를 확보하기 위하여 활용되는 맵테이블 및 언맵테이블에 대하여 설명하도록 한다.
도 10은 태스크를 삽입, 선택 및 삭제하기 위해 활용되는 맵테이블 및 언맵테이블을 설명하기 위한 도면이다,
실시간 운영체제에서 시간결정성을 결정하는 태스크 스케줄링 오버헤드(△t)는 스케줄러 코드에 의해 실행되는 시간으로 블록킹 오버헤드(△tb), 언블록킹 오버헤드(△tu), 선택 오버헤드(△ts)의 합이며, 스케줄러 코드는 실행이 중단되거나 재개될 때 실행 준비 상태의 태스크들 중 가장 우선순위가 높은 태스크를 선택하고 관리할 수 있도록 하는 실행 코드이다.
태스크의 실행이 중단되었을 경우, 실시간 운영체제는 실행 중단될 태스크를 관리하기 위한 일부 데이터 정보를 변경하고 새로 실행할 태스크를 선택해야 하는데, 태스크를 중단하기 위해 소요될 시간을 블록킹 오버헤드(△tb)로, 새로 실행할 태스크를 선택하기 위해 소요되는 시간을 선택 오버헤드(△ts)로 구분한다.
이와 유사하게, 실행 중단된 태스크를 실행 재개하기 위해서 소모되는 시간을 언블록킹 오버헤드(△tu)로 표현하고 언블록킹 시에도 현재 수행중인 태스크가 실행 준비 상태의 태스크보다 우선순위가 낮은 경우 문맥교환이 발생하게 되는데, 이때에도 실행 준비 상태의 태스크들 중 가장 우선순위가 높은 태스크를 찾기 위한 선택 오버헤드가 존재한다.
본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치는 태스크 스케줄링 오버헤드가 우선순위에 상관없이 O(1)의 시간 복잡도를 갖으며, 맵테이블 4 바이트와, 언맵테이블 16바이트 총 20바이트의 크기를 갖는 미리 정의된 데이터 값을 사용하기 때문에 공간 복잡도 역시 O(1)을 갖게 되는 것이다.
도 10을 참조하여 상기 맵테이블 및 언맵테이블에 대하여 더욱 구체적으로 설명하면, 상기 맵테이블은 4비트 위치(0~3)의 각 비트 위치에서 태스크 삽입(비트 마스킹)과 삭제(언마스킹) 수행 시에 준비리스트의 순차 검색 없이 수행하기 위해 사용되는 고정 값이고, 상기 언맵테이블은 4비트 값(0~15)(00002~11112)에서 최상위 우선순위 태스크를 찾기 위하여 준비리스트에 있는 모든 태스크를 비교하지 않고 최상위 우선순위의 태스크 위치를 찾을 수 있는 일종의 우선순위 변환 테이블이다. 이 정의된 두 상수 값을 통해 최상위 우선 순위를 결정하는데 걸리는 시간은 고정 상수 시간임이 보장되어 시간 복잡도 0(1)을 갖는다.
이하, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100)의 태스크 삽입부(110)에 대하여 구체적으로 설명하도록 한다.
도 11은 본 발명에 따른 태스크 삽입부가 태스크를 삭제하기 위한 슈도(Pseudo) 코드를 설명하기 위한 도면이다.
상기 태스크 삽입부(110)는, 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 우선권이 P인 태스크를 상기 준비그룹단 및 준비테이블에 삽입하는 기능을 수행한다.
이 때, 상기 태스크 삽입부(110)는,상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로, 상기 소정의 우선권을 갖는 태스크(P)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 비트마스킹하는 제 1 삽입 수행, 상기 소정의 우선권을 갖는 태스크(P)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 비트마스킹하는 제 2 삽입 수행, 상기 소정의 우선권을 갖는 태스크(P)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 비트마스킹하는 제 3 삽입 수행 및 상기 소정의 우선권을 갖는 태스크(P)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 비트마스킹하는 제 4 삽입 수행을 포함할 수 있다.
도 11을 참조하여 설명함에 있어서, "RdyGrp" 은 상기 제 1 준비그룹에 대응되고, "RdyMidGrp1" 은 상기 제 2 준비그룹에 대응되고, "RdyMidGrp2" 은 상기 제 3 준비그룹에 대응되고, "RdyTbl" 은 상기 준비테이블에 대응되며, "MapTbl" 은 상기 맵테이블에 대응되는 것으로 이해될 것이다.
도 11을 참조하여 설명하면, 상기 제 1 삽입 수행에서 도 6에 나타난 8비트의 태스크 우선권(Task's Priority)의 최상위 2bit(ZZ)의 값을 색인한 MapTbl 값으로 RdyGrp을 비트마스킹하고, 상기 제 2 삽입 수행에서 차상위 2bit(YY)의 값을 색인한 MapTbl 값으로 RdyMidGrp1[]을 비트마스킹하고, 상기 제 3 삽입 수행에서 차하위 2bit(XX)의 값을 색인한 MapTbl 값으로 RdyMidGrp2[][]를 비트마스킹하고, 상기 제 4 삽입 수행에서 최하위 2bit(WW)의 값을 색인한 MapTbl 값으로 RdyTbl[][][]에 비트마스킹한다.
이처럼 4차원 기법에서는 태스크 삽입시 RdyGrp, RdyMidGrp1[], RdyMidGrp2[][]의 준비그룹단과 RdyTbl[][][]의 준비테이블로 구성된 준비리스트에 위치시키며 고정된 수의 명령어 처리에 의해 수행되므로 시간 복잡도 O(1)을 갖는다.
도 11을 참조하여 구체적인 예를 들어 설명하면, 먼저 어떤 태스크도 실행 준비상태가 아닌 초기 상태에서 우선순위 13의 태스크가 실행 준비 상태가 되어 준비 리스트에 삽입될 경우, 상기 태스크 삽입부(110)는 준비그룹단(제 1 준비그룹, 제 2 준비그룹 및 제 3 준비그룹)과 준비테이블에 태스크를 삽입하는 과정을 거치게 된다.
우선순위 13은 이진수로 '00001101'이 되고 상기 제 1 삽입 수행에서 왼편은 RdyGrp = '00000000'이고 오른편은 우선순위의 '00001101'을 6 비트 Shift-Right 시킨 최상위 두 비트(ZZ) '00'을 인덱스로 MapTbl[0] = '0x01'이다. 이 값을 RdyGrp에 비트 마스킹을 하면 RdyGrp = ‘00000001’이 된다.
다음으로 상기 제 2 삽입 수행에서 왼편의 이미 계산된 값을 인덱스로 RdyMidGrp1[0] = '00000000'이고 오른편은 ‘00000000'('00001101'과 '0x30' 즉 '00110000'과 and 연산한 값)을 4 비트 Shift-Right 시킨 우선순위의 차상위 두 bit(YY) "00" 을 인덱스로 갖는 MapTbl[0]과 비트마스킹하면 RdyMidGrp1[0] = '00000001'이 된다.
다음으로, 상기 제 3 삽입 수행에서 왼편은 이미 계산된 인덱스로 RdyMidGrp2[0][0] = '00000000'이고 오른편은 '00001100'('00001101‘과 ’0x0C' 즉 '00001100'과 and 연산한 값)을 2 비트 Shift-Right 시킨 우선순위 차하위 두 bit(XX) ‘11’을 인덱스로 MapTbl[3] = '0x08'이다. 이 값을 RdyMidGrp2[0][0]에 비트 마스킹을 하면 RdyMidGrp2[0][0] = '00001000'이 된다.
마지막으로, 상기 제 4 삽입 수행에서 왼편은 RdyTbl[0][0][3] = '00000000'이고 오른편은 우선순위 최하위 두 bit(WW)인 '00000001'('00001101'과 '0x03' 즉 '00000011'과 and 연산한 값)을 인덱스로 MapTbl[1] = '0x02'이다. 이 값을 RdyTbl[0][0][3]에 비트 마스킹하면 RdyTbl[0][0][3] = ‘00000010'이 된다.
이와 같이 상기 태스크 삽입부(110)는 준비리스트에 삽입하려는 태스크 우선순위의 각 두 비트를 준비그룹과 준비테이블의 인덱스로 사용하여 고정 상수 시간에 삽입 연산이 완료되는 것이다.
이하, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100)의 태스크 선택부(110)에 대하여 구체적으로 설명하도록 한다.
도 12는 본 발명에 따른 태스크 선택부가 태스크를 선택하기 위한 슈도 코드를 설명하기 위한 도면이다.
상기 태스크 선택부(130)는, 상기 준비 테이블의 변경사항에 대응하여 상기 준비테이블에서 최상위 우선순위 태스크(Q)를 선택하는 기능을 수행한다.
이 때, 상기 태스크 선택부(130)는, 상기 준비리스트의 모든 태스크를 비교하지 않고 상기 최상위 우선순위 태스크(Q)를 검출하기 위한 우선순위 변환 테이블인 언맵테이블을 기반으로, 상기 제 1 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최상위 2 비트의 값을 구하는 제 1 선택 수행, 상기 제 2 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차상위 2 비트의 값을 구하는 제 2 선택 수행, 상기 제 3 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차하위 2 비트의 값을 구하는 제 3 선택 수행, 상기 준비 테이블 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최하위 2 비트의 값을 구하는 제 4 선택 수행 및 상기 최상위 2 비트의 값, 차상위 2 비트의 값, 차하위 2 비트의 값 및 최하위 2 비트의 값을 기반으로 최상위 우선순위 태스크를 결정하는 제 5 선택 수행을 포함할 수 있다.
구체적으로, 상기 제 5 선택 수행은, 상기 최상위 2 비트의 값을 좌측으로 6비트 이동한 값과, 상기 차상위 2 비트의 값을 좌측으로 4 비트 이동한 값과, 상기 차하위 2 비트의 값을 좌측으로 2 비트 이동한 값 및 상기 최하위 2 비트의 값을 더하여 상기 최상위 우선순위 태스크를 결정할 수 있다.
도 12을 참조하여 설명함에 있어서, "RdyGrp" 은 상기 제 1 준비그룹에 대응되고, "RdyMidGrp1" 은 상기 제 2 준비그룹에 대응되고, "RdyMidGrp2" 은 상기 제 3 준비그룹에 대응되고, "RdyTbl" 은 상기 준비테이블에 대응되며, " UnMapTbl" 은 상기 언맵테이블에 대응되는 것으로 이해될 것이다.
도 12를 참조하여 설명하면, 상기 제 1 선택 수행에서 RdyGrp 값을 색인한 UnMapTbl 값으로 우선순위의 최상위 2bit(ZZ) 값인 z 값을 구하고, 상기 제 2 선택 수행에서 RdyMidGrp1[z] 값으로 색인한 UnMapTbl 값으로 우선순위의 차상위 2bit(YY) 값인 y 값을 구하며, 상기 제 3 선택 수행에서 RdyMidGrp2[z][y] 값으로 색인한 UnMapTbl 값으로 우선순위의 차하위 2bit(XX) 값인 x 값을 구하고, 상기 제 4 선택 수행에서 RdyTbl[z][y][w] 값으로 색인한 UnMapTbl 값으로 우선순위의 최하위 2bit(WW) 값인 w 값을 구하여, (5)단계에서 상위 단계에서 구한 값을 통해 최상위 우선순위 값을 계산한다.
이처럼 상기 태스크 선택부(130)는 최상위 우선순위 태스크 선택을 위해 UnMapTbl을 활용하여 고정된 수의 명령어 처리에 의해 수행되므로 시간 복잡도 O(1)을 갖는다.
도 12를 참조하여 구체적인 예를 들어 설명하면, 상기 태스크 선택부(130)는 준비테이블에서 최상위 우선순위 태스크를 결정하기 위해 우선순위 변환 테이블인 UnMapTbl을 활용하여 고정 상수 시간에 연산을 완료할 수 있다.
우선순위 13의 태스크가 최상위 우선순위일 경우, 상기 제 1 선택 수행에서 태스크의 우선순위 중 최상위 두 bit(ZZ)는 오른편의 RdyGrp = ‘00000001’을 인덱스로 UnMapTbl[1] = '0'이며, z = '0'이 된다.
또한, 상기 제 2 선택 수행에서 차상위 두 bit(YY)는 오른편의 RdyMidGrp1[0] = '00000001'을 인덱스로 UnMapTbl[1] = '0'이며 y = '0'이 된다.
또한, 상기 제 3 선택 수행에서 차하위 두 bit(XX)는 오른편의 RdyMidGrp2[0][0] = '00001000'을 인덱스로 UnMapTbl[8] = '3'이며 x = '3'이 된다.
또한, 상기 제 4 선택 수행에서 최하위 두 bit(WW)는 오른편의 RdyTbl[0][0][3] = ‘00000010'을 인덱스로 UnMapTbl[2] = '1'이며 w = '1'이 된다.
또한, 상기 제 5 선택 수행에서 최상위 우선순위 R은 z 값을 6-bit Shift-Left 시킨 값 '0'과, y값을 4-bit Shift-Left 시킨 값 '0', x값을 2-bit Shift-Left 시킨 값 '12', w값 '1'을 더한 값 13이 된다.
이와 같이 최상위 우선순위의 태스크를 선택하는 태스크 선택부의 수행시간도 고정 상수 시간이 된다.
이하, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100)의 태스크 실행부(140)에 대하여 구체적으로 설명하도록 한다.
상기 태스크 실행부(140)는, 상기 최상위 우선순위 태스크(Q)에게 CPU를 할당하여 상기 최상위 우선순위 태스크(Q)를 실행하는 기능을 수행한다.
구체적으로, 이미 CPU를 할당받아 사용했던 태스크의 실행 시간을 기록하고, 상기 태스크 선택부(130)에 의하여 선택된 태스크에게 CPU를 할당하여 상기 선택된 태스크를 실행하는 것이다.
즉, 상기 태스크 실행부(140)는 상기 태스크 선택부(130)의 입력이 있을 경우, 즉, 현재 수행중인 태스크 보다 우선순위가 높은 태스크가 준비테이블에 있을 때 현재 수행중인 태스크의 수행시간과 정보를 저장하고, 상기 태스크 삽입부(120)에게 수행했던 태스크(CPU 점유권을 빼앗긴)를 준비테이블에 추가하도록 통보하고 상기 태스크 선택부(130)에서 입력된 최상위 우선순위의 태스크에게 CPU 점유권을 할당하는 것이다.
이하, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100)의 태스크 삭제부(150)에 대하여 구체적으로 설명하도록 한다.
도 13은 본 발명에 따른 태스크 삭제부가 태스크를 삭제하기 위한 슈도 코드를 설명하기 위한 도면이다.
상기 태스크 삭제부(150)는, 실행 종료되거나 실행 중지된 태스크인 삭제 대상 태스크(R)를 상기 준비리스트에서 삭제하는 기능을 수행한다.
이 때, 상기 태스크 삭제부(150)는, 상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로, 상기 삭제 대상 태스크(R)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 언마스킹하는 제 1 삭제 수행, 상기 제 1 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 언마스킹하는 제 2 삭제 수행, 상기 제 2 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 언마스킹하는 제 3 삭제 수행 및 상기 제 3 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 언마스킹하는 제 4 삭제 수행을 포함할 수 있다.
도 13을 참조하여 설명함에 있어서, "RdyGrp" 은 상기 제 1 준비그룹에 대응되고, "RdyMidGrp1" 은 상기 제 2 준비그룹에 대응되고, "RdyMidGrp2" 은 상기 제 3 준비그룹에 대응되고, "RdyTbl" 은 상기 준비테이블에 대응되며, " MapTbl " 은 상기 맵테이블에 대응되는 것으로 이해될 것이다.
도 13을 참조하여 설명하면, 상기 태스크 삭제부(150)에서 수행하는 태스크의 삭제는 태스크 삽입시 순서의 역순으로 수행된다. 상기 제 1 삭제 수행에서 우선순위 p의 최하위 2bit(WW) 값을 색인한 MapTbl 값으로 RdyTbl[][][]을 언마스킹하고, 그 결과가 '0'인지 비교하여 0이면, 상기 제 2 삭제 수행에서 차하위 2bit(XX) 값을 색인한 MapTbl 값으로 해당 그룹 RdyMidGrp2[][]을 언마스킹하고, 그 결과가 '0'인지 다시 비교하여 0이면, 상기 제 3 삭제 수행에서 차상위 2bit(YY) 값을 색인한 MapTbl 값으로 해당 그룹 RdyMidGrp1[]을 언마스킹하고, 그 결과가 '0' 인지 다시 비교하여 0이면, 상기 제 4 삭제 수행에서 최상위 2bit(ZZ) 값을 색인한 MapTbl 값으로 해당 그룹 RdyGrp을 언마스킹한다.
이처럼 상기 태스크 삭제부(150)는 준비리스트에서 제거시키기 위해 고정된 수의 명령어 처리에 의해 수행되므로 시간 복잡도 O(1)을 갖는다.
도 13을 참조하여 구체적인 예를 들어 설명하면, 실행중인 우선순위 13의 태스크가 실행 중지되는 경우, 상기 태스크의 삭제부(150)은 준비그룹단(제 1 준비그룹, 제 2 준비그룹 및 제 3 준비그룹)과 준비테이블에서 삭제 대상 태스크를 삭제하는 과정을 거친다.
상기 제 1 삭제 수행에서 왼편의 RdyTbl[0][0][3] = '00000010'을 MapTbl[1] = '0x02'와 언마스킹하면 RdyTbl[0][0][3] = '00000000'이 되어 ‘0’의 조건을 만족하고 상기 제 2 삭제 수행이 진행된다.
이 때, 상기 제 2 삭제 수행에서 RdyMidGrp2[0][0] = '00001000'을 MapTbl[3] = '0x08'과 언마스킹하면 RdyMidGrp2[0][0] = '00000000'이 되어 ‘0’의 조건을 만족하고 상기 제 3 삭제 수행이 진행된다.
이 후, 상기 제 3 삭제 수행에서 RdyMidGrp1[0] = '00000001'을 MapTbl[0]='0x01'과 언마스킹하면 RdyMidGrp1[0] = '00000000'이 되어 ‘0’의 조건을 만족하고 상기 제 4 삭제 수행이 진행된다.
마지막으로, 상기 제 4 삭제 수행에서 RdyGrp = ‘00000001’과 MapTbl[0]='0x01'과 언마스킹하여 준비그룹과 준비테이블에서 삭제한다.
이와 같이 상기 태스크 삭제부(150)도 태스크를 삽입할 때의 역순으로 준비테이블과 준비그룹에서 고정 상수 시간에 삭제 연산이 완료된다.
이하, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 방법에 대하여 설명하도록 한다. 상기 살펴본 바와 같이, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100)와 동일한 기술내용에 대한 설명은 생략하도록 한다.
도 14는 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 방법의 흐름도이다.
도 14를 참조하여 설명하면, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 방법은, 준비리스트 생성부에 의하여, 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 단계(S100), 태스크 삽입부에 의하여, 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 우선권이 P인 태스크를 상기 준비그룹단 및 준비테이블에 삽입하는 단계(S110), 상기 준비 테이블의 변경사항에 대응하여 상기 준비테이블에서 최상위 우선순위 태스크(Q)를 선택하는 단계(S120), 태스크 실행부에 의하여, 상기 최상위 우선순위 태스크(Q)에게 CPU를 할당하여 상기 최상위 우선순위 태스크(Q)를 실행하는 단계(S130) 및 태스크 삭제부에 의하여, 실행 종료되거나 실행 중지된 태스크인 삭제 대상 태스크(R)를 상기 준비리스트에서 삭제하는 단계(S140)를 포함한다.
상기 살펴본 바와 같이, 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100) 및 방법에 의하면, 웨어러블 PC와 같이 하드웨어 자원제약이 심한 시스템에서 우선순위 확장에 상관없이 시간과 공간 복잡도가 항상 O(1)인 다차원 기법의 시공간 걸정적 태스크 스케줄러를 구현할 수 있다.
아울러, 우선순위 확장에 따른 메모리 오버헤드 없이 항상 일정한 메모리 공간만을 요구하여 공간 복잡도 0(1)을 보장하고, 태스크 스케줄링 시 항상 고정된 명령을 수행시 태스크 수에 상관없이 항상 고정된 명령을 수행하므로 항상 고정 상수 시간에 최상위 우선순위가 할당된 태스크의 위치를 검출할 수 있는 장점이 있다.
이상에서와 같이 본 발명에 따른 다차원 기법의 시공간 결정적 태스크 스케줄링 장치(100) 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 다차원 기법의 시공간 결정적 태스크 스케줄링 장치
110: 준비리스트 생성부 120: 태스크 삽입부
130: 태스크 선택부 140: 태스크 실행부
150: 태스크 삭제부 10,20: 제 1 준비그룹
30,40: 제 2 준비그룹 60: 제 3 준비그룹
50,80: 준비테이블
110: 준비리스트 생성부 120: 태스크 삽입부
130: 태스크 선택부 140: 태스크 실행부
150: 태스크 삭제부 10,20: 제 1 준비그룹
30,40: 제 2 준비그룹 60: 제 3 준비그룹
50,80: 준비테이블
Claims (20)
- 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 준비리스트 생성부;
소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 소정의 우선권을 갖는 태스크(P)를 상기 준비그룹단 및 준비테이블에 삽입하는 태스크 삽입부; 및
상기 준비리스트 생성부와 상기 태스크 삽입부를 제어하는 처리부를 포함하되,
상기 소정의 우선권을 갖는 태스크(P)는,
상기 상하위 차원의 관계를 갖는 복수개의 준비그룹 각각에서의 위치를 나타내는 비트와, 상기 준비테이블에서의 위치를 나타내는 비트로 구성된 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 1에 있어서,
상기 준비리스트 생성부는,
상기 준비그룹단의 최상위 차원의 준비그룹인 제 1 준비그룹은 4비트로 형성하며, 상기 제 1 준비그룹의 각 비트마다 4비트로 형성된 상기 제 1 준비그룹의 하위 차원인 차상위 차원에 해당되는 제 2 준비그룹을 형성하며, 상기 제 2 준비그룹의 각 비트마다 4비트로 형성된 상기 제 2 준비그룹의 하위 차원인 차하위 차원에 해당하는 제 3 준비그룹을 형성함으로써,
상기 제 1 준비그룹의 특정 비트에 대응되는 상기 제 2 준비그룹, 상기 제 3 준비그룹 및 상기 준비테이블의 비트 중 어느 하나의 비트 값이 1 인 경우, 상기 제 1 준비그룹의 특정 비트를 1로 설정함으로써 상기 제 1 준비그룹에 수행 준비 상태의 태스크가 존재하는 것을 나타내도록 준비리스트를 생성하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 2에 있어서,
상기 준비리스트 생성부는,
8비트로 형성된 소정의 우선권을 갖는 태스크(P)를, 2비트 단위로 분류하여 분류된 4개의 2비트 단위 값에 대응하여, 상기 제 1 준비그룹, 제 2 준비그룹, 제 3 준비그룹 및 준비테이블에 매핑하도록 준비리스트를 생성하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 3에 있어서,
상기 태스크 삽입부는,
상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로,
상기 소정의 우선권을 갖는 태스크(P)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 비트마스킹하는 제 1 삽입 수행;
상기 소정의 우선권을 갖는 태스크(P)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 비트마스킹하는 제 2 삽입 수행;
상기 소정의 우선권을 갖는 태스크(P)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 비트마스킹하는 제 3 삽입 수행; 및
상기 소정의 우선권을 갖는 태스크(P)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 비트마스킹하는 제 4 삽입 수행을 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 3에 있어서,
상기 준비 테이블의 변경사항에 대응하여 상기 준비테이블에서 최상위 우선순위 태스크(Q)를 선택하는 태스크 선택부를 더 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 5에 있어서
상기 태스크 선택부는,
상기 준비리스트의 모든 태스크를 비교하지 않고 상기 최상위 우선순위 태스크(Q)를 검출하기 위한 우선순위 변환 테이블인 언맵테이블을 기반으로,
상기 제 1 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최상위 2 비트의 값을 구하는 제 1 선택 수행;
상기 제 2 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차상위 2 비트의 값을 구하는 제 2 선택 수행;
상기 제 3 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차하위 2 비트의 값을 구하는 제 3 선택 수행;
상기 준비 테이블 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최하위 2 비트의 값을 구하는 제 4 선택 수행; 및
상기 최상위 2 비트의 값, 차상위 2 비트의 값, 차하위 2 비트의 값 및 최하위 2 비트의 값을 기반으로 최상위 우선순위 태스크를 결정하는 제 5 선택 수행을 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 6에 있어서,
상기 제 5 선택 수행은,
상기 최상위 2 비트의 값을 좌측으로 6비트 이동한 값과, 상기 차상위 2 비트의 값을 좌측으로 4 비트 이동한 값과, 상기 차하위 2 비트의 값을 좌측으로 2 비트 이동한 값 및 상기 최하위 2 비트의 값을 더하여 상기 최상위 우선순위 태스크를 결정하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 7에 있어서,
상기 최상위 우선순위 태스크(Q)에게 CPU를 할당하여 상기 최상위 우선순위 태스크(Q)를 실행하는 태스크 실행부를 더 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 3에 있어서,
실행 종료되거나 실행 중지된 태스크인 삭제 대상 태스크(R)를 상기 준비리스트에서 삭제하는 태스크 삭제부를 더 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 청구항 9에 있어서,
상기 태스크 삭제부는,
상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로,
상기 삭제 대상 태스크(R)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 언마스킹하는 제 1 삭제 수행;
상기 제 1 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 언마스킹하는 제 2 삭제 수행;
상기 제 2 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 언마스킹하는 제 3 삭제 수행; 및
상기 제 3 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 언마스킹하는 제 4 삭제 수행을 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 장치. - 준비 리스트 생성부 및 테스크 삽입부를 제어하는 처리부를 통한 다차원 기법의 시공간 결정적 태스크 스케줄링 방법으로서,
준비리스트 생성부에 의하여, 각각의 비트(bit)가 태스크의 우선권을 나타내는 이진수로 구성된 어레이(array) 구조의 준비테이블과, 상기 준비테이블의 각 이진수에 대응하는 비트로 구성되어 상호 간에 상하위 차원의 관계를 갖는 복수개의 준비그룹으로 형성된 준비그룹단을 포함하는 준비리스트를 생성하는 단계; 및
태스크 삽입부에 의하여, 소정의 우선권을 갖는 태스크(P)에 대응하는 상기 준비그룹단 및 준비테이블을 비트마스킹함으로써 상기 소정의 우선권을 갖는 태스크(P)를 상기 준비그룹단 및 준비테이블에 삽입하는 단계를 포함하되,
상기 소정의 우선권을 갖는 태스크(P)는,
상기 상하위 차원의 관계를 갖는 복수개의 준비그룹 각각에서의 위치를 나타내는 비트와, 상기 준비테이블에서의 위치를 나타내는 비트로 구성된 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 11에 있어서,
상기 준비리스트를 생성하는 단계는,
상기 준비그룹단의 최상위 차원의 준비그룹인 제 1 준비그룹은 4비트로 형성하며, 상기 제 1 준비그룹의 각 비트마다 4비트로 형성된 상기 제 1 준비그룹의 하위 차원인 차상위 차원에 해당되는 제 2 준비그룹을 형성하며, 상기 제 2 준비그룹의 각 비트마다 4비트로 형성된 상기 제 2 준비그룹의 하위 차원인 차하위 차원에 해당하는 제 3 준비그룹을 형성함으로써,
상기 제 1 준비그룹의 특정 비트에 대응되는 상기 제 2 준비그룹, 상기 제 3 준비그룹 및 상기 준비테이블의 비트 중 어느 하나의 비트 값이 1 인 경우, 상기 제 1 준비그룹의 특정 비트를 1로 설정함으로써 상기 제 1 준비그룹에 수행 준비 상태의 태스크가 존재하는 것을 나타내도록 준비리스트를 생성하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 12에 있어서,
상기 준비리스트를 생성하는 단계는,
8비트로 형성된 소정의 우선권을 갖는 태스크(P)를, 2비트 단위로 분류하여 분류된 4개의 2비트 단위 값에 대응하여, 상기 제 1 준비그룹, 제 2 준비그룹, 제 3 준비그룹 및 준비테이블에 매핑하도록 준비리스트를 생성하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 13에 있어서,
상기 삽입하는 단계는,
상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로,
상기 소정의 우선권을 갖는 태스크(P)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 비트마스킹하는 제 1 삽입 수행 단계;
상기 소정의 우선권을 갖는 태스크(P)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 비트마스킹하는 제 2 삽입 수행 단계;
상기 소정의 우선권을 갖는 태스크(P)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 비트마스킹하는 제 3 삽입 수행 단계; 및
상기 소정의 우선권을 갖는 태스크(P)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 비트마스킹하는 제 4 삽입 수행 단계를 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 13에 있어서,
상기 준비 테이블의 변경사항에 대응하여 상기 준비테이블에서 최상위 우선순위 태스크(Q)를 선택하는 단계를 더 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 15에 있어서
상기 선택하는 단계는,
상기 준비리스트의 모든 태스크를 비교하지 않고 상기 최상위 우선순위 태스크(Q)를 검출하기 위한 우선순위 변환 테이블인 언맵테이블을 기반으로,
상기 제 1 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최상위 2 비트의 값을 구하는 제 1 선택 수행 단계;
상기 제 2 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차상위 2 비트의 값을 구하는 제 2 선택 수행 단계;
상기 제 3 준비그룹 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 차하위 2 비트의 값을 구하는 제 3 선택 수행 단계;
상기 준비 테이블 값을 색인한 언맵테이블 값에 대응하여 상기 최상위 우선순위태스크(Q)의 최하위 2 비트의 값을 구하는 제 4 선택 수행 단계; 및
상기 최상위 2 비트의 값, 차상위 2 비트의 값, 차하위 2 비트의 값 및 최하위 2 비트의 값을 기반으로 최상위 우선순위 태스크를 결정하는 제 5 선택 수행 단계를 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 16에 있어서,
상기 제 5 선택 수행 단계는,
상기 최상위 2 비트의 값을 좌측으로 6비트 이동한 값과, 상기 차상위 2 비트의 값을 좌측으로 4 비트 이동한 값과, 상기 차하위 2 비트의 값을 좌측으로 2 비트 이동한 값 및 상기 최하위 2 비트의 값을 더하여 상기 최상위 우선순위 태스크를 결정하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 17에 있어서,
상기 선택하는 단계 이후에,
태스크 실행부에 의하여, 상기 최상위 우선순위 태스크(Q)에게 CPU를 할당하여 상기 최상위 우선순위 태스크(Q)를 실행하는 단계를 더 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 13에 있어서,
태스크 삭제부에 의하여, 실행 종료되거나 실행 중지된 태스크인 삭제 대상 태스크(R)를 상기 준비리스트에서 삭제하는 단계를 더 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법. - 청구항 19에 있어서,
상기 삭제하는 단계는,
상기 준비리스트의 순차 검색 없이 수행하기 위하여 저장소에 저장된 어레이 구조의 맵테이블을 기반으로,
상기 삭제 대상 태스크(R)의 최하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 준비테이블을 언마스킹하는 제 1 삭제 수행 단계;
상기 제 1 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차하위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 3 준비그룹을 언마스킹하는 제 2 삭제 수행 단계;
상기 제 2 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 차상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 2 준비그룹을 언마스킹하는 제 3 삭제 수행 단계; 및
상기 제 3 삭제 수행 결과가 0인 경우, 상기 삭제 대상 태스크(R)의 최상위 2 비트의 값을 색인한 맵테이블 값에 대응하여 상기 제 1 준비그룹을 언마스킹하는 제 4 삭제 수행 단계를 포함하는 것을 특징으로 하는 다차원 기법의 시공간 결정적 태스크 스케줄링 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130137398A KR101541156B1 (ko) | 2013-11-13 | 2013-11-13 | 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법 |
US14/468,957 US9298505B2 (en) | 2013-11-13 | 2014-08-26 | Time and space-deterministic task scheduling apparatus and method using multi-dimensional scheme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130137398A KR101541156B1 (ko) | 2013-11-13 | 2013-11-13 | 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150055270A KR20150055270A (ko) | 2015-05-21 |
KR101541156B1 true KR101541156B1 (ko) | 2015-08-03 |
Family
ID=53044982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130137398A KR101541156B1 (ko) | 2013-11-13 | 2013-11-13 | 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9298505B2 (ko) |
KR (1) | KR101541156B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10241654B2 (en) * | 2013-12-20 | 2019-03-26 | Dassault Systemes Americas Corp. | Computer method and apparatus for automated scheduling |
US9606833B2 (en) * | 2014-04-09 | 2017-03-28 | Samsung Electronics Co., Ltd | Method and apparatus for providing a preemptive task scheduling scheme in a real time operating system |
US10620957B2 (en) | 2015-10-22 | 2020-04-14 | Texas Instruments Incorporated | Method for forming constant extensions in the same execute packet in a VLIW processor |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757897B1 (en) * | 2000-02-29 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and methods for scheduling and performing tasks |
KR100384339B1 (ko) | 2000-04-21 | 2003-05-16 | 주식회사 아이네스테크 | 태스크 스케쥴링 방법 |
JP2002082815A (ja) * | 2000-09-07 | 2002-03-22 | Oki Electric Ind Co Ltd | タスクプログラム制御システム |
US7093254B2 (en) * | 2002-04-01 | 2006-08-15 | International Business Machines Corporation | Scheduling tasks quickly in a sequential order |
US7734833B2 (en) * | 2005-09-08 | 2010-06-08 | International Business Machines Corporation | Method for scheduling operations called by a task on a real-time or non-real time processor |
KR20120067502A (ko) | 2010-12-16 | 2012-06-26 | 한국전자통신연구원 | Osek 기반의 시간 결정 실시간 스케줄링 방법 |
US20130074088A1 (en) * | 2011-09-19 | 2013-03-21 | Timothy John Purcell | Scheduling and management of compute tasks with different execution priority levels |
US9836418B2 (en) * | 2013-03-13 | 2017-12-05 | Dornerworks, Ltd. | System and method for deterministic time partitioning of asynchronous tasks in a computing environment |
-
2013
- 2013-11-13 KR KR1020130137398A patent/KR101541156B1/ko active IP Right Grant
-
2014
- 2014-08-26 US US14/468,957 patent/US9298505B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9298505B2 (en) | 2016-03-29 |
KR20150055270A (ko) | 2015-05-21 |
US20150135184A1 (en) | 2015-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112153700B (zh) | 一种网络切片资源管理方法及设备 | |
US20180307732A1 (en) | Frequent pattern mining | |
EP2288990B1 (en) | Scheduling collections in a scheduler | |
US8381230B2 (en) | Message passing with queues and channels | |
US8782649B2 (en) | Real-time scheduling of task sets and determination of task sets based on verified weight, cache hit radio of the tasks and available processing cores | |
KR101644800B1 (ko) | 컴퓨팅 시스템 및 방법 | |
CN109388486B (zh) | 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法 | |
EP2921954A1 (en) | Virtual machine allocation method and apparatus | |
CN116225669B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
KR102594657B1 (ko) | 비순차적 리소스 할당을 구현하는 방법 및 장치 | |
CN111488205A (zh) | 面向异构硬件架构的调度方法和调度系统 | |
CN106569892B (zh) | 资源调度方法与设备 | |
KR101541156B1 (ko) | 다차원 기법의 시공간 결정적 태스크 스케줄링 장치 및 방법 | |
US20070195356A1 (en) | Job preempt set generation for resource management | |
CN103530168A (zh) | 基于虚拟化技术的多卫星遥感数据处理系统和方法 | |
CN105824705B (zh) | 一种任务分配方法和电子设备 | |
KR101593161B1 (ko) | 메모리 관리 장치 및 방법 | |
CN116185629A (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
US8543722B2 (en) | Message passing with queues and channels | |
CN116932175B (zh) | 一种基于序列生成的异构芯片任务调度方法以及装置 | |
Branch | An efficient task priority measurement for list-scheduling in multiprocessor environments | |
KR101998278B1 (ko) | 회전 레지스터 사이즈의 동적 설정을 위한 스케줄링 장치 및 방법 | |
CN108205465B (zh) | 流式应用程序的任务动态调度方法和装置 | |
CN109240815A (zh) | 一种共享堆栈的多任务运行方法、装置及设备 | |
CN115878309A (zh) | 资源分配方法、装置、处理核、设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180625 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190701 Year of fee payment: 5 |