KR101073428B1 - 자동차용 임베디드 운영체제의 태스크 스케줄링 방법 - Google Patents

자동차용 임베디드 운영체제의 태스크 스케줄링 방법 Download PDF

Info

Publication number
KR101073428B1
KR101073428B1 KR1020080118865A KR20080118865A KR101073428B1 KR 101073428 B1 KR101073428 B1 KR 101073428B1 KR 1020080118865 A KR1020080118865 A KR 1020080118865A KR 20080118865 A KR20080118865 A KR 20080118865A KR 101073428 B1 KR101073428 B1 KR 101073428B1
Authority
KR
South Korea
Prior art keywords
task
queue
priority
operating system
stored
Prior art date
Application number
KR1020080118865A
Other languages
English (en)
Other versions
KR20100060312A (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 KR1020080118865A priority Critical patent/KR101073428B1/ko
Publication of KR20100060312A publication Critical patent/KR20100060312A/ko
Application granted granted Critical
Publication of KR101073428B1 publication Critical patent/KR101073428B1/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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

자동차의 전자장치를 제어하기 위한 태스크의 마감시간에 근거하여 태스크 처리를 스케줄링하도록 한 자동차용 임베디드 운영체제의 태스크 스케줄링 방법이 제시된다. 제시된 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은, 자동차의 전자장치를 제어하기 위해 설치되는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법으로서, 마감시간을 갖는 태스크를 큐 우선순위를 갖는 복수의 대기 큐에 우선순위에 따라 분배하여 저장하는 단계; 각각의 대기 큐에 저장된 태스크들의 마감시간에 근거하여 각 대기 큐 내에서 태스크들의 저장위치를 변경하는 단계; 및 대기 큐에 저장된 태스크를 저장순서대로 검출하는 단계를 포함한다.

Description

자동차용 임베디드 운영체제의 태스크 스케줄링 방법{Method for scheduling task in embedded operating system of automobile}
본 발명은 자동차에 사용되는 임베디드 운영체제의 태스크 스케줄링 방법에 관한 것으로, 더욱 상세하게는 자동차용 임베디드 운영체제의 실시간 스케줄링 알고리즘을 개선하기 위한 자동차용 임베디드 운영체제의 태스크 스케줄링 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제명: 미래지능형 자동차전장용 임베디드 SW플랫폼기술 개발].
최근에는 IT기술이 자동차 관련 기술 분야들 중에서 전기 전자 분야에 접목되면서 자동차에 전자 장치의 장착 비중이 커지고 있다. 자동차에 장착되는 전자 장치는 자동차 안전장치에서부터 쾌적한 운행을 위한 운행장치에까지 적용되고 있다. 그에 따라, 자동차에 장착되는 전자 장치를 제어하기 위한 소프트웨어인 실시간 운영체제가 설치된다.
실시간 운영체제는 여러 가지 정의가 사용되지만 아래와 같은 정의가 가장 많이 사용된다. 즉, 실시간 운영체제는 주어진 특정 시간 내에 인터럽트를 처리하도록 보장하는 운영체제로서 임베디드 시스템과 같이 제한시간에 영향을 받는 응용 프로그램이나 하드웨어를 제어하기에 적합한 운영체제이다. 흔히 실시간 운영체제를 RTOS(Real-Time Operating System)으로 줄여서 표현한다. 즉, RTOS는 일반 운영체제에 하드웨어 관련한 시간적 제약 조건이 첨가된 운영체제로 볼 수 있다.
전자장치의 증가로 인해 자동차용 소프트웨어 크기가 기하급수적인 증가함에 따른 개발의 복잡성을 해결하기 위해 RTOS (실시간 운영체제)가 자동차 업계에 급격히 보급되고 있다. 자동차용 RTOS 중 대표적인 것이 OSEK 운영체제이다. OSEK OS는 BMW, Volkswagen, Siemens, Renault 등 유럽계 자동차 회사들이 주도적으로 개발한 자동차용 실시간 운영체제이다.
자동차용으로 설계된 실시간 운영체제의 표준인 OSEK 운영체제는 태스크의 생성, 이벤트 기반의 태스크 스케줄링, 태스크 동기화 등의 기능을 제공한다. 여기서, OSEK 운영체제의 스케줄링 알고리즘은 16개의 우선순위가 있다. 그리고 16개의 우선순위 대기 큐(queue)가 FIFO(First In First Out) 알고리즘 방식으로 처리되고 있다.
도 1에 도시된 바와 같이, OSEK 운영체제의 대기 알고리즘 방식에서는 16개의 대기 큐(100)를 가지고 있으며, 각 큐에는 해당하는 우선순위의 태스크(300)가 존재한다. 스케줄러(200)는 이들 큐를 순차적으로 검사하면서 수행할 태스크(300)를 선택한다. 즉, OSEK 운영체제의 대기 알고리즘 방식은 급한 태스크(300)가 대기 큐(100)에 진입을 하더라도 먼저 진입한 태스크(300)를 먼저 처리하는 방식이다. 그리하면, 종래의 자동차용 OSEK 운영체제는 급한 태스크(300)에 대해 이른 시간 안에 처리하지 못하고 먼저 진입한 태스크(300)들의 처리가 끝난 후에 처리를 시작하게 되어 실시간성을 보장하지 못하는 문제점이 있다.
OSEK 운영체제의 스케줄링 알고리즘은 우선순위가 고정적이다. 즉, 태스크(300)가 스케줄러(200)로 진입하게 되면 태스크(300)에 부여되어있는 우선순위에 따라 대기 큐(100)로 들어간다. 이때, 태스크(300)는 16개의 대기 큐(100)에 들어갈 때 이미 우선순위가 정해져 있고, 대기 큐(100) 내에서는 먼저 도착한 태스크(300)가 먼저 중앙처리장치(400)에서 동작하도록 설계되었다. 여기서, 태스크(300)에 부여되어 있는 우선순위는 프로그래머가 정해 놓은 우선순위이기 때문에 프로그래머가 수정하기 전에는 우선순위가 변경되지 않는다. 그리하면, 종래의 OSEK 운영체제의 스케줄링 알고리즘은 급하게 처리해야 하는 태스크(300)를 제시간에 처리하지 못하여 시스템에 치명적인 오류 발생을 초래하는 문제점이 있다.
본 발명은 상기한 종래의 문제점을 감안하여 제안된 것으로서, 그 목적은 자동차의 전자장치를 제어하기 위한 태스크의 마감시간에 근거하여 태스크 처리를 스케줄링하도록 한 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 제공함에 있다.
상기한 목적을 달성하기 위하여 본 발명에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은, 자동차의 전자장치를 제어하기 위해 설치되는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법으로서, (a) 마감시간을 갖는 태스크를 큐 우선순위를 갖는 복수의 대기 큐에 우선순위에 따라 분배하여 저장하는 단계; (b) 각각의 대기 큐에 저장된 태스크들의 마감시간에 근거하여 각 대기 큐 내에서 태스크들의 저장위치를 변경하는 단계; 및 (c) 대기 큐에 저장된 태스크를 저장순서대로 검출하는 단계를 포함한다.
(b) 단계에서는, 가장 이른 마감시간을 갖는 태스크를 가장 빨리 처리되는 저장위치로 변경한다.
(c) 단계에서는, 큐 우선순위가 가장 높은 대기 큐부터 태스크를 검출한다.
다르게는, 자동차의 전자장치를 제어하기 위해 설치되는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법으로서, (a) 마감시간을 갖는 태스크를 큐 우선순 위를 갖는 복수의 대기 큐에 우선순위에 따라 분배하여 저장하는 단계; (b) 대기 큐에 저장된 하나 이상의 태스크들의 마감시간을 비교하여 각각의 태스크별로 고유한 처리순번을 지정하는 단계; 및 (c) 처리순번에 근거하여 대기 큐에 저장된 태스크를 검출하는 단계를 포함한다.
(b) 단계에서는, 가장 이른 마감시간을 갖는 태스크에 가장 빠른 처리순번을 지정한다.
(c) 단계에서는, 가장 빠른 처리순번을 갖는 태스크부터 검출한다.
(c) 단계에서는, 큐 우선순위가 가장 높은 대기 큐부터 태스크를 검출한다.
(b-1) 각각의 대기 큐에 저장된 태스크들의 처리순번에 근거하여 각 대기 큐 내에서 태스크들의 저장위치를 변경하는 단계를 추가로 포함하고, (b-1) 단계에서는 가장 빠른 처리순번을 갖는 태스크를 가장 빨리 처리되는 저장위치로 변경한다.
(a) 단계에서는, 태스크의 우선순위에 해당하는 큐 우선순위를 갖는 대기 큐에 태스크를 저장한다.
(a) 단계에서는, 태스크를 4개의 대기 큐에 분배하여 저장한다.
본 발명에 의하면, 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은 이른 마감시간을 갖는 태스크를 먼저 처리하도록 함으로써, 태스크 처리의 실시간성을 보장할 수 있다.
또한, 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은 태스크의 마감 시간에 근거하여 태스크의 우선순위를 변경함으로써, 태스크를 제시간에 처리하지 못하여 발생하는 시스템의 치명적인 오류를 방지할 수 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 2는 본 발명의 실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 장치의 구성을 설명하기 위한 도면이다.
도 2에 도시된 바와 같이, 자동차용 임베디드 운영체제의 태스크 스케줄링 장치는 4개의 대기 큐(100), 스케줄러(200)를 포함한다.
대기 큐(100)에는 각각의 대기 큐(100) 별로 고유한 큐 우선순위가 설정된다. 즉, 제1대기 큐(100a)에는 큐 우선순위로 '0', 제2대기 큐(100b)에는 큐 우선순위로 '1', 제3대기 큐(100c)에는 큐 우선순위로 '2', 제4대기 큐(100d)에는 큐 우선순위로 '3'이 각각 설정된다. 여기서, 대기 큐(100)에 설정되는 큐 우선순위로 는 각각의 대기 큐(100)에 저장되는 태스크(300)의 처리에 대한 우선순위로, 큐 우선순위가 높은 대기 큐(100)에 저장된 태스크(300)가 먼저 처리된다.
대기 큐(100)는 설정된 큐 우선순위에 해당하는 태스크(300)를 저장한다. 즉, 대기 큐(100)는 스케줄러(200)를 통해 입력되는 태스크(300)에 포함된 우선순위와 각각의 대기 큐(100)에 설정된 큐 우선순위를 비교하여 대기 큐(100)의 큐 우선순위에 해당하는(또는, 동일한) 우선순위를 갖는 태스크(300)를 저장한다. 이때, 대기 큐(100)에 저장되는 태스크(300)는 우선순위와 함께 태스크(300)의 마감시간을 포함한다. 태스크(300)의 마감시간은 각각의 태스크(300)가 처리되어야 하는 처리시간에 대한 기준으로 마감시간이 초과하지 않는 시간 내에 해당 태스크(300)를 처리하기 위한 정보이다.
스케줄러(200)는 마감시간을 갖는 태스크(300)를 복수의 대기 큐(100)에 분배하여 저장한다. 즉, 스케줄러(200)는 모듈로부터 마감시간을 갖는 태스크(300)가 들어오게 되면 그 태스크(300)에 우선순위를 부여하고 우선순위에 해당하는 대기 큐(100)에 저장한다. 여기서, 태스크(300)에 부여되어 우선순위는 사용자(또는, 프로그래머)에 의해 설정된다. 태스크(300)의 우선순위는 고정 우선순위 알고리즘을 사용하기 때문에 사용자(또는, 프로그래머)가 우선순위를 수정하기 전까지는 태스크(300)에 부여된 우선순위는 변경되지 않는다.
스케줄러(200)는 각각의 대기 큐(100)에 저장된 태스크(300)들의 마감시간에 근거하여 태스크(300)들의 저장위치를 변경한다. 즉, 스케줄러(200)는 가장 높은 우선순위를 갖는 대기 큐(100)로부터 가장 낮은 우선순위를 갖는 대기 큐(100)까지 순차적으로 태스크(300)들의 마감시간에 근거하여 태스크(300)들의 저장위치를 변경한다. 여기서, 스케줄러(200)는 가장 이른 마감시간을 갖는 태스크(300)에 가장 빨리 처리되는 저장위치로 변경한다. 이처럼, 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은 태스크(300)의 마감시간에 근거하여 태스크(300)의 우선순위를 변경함으로써, 태스크(300)를 제시간에 처리하지 못하여 발생하는 시스템의 치명적인 오류를 방지할 수 있다.
스케줄러(200)는 대기 큐(100)에 저장된 태스크(300)를 검출하여 중앙처리장치(400)로 전송한다. 즉, 스케줄러(200)는 태스크(300)의 저장위치가 변경되어 저장된 태스크(300)를 저장된 순서대로 검출하여 중앙처리장치(400)로 전송한다. 여기서, 스케줄러(200)는 큐 우선순위가 가장 높은 대기 큐(100)에 저장된 태스크(300)들을 우선적으로 검출한다.
스케줄러(200)는 대기 큐(100)에 저장된 태스크(300)들 중에서 마감시간이 가장 이른 태스크(300)를 검출하여 중앙처리장치(400)로 전송할 수도 있다. 즉, 스케줄러(200)는 마감시간이 임박한 태스크(300)를 우선 처리하기 위해서 대기 큐(100)에 저장된 태스크(300)들 중에서 마감시간이 가장 이른 태스크(300)를 검출하여 중앙처리장치(400)로 전송한다. 여기서, 스케줄러(200)는 큐 우선순위가 가장 높은 대기 큐(100)에 저장된 태스크(300)들을 우선적으로 검출한다. 이처럼, 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은 이른 마감시간을 갖는 태스크(300)를 먼저 처리하도록 함으로써, 태스크(300) 처리의 실시간성을 보장할 수 있다.
스케줄러(200)는 가장 이른 마감시간을 갖는 태스크(300)에 가장 빠른 처리순번을 지정하고, 가장 빠른 처리순번을 갖는 태스크(300)부터 검출하여 중앙처리장치(400)로 전송할 수도 있다. 즉, 스케줄러(200)는 각각의 대기 큐(100)에 저장된 태스크(300)들의 마감시간을 비교하여 마감시간이 이른 순서대로 처리순번을 지정하고, 가장 빠른 처리순번을 갖는 태스크(300)를 검출한다. 여기서, 스케줄러(200)는 큐 우선순위가 가장 높은 대기 큐(100)에 저장된 태스크(300)들을 우선적으로 검출한다.
도 3은 본 발명의 제1실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 흐름도이고, 도 4 내지 도 6은 제1실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 도면이다.
먼저, 운전자가 자동차에 장착된 전자 장치를 제어하기 제어신호를 발생하면, 해당 전자 장치를 제어하기 위한 모듈의 요청에 의해 생성된 태스크(300)가 임베디드 운영체제의 스케줄러(200)로 전송된다.
태스크(300)를 수신하면(S100; YES), 스케줄러(200)는 태스크(300)에 포함된 우선순위를 검출한다(S110). 이때, 태스크(300)에는 4개의 대기 큐(100; 예컨대, 제1대기 큐(100a), 제2대기 큐(100b), 제3대기 큐(100c), 제4대기 큐(100d)) 중에 어느 하나에 해당하는 우선순위 및 해당 태스크(300)의 마감시간을 포함하고 있다. 예를 들어, 도 4에 도시된 바와 같이, 4개의 대기 큐(100)가 각각 '0' 내지 '3'의 큐 우선순위를 갖는 경우, 태스크(300)는 '0' 내지 '3' 중에 하나의 우선순위를 포함한다. 스케줄러(200)는 수신한 태스크(300)에 포함된 우선순위를 검출한다.
다음으로, 스케줄러(200)는 검출한 태스크(300)의 우선순위와 각각의 대기 큐(100)의 큐 우선순위에 근거하여 태스크(300)를 저장할 대기 큐(100)를 설정한다(S120). 즉, 스케줄러(200)는 검출한 태스크(300)의 우선순위와 동일한 큐 우선순위를 갖는 대기 큐(100)를 해당 태스크(300)를 저장할 대기 큐(100)로 설정한다. 예를 들면, 스케줄러(200)는 태스크(300)로부터 검출한 우선순위가 '0'인 경우에 큐 우선순위로 '0'을 갖는 대기 큐(100; 예를 들면, 도 4의 제1대기 큐(100a))를 해당 태스크(300)를 저장할 대기 큐(100)로 설정한다.
다음으로, 스케줄러(200)는 수신한 태스크(300)를 S120단계에서 설정된 대기 큐(100)에 저장한다(S130). 대기 큐(100)는 스케줄러(200)로부터의 태스크(300)를 저장되어 있는 태스크(300)들의 다음 순번에 위치하도록 저장한다. 예를 들면, 도 5에 도시된 바와 같이, 제1대기 큐(100a)에 3개의 태스크(300; 예컨대, 태스크1(300a), 태스크2(300b), 태스크3(300c))가 저장되어 있는 경우에, 제1대기 큐(100a)는 스케줄러(200)로부터의 태스크(300; 예컨대, 태스크4(300d))를 4번째 처리에 해당하는 저장위치에 저장한다. 여기서, 대기 큐(100)의 '3' 번 블럭은 최우선 처리에 해당하는 저장위치이고, '0' 번 블럭은 최종 처리에 해당하는 저장위치이다.
태스크(300)의 저장이 완료되면, 스케줄러(200)는 모듈로부터의 태스크(300)를 저장한 대기 큐(100)에 저장된 태스크(300)들의 마감시간에 근거하여 태스 크(300)들의 저장위치를 변경한다(S140). 즉, 스케줄러(200)는 각각의 태스크(300)에 포함된 마감시간 순서로 태스크(300)의 저장위치를 변경한다. 여기서, 스케줄러(200)는 가장 이른 마감시간을 갖는 태스크(300)를 최우선 처리에 해당하는 저장위치에 저장하고, 가장 늦은 마감시간을 갖는 태스크(300)를 최종 처리에 해당하는 저장위치에 저장한다. 예를 들면, 도 6의 (a)에 도시된 바와 같이, 각각의 마감시간을 포함하는 4개의 태스크(300)가 있다. 제1대기 큐(100a)의 블럭에 도 6의 (b)에 도시된 바와 같이, 태스크(300; 예컨대, 태스크1(300a), 태스크2(300b), 태스크3(300c), 태스크4(300d))가 각각 저장되어 있다. 여기서, 대기 큐(100)의 '3' 번 블럭이 최우선 처리에 해당하는 저장위치이고 '0' 번 블럭이 최종 처리에 해당하는 저장위치이다. 이 경우에, 스케줄러(200)는 마감시간이 가장 이른 태스크1(300a)을 제1대기 큐(100a)의 '3' 번 블럭에, 두 번째로 이른 마감시간을 갖는 태스크3(300c)을 제1대기 큐(100a)의 '2' 번 블럭에, 세 번째 이른 마감시간을 갖는 태스크4(300d)를 제1대기 큐(100a)의 '1' 번 블럭에, 가장 늦은 마감시간을 갖는 태스크2(300b)를 제1대기 큐(100a)의 '0' 번 블럭에 저장한다. 그에 따라, 제1대기 큐(100a)에 저장된 태스크(300)들의 저장위치는 도 6의 (c)에 도시된 바와 같다. 이처럼, 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은 태스크(300)의 마감시간에 근거하여 태스크(300)의 우선순위를 변경함으로써, 태스크(300)를 제시간에 처리하지 못하여 발생하는 시스템의 치명적인 오류를 방지할 수 있다.
태스크(300)의 저장위치 변경이 완료되면, 스케줄러(200)는 대기 큐(100)에 저장된 태스크(300)를 순차적으로 검출하여 중앙처리장치(400)로 전송한다(S150). 즉, 스케줄러(200)는 최우선 처리위치에 해당하는 저장위치에 저장된 태스크(300)부터 순차적으로 검출하여 중앙처리장치(400)로 전송한다. 예를 들어, 도 6의 (c)에 도시된 바와 같이, 대기 큐(100)에 4개의 태스크(300)가 저장되어 있는 경우에, 스케줄러(200)는 처리 우선순위에 따라 '3' 번 블럭, '2' 번 블럭, '1' 번 블럭, '0' 번 블럭에 저장된 태스크(300)를 순차적으로 검출하여 중앙처리장치(400)로 전송한다. 여기서, 스케줄러(200)는 태스크(300)와 태스크(300) 사이에 먼저 검출된 태스크(300)의 처리시간이 지난 후에 다음 위치의 태스크(300)를 검출한다.
이후에, 스케줄러(200)는 새로운 태스크(300)가 전송되면 상술한 S100단계 내지 S150단계를 수행하여 태스크(300)의 처리순서를 스케줄링한다. 이처럼, 제1실시예에 따르면 태스크가 대기 큐에 저장된 후에 태스크의 마감시간에 따라 저장위치를 변경함으로써, 태스크의 마감시간에 따른 태스크의 검출시에 처리속도를 향상시킬 수 있는 효과가 있다.
도 7은 본 발명의 제2실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 흐름도이고, 도 8은 본 발명의 제2실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 도면이다.
먼저, 운전자가 자동차에 장착된 전자 장치를 제어하기 제어신호를 발생하면, 해당 전자 장치를 제어하기 위한 모듈의 요청에 의해 생성된 태스크(300)가 임 베디드 운영체제의 스케줄러(200)로 전송된다.
태스크(300)를 수신하면(S200; YES), 스케줄러(200)는 태스크(300)에 포함된 우선순위를 검출한다(S210). 이때, 태스크(300)에는 4개의 대기 큐(100) 중에 어느 하나에 해당하는 우선순위 및 해당 태스크(300)의 마감시간을 포함하고 있다.
다음으로, 스케줄러(200)는 검출한 태스크(300)의 우선순위와 각각의 대기 큐(100)의 큐 우선순위에 근거하여 태스크(300)를 저장할 대기 큐(100)를 설정한다(S220). 즉, 스케줄러(200)는 검출한 태스크(300)의 우선순위와 동일한 큐 우선순위를 갖는 대기 큐(100)를 해당 태스크(300)를 저장할 대기 큐(100)로 설정한다. 예를 들면, 스케줄러(200)는 태스크(300)로부터 검출한 우선순위가 '0'인 경우에 큐 우선순위로 '0'을 갖는 대기 큐(100)를 해당 태스크(300)를 저장할 대기 큐(100)로 설정한다.
다음으로, 스케줄러(200)는 설정한 대기 큐(100)에 수신한 태스크(300)를 저장한다(S230). 대기 큐(100)는 스케줄러(200)로부터의 태스크(300)를 저장되어 있는 태스크(300)들의 다음 순번에 위치하도록 저장한다. 예를 들면, 3개의 태스크(300)가 저장되어 있는 경우에, 대기 큐(100)는 4번째 처리에 해당하는 저장위치에 스케줄러(200)로부터의 태스크(300)를 저장한다.
태스크(300)의 저장이 완료되면, 스케줄러(200)는 모듈로부터의 태스크(300)를 저장한 대기 큐(100)에 저장된 태스크(300)들의 마감시간에 근거하여 태스크(300)들의 처리순번을 설정한다(S240). 즉, 스케줄러(200)는 각각의 태스크(300)에 포함된 마감시간 순서로 태스크(300)의 처리순번을 설정한다. 여기서, 스케줄 러(200)는 가장 이른 마감시간을 갖는 태스크(300)에 최우선 처리순번을 설정하고, 가장 늦은 마감시간을 갖는 태스크(300)에 최종 처리순번을 설정한다. 예를 들면, 도 8의 (a)에 도시된 바와 같이, 제1대기 큐(100a)에 4개의 태스크(300)가 저장되어 있다. 4개의 태스크(300)는 도 8의 (b)에 도시된 바와 같이, 각각의 마감시간을 포함한다. 이 경우, 스케줄러(200)는 마감시간이 가장 이른 태스크1(300a)에 처리순번 '1'을, 두 번째로 이른 마감시간을 갖는 태스크3(300c)에 처리순번 '2'를, 세 번째 이른 마감시간을 갖는 태스크4(300d)에 처리순번 '3'을, 가장 늦은 마감시간을 갖는 태스크2(300b)를 처리순번 '4'를 각각 설정한다. 그에 따라, 대기 큐(100)에 저장된 태스크(300)들의 처리순번은 도 8의 (c)에 도시된 바와 같다.
태스크(300)의 처리순번 설정이 완료되면, 스케줄러(200)는 처리순번에 따라 대기 큐(100)에 저장된 태스크(300)를 순차적으로 검출하여 중앙처리장치(400)로 전송한다(S250). 즉, 스케줄러(200)는 최우선 처리에 해당하는 처리순번이 설정된 태스크(300)부터 순차적으로 검출하여 중앙처리장치(400)로 전송한다. 예를 들어, 도 8의 (b)에 도시된 바와 같이, 대기 큐(100)에 4개의 태스크(300)가 저장되어 있는 경우에, 스케줄러(200)는 처리 우선순위에 따라 '0' 번 블럭, '2' 번 블럭, '3' 번 블럭, '1' 번 블럭에 저장된 태스크(300)를 순차적으로 검출하여 중앙처리장치(400)로 전송한다. 여기서, 스케줄러(200)는 태스크(300)와 태스크(300) 사이에 먼저, 검출된 태스크(300)의 처리시간이 지난 후에 다음 위치의 태스크(300)를 검출한다. 이처럼, 자동차용 임베디드 운영체제의 태스크 스케줄링 방법은 이른 마감시간을 갖는 태스크(300)를 먼저 처리하도록 함으로써, 태스크(300) 처리의 실시간 성을 보장할 수 있다.
이후에, 스케줄러(200)는 새로운 태스크(300)가 전송되면 상술한 S200단계 내지 S250단계를 수행하여 태스크(300)의 처리순서를 스케줄링한다. 이처럼, 본 발명의 제2실시예에 따르면 태스크 저장위치의 변경없이 태스크의 마감시간에 따라 처리순번을 지정함으로써, 본 발명의 제1실시예에서 태스크의 저장위치 변경에 따른 처리시간을 최소화하여 태스크 처리속도를 향상시킬 수 있는 효과가 있다.
이상에서 본 발명에 따른 바람직한 실시예에 대해 설명하였으나, 다양한 형태로 변형이 가능하며, 본 기술분야에서 통상의 지식을 가진자라면 본 발명의 특허청구범위를 벗어남이 없이 다양한 변형예 및 수정예를 실시할 수 있을 것으로 이해된다.
도 1은 종래의 자동차용 임베디드 운영체제를 설명하기 위한 도면.
도 2는 본 발명의 실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 장치의 구성을 설명하기 위한 도면.
도 3은 본 발명의 제1실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 흐름도.
도 4 내지 도 6은 제1실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 도면.
도 7은 본 발명의 제2실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 흐름도.
도 8은 제2실시예에 따른 자동차용 임베디드 운영체제의 태스크 스케줄링 방법을 설명하기 위한 도면.
<도면의 주요부분에 대한 부호의 설명>
100: 대기 큐 100a: 제1대기 큐
100b: 제2대기 큐 100c: 제3대기 큐
100d: 제4대기 큐 200: 스케줄러
300: 태스크 300a: 태스크1
300b: 태스크2 300c: 태스크3
300d: 태스크4 400: 중앙처리장치

