KR102280796B1 - 스케줄링 프로세서 및 방법 - Google Patents

스케줄링 프로세서 및 방법 Download PDF

Info

Publication number
KR102280796B1
KR102280796B1 KR1020190156038A KR20190156038A KR102280796B1 KR 102280796 B1 KR102280796 B1 KR 102280796B1 KR 1020190156038 A KR1020190156038 A KR 1020190156038A KR 20190156038 A KR20190156038 A KR 20190156038A KR 102280796 B1 KR102280796 B1 KR 102280796B1
Authority
KR
South Korea
Prior art keywords
partitions
cores
type
receiving
partitioning
Prior art date
Application number
KR1020190156038A
Other languages
English (en)
Other versions
KR20210066596A (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 국방과학연구소
Priority to KR1020190156038A priority Critical patent/KR102280796B1/ko
Publication of KR20210066596A publication Critical patent/KR20210066596A/ko
Application granted granted Critical
Publication of KR102280796B1 publication Critical patent/KR102280796B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/328Computer systems status display
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 스케줄링 프로세서 및 방법에 관한 것으로, 소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하고, 상기 파티션들을 상기 코어들에 할당하는 제어부; 및 할당된 상기 파티션들을 수행하는 상기 코어들의 상황을 디스플레이하는 디스플레이부를 포함한다.

Description

스케줄링 프로세서 및 방법 { Scheduling Processor and Method }
본 발명은 멀티코어 프로세서를 포함하는 컴퓨터를 스케줄링하는 스케줄링 프로세서 및 방법에 관한 것이다.
파티셔닝 운영체제는 테이블을 파티션 단위로 구분하고, 파티션간에 시간과 공간을 분리하여 각각의 파티션에서 오류가 발생하여도 다른 파티션으로 오류가 전파되지 않는 장점이 있다.
이러한 장점으로 인해, 항공 및 위성 등의 안전 필수(Safety-Critical) 시스템에서 널리 사용된다.
파티셔닝 운영체제에서는 파티션 간의 수행 순서를 명시한 정적 스케줄링을 기반으로하여 작업이 수행된다.
더욱이, 최근 하드웨어는 여러 개의 코어가 동시에 수행되는 멀티코어 시스템이 일반화되고 있다.
멀티코어 시스템에서 코어별로 다른 파티션이 수행되는 경우, 복잡도가 높아져 사용자가 파티션의 수행 순서와 동작을 파악하기가 쉽지 않다.
그리고, 사용자가 수행의 우선순위를 변경하기 위해 동적 스케줄링을 적용하려면, 시작시간, 수행시간 및 주기와 같은 값들을 계산하여 테이블에 적용해야 하므로 사용자가 접근하기에 어려움이 있다.
본 발명의 목적은 멀티코어 기반의 운영체제에서 사용자가 쉽게 파티션들을 나누고, 파티션들을 코어들에 할당할 수 있도록 진행 과정을 시각적으로 나타내는 스케줄링 프로세서 및 방법을 제공하는 것이다.
또한, 본 발명의 또 다른 목적은 파티션들이 할당된 코어들의 동작을 디스플레이하여 사용자가 용이하게 파악할 수 있는 스케줄링 프로세서 및 방법을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 하나의 특징에 따른 스케줄링 프로세서는, CPU에 복수의 코어들을 구비하는 컴퓨터를 제어하는 제어 프로세서로서, 소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하고, 상기 파티션들을 상기 코어들에 할당하는 제어부; 및 할당된 상기 파티션들을 수행하는 상기 코어들의 상황을 디스플레이하는 디스플레이부를 포함한다.
한편, 상기한 본 발명의 목적을 실현하기 위한 다른 하나의 특징에 따른 스케줄링 방법은, CPU에 복수의 코어들을 구비하는 컴퓨터를 제어하는 제어 방법으로서, 소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하기 위해 파티셔닝유형을 선택받는 단계; 상기 파티셔닝유형에 근거하여 각각의 상기 파티션들을 구분하기 위한 실행조건을 입력받고, 상기 실행조건에 의해 상기 파티션들을 구분하는 단계; 상기 파티션들을 상기 코어들에 할당하기 위해 할당유형을 선택받는 단계; 및 상기 할당유형에 근거하여 상기 코어들에 상기 파티션들을 할당하는 단계를 포함한다.
여기서, 상기 파티셔닝유형은, 상기 프로그램이 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상에 따라 상기 파티션들을 구분하는 시간파티셔닝; 및 상기 CPU의 캐시메모리 크기를 설정하여 상기 파티션들을 구분하는 공간파티셔닝을 포함할 수 있다.
그리고, 상기 파티셔닝유형을 선택받는 단계에서 상기 시간파티셔닝이 선택되면, 상기 파티션들을 구분하는 단계는, 상기 파티션들의 이름, 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상을 상기 실행조건으로 입력받을 수 있는 테이블을 시각적으로 나타내는 단계; 상기 실행조건을 상기 테이블에 입력받는 단계; 상기 파티션들 간의 충돌 여부를 판단하는 단계; 및 상기 실행조건에 근거하여 상기 파티션들을 구분하는 단계를 포함할 수 있다.
또한, 상기 파티셔닝유형을 선택받는 단계에서 상기 공간파티셔닝이 선택되면, 상기 파티션들을 구분하는 단계는, 상기 파티션들의 이름, 상기 파티션들이 차지하는 캐시메모리의 시작주소 및 크기 중 적어도 어느 하나 이상을 상기 실행조건으로 입력받을 수 있는 테이블을 시각적으로 나타내는 단계; 상기 실행조건을 입력받는 단계; 상기 파티션들 간의 충돌 여부를 판단하는 단계; 및 상기 실행조건에 근거하여 상기 파티션들을 구분하는 단계를 포함할 수 있다.
또한, 상기 파티셔닝유형을 선택받는 단계에서 상기 공간파티셔닝이 선택되면, 상기 파티션들을 구분하는 단계는, 상기 파티션들의 이름을 입력받을 수 있는 테이블을 시각적으로 나타내는 단계; 상기 파티션들의 이름을 입력받는 단계; 상기 캐시메모리를 시각적으로 나타내는 단계; 상기 테이블에서 상기 파티션들 중 어느 하나를 선택받고, 상기 캐시메모리에 범위를 지정받아 상기 파티션의 크기를 설정하는 단계; 상기 파티션들 간의 충돌 여부를 판단하는 단계; 상기 캐시메모리에 지정된 상기 범위에 근거하여 상기 파티션들을 구분하는 단계; 및 상기 파티션들의 지정범위에 따라 상기 파티션들이 차지하는 캐시메모리의 시작주소 및 크기 중 적어도 어느 하나 이상을 상기 테이블에 동기화하는 단계를 포함할 수 있다.
그리고, 상기 할당유형은, 특정 시간에 상기 코어들이 각각 서로 다른 파티션을 실행하는 제1 유형; 특정 시간에 상기 코어들이 하나의 상기 파티션을 동시에 실행하는 제2 유형; 및 상기 코어들이 상기 공간파티셔닝으로 구분된 파티션들을 실행하는 제3 유형을 포함할 수 있다.
나아가, 상기 파티셔닝유형을 선택받는 단계에서 상기 시간파티셔닝이 선택되면, 상기 할당유형을 선택받는 단계에서, 상기 제1 유형 및 상기 제2 유형 중 어느 하나를 선택받을 수 있다.
또한, 상기 파티셔닝유형을 선택받는 단계에서 상기 공간파티셔닝이 선택되면, 상기 할당유형을 선택받는 단계에서, 상기 제3 유형이 자동으로 선택될 수 있다.
그리고, 상기 파티션들을 할당하는 단계는, 상기 코어들을 시각적으로 나타내는 단계; 드래그 앤드 드롭으로 상기 파티션들이 상기 코어들로 이동되어 상기 파티션들이 할당될 상기 코어들을 선택받는 단계; 상기 선택에 근거하여 상기 파티션들을 상기 코어들로 할당하는 단계; 및 할당된 상기 파티션들을 수행하는 상기 코어들의 상황을 디스플레이하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 스케줄링 프로세서 및 방법에 따르면,
첫째, 파티션들을 나누는 과정을 시각적으로 나타내어 사용자가 쉽게 파티셔닝을 할 수 있다.
둘째, 파티션들을 코어들에 할당하는 과정을 시각적으로 나타내고, 드래그 앤 드롭으로 파티션들을 할당할 수 있어 사용자가 용이하게 스케줄링을 할 수 있다.
셋째, 파티션들을 수행하는 코어들의 상황을 디스플레이하여 사용자가 용이하게 파악할 수 있기 때문에, 잠재적인 스케줄링 오류를 제거할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스케줄링 프로세서를 대략적으로 나타낸 개념도이다.
도 2는 본 발명의 일 실시예에 따른 스케줄링 방법을 설명하기 위한 흐름도이다.
도 3은 도 1에 도시된 파티션을 구분하는 과정의 제1 실시예를 설명하기 위한 흐름도이다.
도 4는 도 1에 도시된 파티션을 구분하는 과정의 제2 실시예를 설명하기 위한 흐름도이다.
도 5는 도 1에 도시된 파티션을 구분하는 과정의 제3 실시예를 설명하기 위한 흐름도이다.
도 6은 도 1에 도시된 파티션을 할당하는 과정을 설명하기 위한 흐름도이다.
도 7은 파티션을 구분하는 제1 실시예를 나타낸 예시도이다.
도 8은 파티션을 구분하는 제2 실시예를 나타낸 예시도이다.
도 9는 파티션을 구분하는 제3 실시예를 나타낸 예시도이다.
도 10은 할당유형 중 제1 유형 및 제2 유형을 나타낸 예시도이다.
도 11은 할당유형 중 제3 유형을 나타낸 예시도이다.
이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시예를 보다 상세하게 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지 이유로 첨부 도면에 있어서 일부 구성 요소는 과장되거나 생략되거나 개략적으로 도시되었다.
도 1은 본 발명의 일 실시예에 따른 스케줄링 프로세서를 대략적으로 나타낸 개념도이다.
본 발명은 CPU에 복수의 코어들을 구비하는 컴퓨터의 스케줄링을 제어하는 스케줄링 프로세서(100)로서, 제어부(110) 및 디스플레이부(120)를 포함한다.
제어부(110)는 소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하고, 파티션들을 코어들에 할당한다.
그리고, 디스플레이부(120)는 할당된 파티션들을 수행하는 코어들의 상황을 디스플레이한다.
도 2는 본 발명의 일 실시예에 따른 스케줄링 방법을 설명하기 위한 흐름도이고, 도 3은 도 1에 도시된 파티션을 구분하는 과정의 제1 실시예를 설명하기 위한 흐름도이며, 도 4는 도 1에 도시된 파티션을 구분하는 과정의 제2 실시예를 설명하기 위한 흐름도이고, 도 5는 도 1에 도시된 파티션을 구분하는 과정의 제3 실시예를 설명하기 위한 흐름도이며, 도 6은 도 1에 도시된 파티션을 할당하는 과정을 설명하기 위한 흐름도이다.
그리고, 도 7은 파티션을 구분하는 제1 실시예를 나타낸 예시도이고, 도 8은 파티션을 구분하는 제2 실시예를 나타낸 예시도이며, 도 9는 파티션을 구분하는 제3 실시예를 나타낸 예시도이고, 도 10은 할당유형 중 제1 유형 및 제2 유형을 나타낸 예시도이며, 도 11은 할당유형 중 제3 유형을 나타낸 예시도이다.
도 1 및 도 2를 참조하면, 본 발명은 CPU에 복수의 코어들을 구비하는 컴퓨터를 스케줄링하는 스케줄링 방법으로, 제어부(110)가 소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하기 위해 파티셔닝유형을 선택받는다(단계 S110).
여기서, 파티셔닝유형은 시간파티셔닝 및 공간파티셔닝으로 구분된다.
시간파티셔닝은 프로그램이 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상에 따라 파티션들을 구분하는 유형이다.
그리고, 공간파티셔닝은 CPU의 캐시메모리 크기를 설정하여 파티션들을 구분하는 유형이다.
제어부(110)는 단계 S110에서 선택한 파티셔닝유형에 근거하여 각각의 파티션들을 구분하기 위한 실행조건을 입력받고, 실행조건에 의해 파티션들을 구분한다(단계 S120, 단계 S130, 단계 S140).
여기서, 단계 S120은 단계 S110에서 시간파티셔닝이 선택된 경우, 파티션들을 구분하는 제1 실시예이다.
그리고, 단계 S130 및 단계 S140은 단계 S110에서 공간파티셔닝이 선택된 경우, 파티션들을 구분하는 제2 실시예와 제3 실시예이다.
이후, 제어부(110)는 파티션들을 코어들에 할당하기 위해 할당유형을 선택받는다(단계 S150).
여기서, 할당유형은 제1 유형, 제2 유형 및 제3 유형으로 구분된다.
제1 유형은 특정 시간에 코어들이 각각 서로 다른 파티션을 실행하는 유형이다.
제2 유형은 특정 시간에 코어들이 하나의 파티션을 동시에 실행하는 유형이다.
그리고, 제3 유형은 코어들이 공간파티셔닝으로 구분된 파티션을 실행하는 유형이다.
제1 유형 및 제2 유형은 시간파티셔닝에 적용할 수 있고, 제3 유형은 공간파티셔닝에 적용할 수 있다.
그리고, 제어부(110)는 단계 S150에서 선택받은 할당유형에 근거하여 코어들에 파티션들을 할당한다(단계 S160).
도 3을 참조하여 파티션을 구분하는 제1 실시예(단계 S120)에 대해서 설명한다.
단계 S110에서 사용자에 의해 시간파티셔닝이 선택되면,
제어부(110)는 도 7에 도시된 것처럼, 파티션들의 이름, 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상을 실행조건으로 입력받을 수 있는 테이블(10)을 시각적으로 나타내고(단계 S121), 실행조건을 테이블(10)에 입력받는다(단계 S122).
단계 S121에서, 테이블(10)은 도 7의 (a)에 도시된 것처럼 어떠한 것도 입력되지 않은 상태이다.
이후, 제어부(110)는 파티션(11)들 간의 충돌 여부를 판단한다(단계 S123).
단계 S123에서 파티션(11)들 간의 충돌이 발생하는 것으로 판단되면 단계S122가 다시 수행될 수 있도록 사용자에게 알림을 제공하고, 충돌이 발생하지 않는 것으로 판단되면 도 7의 (b)에 도시된 것처럼 실행조건에 따라 파티션(11)들을 구분한다(단계 S124).
추가적으로, 구분된 파티션(11)들은 서로 다른 색으로 나타날 수 있어 사용자가 인식하기에 용이하다.
도 4를 참조하여 파티션을 구분하는 제2 실시예(단계 S130)에 대해서 설명한다.
단계 S110에서 사용자에 의해 공간파티셔닝이 선택되면,
제어부(110)는 도 8의 (a)에 도시된 것처럼, 파티션(21)들의 이름, 파티션(21)들이 차지하는 캐시메모리의 시작주소 및 크기 중 적어도 어느 하나 이상을 실행조건으로 입력받을 수 있는 테이블(20)을 시각적으로 나타낸다(단계 S131).
이후, 실행조건이 테이블(20)에 입력되면(단계 S132), 제어부(110)는 파티션(21)들 간의 충돌 여부를 판단한다(단계 S133).
단계 S133에서 파티션(21)들 간의 충돌이 발생하는 것으로 판단되면 단계 S132가 다시 수행될 수 있도록 사용자에게 알림을 제공하고, 충돌이 발생하지 않는 것으로 판단되면 도 8의 (b)와 같이 실행조건에 근거하여 파티션(21)들을 구분한다(단계 S134).
추가적으로, 제어부(110)는 테이블(20)과 캐시메모리(30)를 동기화할 수 있다.
따라서, 도 9의 (b)에 도시된 것처럼 파티션(21)들이 할당된 캐시메모리(30)를 시각적으로 나타낼 수 있다.
그리고, 구분된 파티션(21)들은 서로 다른 색으로 나타날 수 있어 사용자가 인식하기에 용이하다.
도 5를 참조하여 공간파티셔닝을 선택한 경우 파티션을 구분하는 제3 실시예(단계 S140)에 대해서 설명한다.
단계 S110에서 사용자에 의해 공간파티셔닝이 선택되면,
제어부(110)는 파티션(21)들의 이름을 입력할 수 있는 테이블(20)을 시각적으로 나타내고(단계 S141), 사용자로부터 파티션(21)들의 이름을 입력받는다(단계 S142).
단계 S141에서 테이블은 도 8의 (a)에 도시된 테이블(20)과 동일한 테이블(20)이 나타나고, 단계 S142에서 파티션(21)들의 이름이 입력되면 도 8의 (b)에 도시된 테이블(20)에서 이름만 입력된 상태가 된다.
그리고, 제어부(110)는 도 9의 (a)에 도시된 것처럼 캐시메모리(30)를 시각적으로 나타낸다(단계 S143).
이후, 테이블(20)에서 파티션(21)들의 이름 중 어느 하나를 선택받고, 캐시메모리(30)에 범위를 지정받아 선택받은 파티션(21)의 크기를 설정한다(단계 S144).
단계 S144에서, 사용자가 캐시메모리(30)에 파티션(21)의 범위를 지정하는 방법은 마우스를 드래그하여 범위를 지정할 수도 있고, 범위의 시작부분과 끝부분을 클릭하여 범위를 지정할 수도 있다.
그리고, 제어부(110)가 파티션(21)들 간의 충돌 여부를 판단한다(단계 S145).
단계 S145에서 파티션(21)들 간의 충돌이 발생하는 것으로 판단되면 단계 S144가 다시 수행될 수 있도록 사용자에게 알림을 제공하고, 충돌이 발생하지 않는 것으로 판단되면 실행조건에 따라 파티션(21)들을 구분한다(단계 S146).
이후, 제어부(110)는 캐시메모리(30)에 지정된 파티션(21)들의 범위에 따라 파티션(21)들이 차지하는 캐시메모리(30)의 시작주소 및 크기 중 적어도 어느 하나 이상을 테이블(20)에 동기화한다(단계 S147).
동기화된 테이블(20)은 도 8의 (b)와 같이 나타날 수 있다.
추가적으로, 사용자는 동기화된 테이블(20)에 입력된 캐시메모리(30)의 시작주소 및 크기를 수정하여 구분된 파티션(21)들의 크기를 수정할 수도 있고, 도 9의 (b)에서 파티션(21)의 양측 모서리를 이동시켜 지정된 범위를 조절할 수도 있다.
여기서, 제어부(110)는 양측 모서리를 이동시켜 파티션(21)의 범위가 조절되면, 조절된 범위가 테이블(20)에 업데이트된다.
이렇게, 파티션을 나누는 제1 실시예(단계 S120), 제2 실시예(단계 S130) 및 제3 실시예(단계 S140)과 같이 파티션들을 나누는 과정을 시각적으로 나타내어 사용자가 쉽게 파티셔닝을 할 수 있다.
그리고, 캐시메모리(30)에 구분된 파티션(21)들은 서로 다른 색으로 나타날 수 있어 사용자가 인식하기에 용이하다.
도 6을 참조하여 파티션들을 할당하는 과정(단계 S160)에 대해서 설명한다.
먼저, 도 9의 (a)에 도시된 것처럼 제어부(110)는 CPU(40)에 포함된 코어(41)들을 시각적으로 나타낸다(단계 S161).
단계 S161은, 제1 유형, 제2 유형 및 제3 유형 모두 동일하게 나타난다.
그리고, 사용자에 의해 드래그 앤드 드롭으로 파티션들이 할당될 코어(41)들을 선택받고(단계 S162), 사용자의 선택에 근거하여 파티션들을 코어(41)들로 할당하여 코어(41)들이 파티션들을 수행하도록 명령한다(단계 S163).
이후, 디스플레이부(120)는 할당된 파티션들을 수행하는 코어(41)들의 상황을 디스플레이 한다(단계 S164).
단계 S162에서 사용자가 이미 파티션이 할당되어 있는 코어에 새로운 파티션을 할당하면, 제어부(110)는 기존의 진행중인 파티션을 중단하고 새로운 파티션을 수행하는 명령을 내린다.
그리고, 제어부(110)는 테이블에 새로운 파티션의 시작시간, 수행시간 및 주기를 업데이트 하고, 디스플레이부(120)는 업데이트된 상황을 디스플레이 한다.
단계 S162와 단계 S163을 파티션들을 코어들에 할당하는 할당유형 별로 나눠서 설명하면,
먼저, 단계 S150에서 제1 유형 및 제2 유형을 선택한 경우, 사용자는 도 7의 (b)의 테이블(10)에 구분된 파티션(11)들 중 하나를 선택하고, 도 10의 (a)의 코어(41)들에 드래그 앤 드롭한다.
도 10의 (b)는 제1 유형으로 파티션(11)들이 코어(41)들에 할당된 상태를 나타낸다.
제1 유형은 특정 시간에 코어들이 각각 서로 다른 파티션을 실행하는 유형으로, 도 10의 (b)에 도시된 것처럼 각각의 코어(41)들은 특정 시간에 서로 다른 파티션(11)을 수행한다.
도 10의 (c)는 제2 유형으로 파티션(11)들이 코어(41)들에 할당된 상태를 나타낸다.
그리고, 제2 유형은 특정 시간에 코어들이 하나의 파티션을 동시에 실행하는 유형으로, 도 10의 (c)에 도시된 것처럼 코어(41)들은 특정 시간에 하나의 파티션(11)을 동시에 수행한다.
그리고, 단계 S110에서 공간파티셔닝을 선택한 경우, 단계 S150에서 제3 유형이 자동으로 선택되는데, 사용자는 도 8의 (b)의 테이블(20) 또는 도 9의 (b)의 캐시메모리(30)에 구분된 파티션(21)들 선택하고, 도 10의 (a)의 코어(41)들에 드래그 앤 드롭한다.
도 11은 파티션(21)들이 제3 유형으로 코어(41)들에 할당된 상태를 나타낸다.
제3 유형은 코어(41)들은 파티션(21)들에서 실행되는 프로그램들의 우선순위에 따라 파티션(21)들을 수행하는 정적 스케줄링으로 파티션(21)들이 수행되고, 파티션(21)이 가지는 캐시메모리의 크기에 따라 수행속도가 다르게 나타날 수 있다.
추가적으로, 코어(41)들에 할당된 파티션(11, 21)들은 서로 다른 색으로 나타날 수 있어 사용자가 용이하게 인식할 수 있다.
이렇게, 단계 S160에 의해 파티션들을 코어들에 할당하는 과정을 시각적으로 나타내고, 드래그 앤 드롭으로 파티션들을 할당할 수 있어 사용자가 용이하게 스케줄링을 할 수 있다.
그리고, 파티션들을 수행하는 코어들의 상황을 디스플레이하여 사용자가 용이하게 파악할 수 있기 때문에, 잠재적인 스케줄링 오류를 제거할 수 있다.
나아가, 잠재적인 스케줄링 오류를 제거하여 추후 발생될 수 있는 디버깅 및 시험 시간을 줄일 수 있어 소프트웨어 개발의 효율성을 높일 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110...제어부 120...디스플레이부
10...테이블 11...파티션
20...테이블 21...파티션
30...캐시메모리 40...CPU
41...코어

Claims (10)

  1. CPU에 복수의 코어들을 구비하는 컴퓨터의 스케줄링을 제어하는 스케줄링 방법으로서,
    소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하기 위해 파티셔닝유형을 선택받는 단계;
    상기 파티셔닝유형에 근거하여 각각의 상기 파티션들을 구분하기 위한 실행조건을 입력받고, 상기 실행조건에 의해 상기 파티션들을 구분하는 단계;
    상기 파티션들을 상기 코어들에 할당하기 위해 할당유형을 선택받는 단계; 및
    상기 할당유형에 근거하여 상기 코어들에 상기 파티션들을 할당하는 단계를 포함하고,
    상기 파티셔닝유형은,
    상기 프로그램이 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상에 따라 상기 파티션들을 구분하는 시간파티셔닝; 및
    상기 CPU의 캐시메모리 크기를 설정하여 상기 파티션들을 구분하는 공간파티셔닝을 포함하고,
    상기 할당유형은,
    특정 시간에 상기 코어들이 각각 서로 다른 파티션을 실행하는 제1 유형;
    특정 시간에 상기 코어들이 하나의 상기 파티션을 동시에 실행하는 제2 유형; 및
    상기 코어들이 상기 공간파티셔닝으로 구분된 파티션들을 실행하는 제3 유형을 포함하는 스케줄링 방법.
  2. 제1항에 있어서,
    상기 파티셔닝유형을 선택받는 단계에서 상기 시간파티셔닝이 선택되면,
    상기 할당유형을 선택받는 단계에서,
    상기 제1 유형 및 상기 제2 유형 중 어느 하나를 선택받는 것을 특징으로 하는 스케줄링 방법.
  3. 제1항에 있어서,
    상기 파티셔닝유형을 선택받는 단계에서 상기 공간파티셔닝이 선택되면,
    상기 할당유형을 선택받는 단계에서,
    상기 제3 유형이 자동으로 선택되는 것을 특징으로 하는 스케줄링 방법.
  4. 제1항에 있어서,
    상기 파티션들을 할당하는 단계는,
    상기 코어들을 시각적으로 나타내는 단계;
    드래그 앤드 드롭으로 상기 파티션들이 상기 코어들로 이동되어 상기 파티션들이 할당될 상기 코어들을 선택받는 단계;
    상기 선택에 근거하여 상기 파티션들을 상기 코어들로 할당하는 단계; 및
    할당된 상기 파티션들을 수행하는 상기 코어들의 상황을 디스플레이하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법.
  5. CPU에 복수의 코어들을 구비하는 컴퓨터의 스케줄링을 제어하는 스케줄링 방법으로서,
    소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하기 위해, 파티셔닝유형으로서, 상기 프로그램이 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상에 따라 상기 파티션들을 구분하는 시간파티셔닝을 선택받는 단계;
    상기 파티션들의 이름, 시작되는 시간, 실행되는 시간 및 주기 중 적어도 어느 하나 이상을 실행조건으로 입력받을 수 있는 테이블을 시각적으로 나타내는 단계;
    상기 실행조건을 상기 테이블에 입력받는 단계;
    상기 파티션들 간의 충돌 여부를 판단하는 단계;
    상기 실행조건에 근거하여 상기 파티션들을 구분하는 단계;
    상기 파티션들을 상기 코어들에 할당하기 위해 할당유형을 선택받는 단계; 및
    상기 할당유형에 근거하여 상기 코어들에 상기 파티션들을 할당하는 단계를 포함하
    는 스케줄링 방법.
  6. CPU에 복수의 코어들을 구비하는 컴퓨터의 스케줄링을 제어하는 스케줄링 방법으로서,
    소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하기 위해, 파티셔닝유형으로서, 상기 CPU의 캐시메모리 크기를 설정하여 상기 파티션들을 구분하는 공간파티셔닝을 선택받는 단계;
    상기 파티션들의 이름, 상기 파티션들이 차지하는 캐시메모리의 시작주소 및 크기 중 적어도 어느 하나 이상을 실행조건으로 입력받을 수 있는 테이블을 시각적으로 나타내는 단계;
    상기 실행조건을 입력받는 단계;
    상기 파티션들 간의 충돌 여부를 판단하는 단계;
    상기 실행조건에 근거하여 상기 파티션들을 구분하는 단계;
    상기 파티션들을 상기 코어들에 할당하기 위해 할당유형을 선택받는 단계; 및
    상기 할당유형에 근거하여 상기 코어들에 상기 파티션들을 할당하는 단계를 포함하
    는 스케줄링 방법.
  7. CPU에 복수의 코어들을 구비하는 컴퓨터의 스케줄링을 제어하는 스케줄링 방법으로서,
    소정 프로그램을 실행하기 위한 복수의 파티션들을 생성하기 위해, 파티셔닝유형으로서, 상기 CPU의 캐시메모리 크기를 설정하여 상기 파티션들을 구분하는 공간파티셔닝을 선택받는 단계;
    상기 파티션들의 이름을 입력받을 수 있는 테이블을 시각적으로 나타내는 단계;
    상기 파티션들의 이름을 입력받는 단계;
    상기 캐시메모리를 시각적으로 나타내는 단계;
    상기 테이블에서 상기 파티션들 중 어느 하나를 선택받고, 상기 캐시메모리에 범위를 지정받아 상기 파티션의 크기를 설정하는 단계;
    상기 파티션들 간의 충돌 여부를 판단하는 단계;
    상기 캐시메모리에 지정된 상기 범위에 근거하여 상기 파티션들을 구분하는 단계;
    상기 파티션들의 지정범위에 따라 상기 파티션들이 차지하는 캐시메모리의 시작주소 및 크기 중 적어도 어느 하나 이상을 상기 테이블에 동기화하는 단계;
    상기 파티션들을 상기 코어들에 할당하기 위해 할당유형을 선택받는 단계; 및
    상기 할당유형에 근거하여 상기 코어들에 상기 파티션들을 할당하는 단계를 포함하는 스케줄링 방법.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020190156038A 2019-11-28 2019-11-28 스케줄링 프로세서 및 방법 KR102280796B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190156038A KR102280796B1 (ko) 2019-11-28 2019-11-28 스케줄링 프로세서 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190156038A KR102280796B1 (ko) 2019-11-28 2019-11-28 스케줄링 프로세서 및 방법

Publications (2)

Publication Number Publication Date
KR20210066596A KR20210066596A (ko) 2021-06-07
KR102280796B1 true KR102280796B1 (ko) 2021-07-22

Family

ID=76374392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190156038A KR102280796B1 (ko) 2019-11-28 2019-11-28 스케줄링 프로세서 및 방법

Country Status (1)

Country Link
KR (1) KR102280796B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102353602B1 (ko) * 2021-07-13 2022-01-21 국방과학연구소 파티션 스케줄링 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199280A1 (en) 2009-02-05 2010-08-05 Honeywell International Inc. Safe partition scheduling on multi-core processors

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005086005A1 (en) * 2004-03-05 2005-09-15 Secure Systems Limited Partition access control system and method for controlling partition access
KR101859188B1 (ko) * 2011-09-26 2018-06-29 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
KR102571501B1 (ko) * 2016-10-26 2023-08-29 한화비전 주식회사 메모리 장치
KR20180109096A (ko) * 2017-03-27 2018-10-08 주식회사 알티스트 멀티 코어 환경에서의 파티션 스케쥴링 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199280A1 (en) 2009-02-05 2010-08-05 Honeywell International Inc. Safe partition scheduling on multi-core processors

Also Published As

Publication number Publication date
KR20210066596A (ko) 2021-06-07

Similar Documents

Publication Publication Date Title
US20130293546A1 (en) Dynamic load balancing apparatus and method for graphic processing unit (gpu)
CN109213607B (zh) 一种多线程渲染的方法和装置
KR102258542B1 (ko) 프로그래머블 컨트롤러, 관리 장치 및 제어 시스템
KR102280796B1 (ko) 스케줄링 프로세서 및 방법
JP6371778B2 (ja) プロセス移行方法及びコンピュータシステム
JP6107801B2 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
US20200401456A1 (en) Managing virtual machine memory balloon using time series predictive data
JP6372262B2 (ja) 印刷装置、およびプログラム
KR20080105345A (ko) 병렬 처리 장치 및 방법
US10509737B2 (en) Data processing system for a graphical interface and graphical interface comprising such a data processing system
KR101349561B1 (ko) 임계성에 기초한 파티션 스케쥴링 장치 및 방법
WO2014027444A1 (ja) スケジューリング装置、及び、スケジューリング方法
US10620982B2 (en) Multi-target deployment of virtual systems
CN111033463B (zh) 信息处理装置、信息处理方法以及计算机可读存储介质
CN113391821A (zh) 一种非对称多处理器嵌入式操作系统
KR101865994B1 (ko) 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
US20110023035A1 (en) Command Synchronisation
JP6617511B2 (ja) 並列化方法、並列化ツール、車載装置
CN104050131A (zh) 片上系统及其操作方法
US20220250764A1 (en) Graphic data processing system
JP2011233086A (ja) 管理計算機、ジョブスケジューリング方法及びジョブスケジューリングプログラム
JPS59136853A (ja) 複数制御プログラムの実行制御方式
CN115145714A (zh) 容器实例的调度方法、装置和系统
WO2023061639A1 (en) A computer-implemented method and an electronic control unit for a deterministic data communication in a partitioned embedded system
JP2024071259A (ja) 計算機システム及びリソース割当制御方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right