Claims (10)

  1. 자동차의 전자장치를 제어하기 위해 설치되는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법으로서,
    (a) 마감시간을 갖는 태스크를 큐 우선순위를 갖는 복수의 대기 큐에 우선순위에 따라 분배하여 저장하는 단계;
    (b) 각각의 대기 큐에 저장된 태스크들의 마감시간에 근거하여 각 대기 큐 내에서 상기 태스크들의 저장위치를 변경하는 단계; 및
    (c) 상기 대기 큐에 저장된 태스크를 저장순서대로 검출하는 단계를 포함하되,
    상기 (a) 단계에서는 상기 태스크의 우선순위에 해당하는 큐 우선순위를 갖는 대기 큐에 상기 태스크를 저장하고, 상기 (c) 단계에서는 가장 높은 큐 우선순위를 갖는 대기 큐에 저장된 태스크들 중에서 가장 이른 마감시간을 갖는 태스크를 검출하는 것을 특징으로 하는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법.
  2. 청구항 1에 있어서,
    상기 (b) 단계에서는,
    가장 이른 마감시간을 갖는 태스크를 가장 빨리 처리되는 저장위치로 변경하는 것을 특징으로 하는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법.
  3. 삭제
  4. 자동차의 전자장치를 제어하기 위해 설치되는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법으로서,
    (a) 마감시간을 갖는 태스크를 큐 우선순위를 갖는 복수의 대기 큐에 우선순위에 따라 분배하여 저장하는 단계;
    (b) 대기 큐에 저장된 하나 이상의 태스크들의 마감시간을 비교하여 각각의 태스크별로 고유한 처리순번을 지정하는 단계; 및
    (c) 상기 처리순번에 근거하여 대기 큐에 저장된 태스크를 검출하는 단계를 포함하되,
    상기 (a) 단계에서는 상기 태스크의 우선순위에 해당하는 큐 우선순위를 갖는 대기 큐에 상기 태스크를 저장하고, 상기 (c) 단계에서는 가장 높은 큐 우선순위를 갖는 대기 큐에 저장된 태스크들 중에서 가장 빠른 처리순번을 갖는 태스크를 검출하는 것을 특징으로 하는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법.
  5. 청구항 4에 있어서,
    상기 (b) 단계에서는,
    가장 이른 마감시간을 갖는 태스크에 가장 빠른 처리순번을 지정하는 것을 특징으로 하는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법.
  6. 삭제
  7. 삭제
  8. 청구항 4에 있어서,
    (b-1) 각각의 대기 큐에 저장된 태스크들의 처리순번에 근거하여 각 대기 큐 내에서 상기 태스크들의 저장위치를 변경하는 단계를 추가로 포함하고,
    상기 (b-1) 단계에서는 가장 빠른 처리순번을 갖는 태스크를 가장 빨리 처리되는 저장위치로 변경하는 것을 특징으로 하는 자동차용 임베디드 운영체제의 태스크 스케줄링 방법.
  9. 삭제
  10. 삭제
KR1020080118865A 2008-11-27 2008-11-27 자동차용 임베디드 운영체제의 태스크 스케줄링 방법 KR101073428B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080118865A KR101073428B1 (ko) 2008-11-27 2008-11-27 자동차용 임베디드 운영체제의 태스크 스케줄링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080118865A KR101073428B1 (ko) 2008-11-27 2008-11-27 자동차용 임베디드 운영체제의 태스크 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20100060312A KR20100060312A (ko) 2010-06-07
KR101073428B1 true KR101073428B1 (ko) 2011-10-17

Family

ID=42361245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080118865A KR101073428B1 (ko) 2008-11-27 2008-11-27 자동차용 임베디드 운영체제의 태스크 스케줄링 방법

Country Status (1)

Country Link
KR (1) KR101073428B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101827289B1 (ko) 2011-11-08 2018-03-23 한국전자통신연구원 실시간 운영체제에서 태스크 스케줄링 방법
KR101725408B1 (ko) * 2012-02-17 2017-04-11 한국전자통신연구원 실시간 운영체제의 태스크 스케줄링 방법
KR101638136B1 (ko) 2015-05-14 2016-07-08 주식회사 티맥스 소프트 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치
KR101794568B1 (ko) 2016-03-29 2017-12-01 현대오트론 주식회사 오토사 운영체제의 태스크 분배 방법 및 그 장치
KR102418660B1 (ko) * 2018-03-26 2022-07-08 현대모비스 주식회사 차량의 혼잡 제어를 위한 임베디드 시스템, 차량의 혼잡 제어 방법
US11822967B2 (en) 2019-08-20 2023-11-21 Research & Business Foundation Sungkyunkwan University Task distribution method for minimizing preemption between tasks and apparatus for performing the same
KR102222939B1 (ko) * 2019-08-20 2021-03-04 성균관대학교산학협력단 태스크의 러너블 그룹 단위 분할을 통한 선점 최소화 방법 및 이를 위한 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100524763B1 (ko) * 2003-07-23 2005-10-31 엘지전자 주식회사 개선된 edf 스케쥴링 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100524763B1 (ko) * 2003-07-23 2005-10-31 엘지전자 주식회사 개선된 edf 스케쥴링 방법

Also Published As

Publication number Publication date
KR20100060312A (ko) 2010-06-07

Similar Documents

Publication Publication Date Title
KR101073428B1 (ko) 자동차용 임베디드 운영체제의 태스크 스케줄링 방법
US8856196B2 (en) System and method for transferring tasks in a multi-core processor based on trial execution and core node
JP4410661B2 (ja) 分散制御システム
KR101483994B1 (ko) 다중 센서 기반의 차량용 정보 처리 방법 및 장치
US8595746B2 (en) Method and apparatus for scheduling tasks to control hardware devices
US20060010446A1 (en) Method and system for concurrent execution of multiple kernels
CN108701055B (zh) 车辆控制装置和车辆系统
US20110022809A1 (en) Consolidated electronic control unit and relay program implemented in the same
JP4241462B2 (ja) 制御ユニットおよびマイクロコンピュータ
CN115048206B (zh) 资源调度方法及服务器
CN116430738B (zh) 一种混合关键系统的自适应动态调度方法
CN112579271A (zh) 用于非实时操作系统的实时任务调度方法、模块、终端和存储介质
US20150205635A1 (en) Method and lightweight mechanism for mixed-critical applications
JP2006180205A (ja) 車載送信装置およびプログラム。
US7484214B2 (en) Real time control system
JP2006273261A (ja) 自動車用制御ユニット
CN115248724A (zh) 异构多核系统的实时调度
Mishra et al. Dynamic task scheduling on multicore automotive ECUs
JP2004220326A (ja) 制御ソフトウエア構造およびこの構造を用いた制御装置
JPWO2018211865A1 (ja) 車両制御装置
CN111930488B (zh) 一种操作系统任务调度的优先级继承方法及系统
CN115589434B (zh) 请求处理方法、面向服务系统、ecu、车辆及存储介质
JP2000259430A (ja) コンピュータシステムの処理方法
JP7409567B2 (ja) 自動車用コンピュータの制御方法、及び車両用電子制御装置
US10251194B2 (en) Efficient scheduling in asynchronous contention-based system

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: 20141105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160405

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161107

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170921

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 9