KR20220085366A - 차량용 제어기 및 그것의 운영체제 스케쥴링 방법 - Google Patents

차량용 제어기 및 그것의 운영체제 스케쥴링 방법 Download PDF

Info

Publication number
KR20220085366A
KR20220085366A KR1020200175370A KR20200175370A KR20220085366A KR 20220085366 A KR20220085366 A KR 20220085366A KR 1020200175370 A KR1020200175370 A KR 1020200175370A KR 20200175370 A KR20200175370 A KR 20200175370A KR 20220085366 A KR20220085366 A KR 20220085366A
Authority
KR
South Korea
Prior art keywords
thread
task
core
flag
period
Prior art date
Application number
KR1020200175370A
Other languages
English (en)
Other versions
KR102485288B1 (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 KR1020200175370A priority Critical patent/KR102485288B1/ko
Priority to US17/533,995 priority patent/US20220188159A1/en
Priority to CN202111446948.6A priority patent/CN114637598A/zh
Publication of KR20220085366A publication Critical patent/KR20220085366A/ko
Application granted granted Critical
Publication of KR102485288B1 publication Critical patent/KR102485288B1/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/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
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Abstract

본 발명에 따른 차량 제어기의 운영체제 스케쥴링 방법은, 차량용 어플리케이션에서 요청된 제 1 태스크에 따른 러너블 기능을 판별하는 단계, 상기 제 1 코어에서 제 1 주기 동안에 상기 판별된 러너블 기능에 따라 제 1 쓰레드 및 제 2 쓰레드 중 어느 하나로 동작함으로써 상기 제 1 태스크를 수행하는 단계, 및 상기 제 1 코어에서 상기 제 2 쓰레드로 동작할 때, 상기 제 1 주기 동안에 상기 제 1 코어에 다른 제 2 코어에서 상기 제 1 태스크에 대응하는 제 1 백업 태스크를 수행하는 단계를 포함할 수 있다.

Description

차량용 제어기 및 그것의 운영체제 스케쥴링 방법{CONTROLLER FOR VEHICLE AND OPERATING SYSTEM SCHEDULING METHOD THEREOF}
본 발명은 차량용 제어기 및 그것의 운영체제 스케쥴링 방법에 관한 것이다.
일반적으로, 지능형 ECU(Electronic Control Unit)와 기술 드라이버의 환경은 많은 컴퓨팅 성능을 필요로 한다. 전력 및 비용 효율성은 중요한 부분이지만, 안전 영역의 HPC(High Performance Computing)는 다양한 난제에 부딪힌다. 이것을 해결하기 위해서 ECU가 활용하지 못하는 기술을 채택해야 하고, 혁신적인 기술을 최대한 활용할 수 있어야 한다. AUTOSAR(AUTomotive Open System ARchitecture) 적응형 플랫폼(Adaptive Platform)은 리소스 및 통신을 동적으로 관리하고, 소프트웨어 개발 및 통합을 위한 노력을 줄이면서 어플리케이션 프로그램의 배포를 하고, 시스템 통합자가 신중하게 통합하여 버그의 위험을 줄이고 안전을 확보하게 한다. 어플리케이션 프로그램의 동적 동작은 어플리케이션 프로그램 매니페스트에 명시된 제약 조건에 따라 제한되고 있다. 실행되는 동안 리소스 및 통신 경로의 동적 할당은 구성된 범위 내에서 정의한 방식으로만 가능하다. AUTOSAR 적응형 플랫폼의 구현은 소프트웨어 구성 상에서 동적 기능을, 프로세스의 사전 결정, 시동 단계로의 동적 메모리 제한, 우선 순위 기반 스케줄링 외에도 스케줄링 정책, CPU(Central Processing Unit)에 대한 프로세스의 고정 할당, 기존 파일에 대한 액세스, AP(Adaptive Platform) API(Application Programming Interface) 사용 제한, 인증된 코드 실행으로 제한하고 있다.
한국등록특허 제10-1439355호
본 발명의 목적은 오동작을 줄이고 신뢰성을 높이는 차량용 제어기 및 그것의 운영체제 스케쥴링 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 차량 제어기의 운영체제 스케쥴링 방법은, 차량용 어플리케이션에서 요청된 제 1 태스크에 따른 러너블 기능을 판별하는 단계; 상기 제 1 코어에서 제 1 주기 동안에 상기 판별된 러너블 기능에 따라 제 1 쓰레드 및 제 2 쓰레드 중 어느 하나로 동작함으로써 상기 제 1 태스크를 수행하는 단계; 및 상기 제 1 코어에서 상기 제 2 쓰레드로 동작할 때, 상기 제 1 주기 동안에 상기 제 1 코어에 다른 제 2 코어에서 상기 제 1 태스크에 대응하는 제 1 백업 태스크를 수행하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 제 1 쓰레드는 쓰레드의 시작 시간을 저장하는 스타트-플래그 및 상기 쓰레드의 종료 시간을 저장하는 엔드-플래그를 포함할 수 있다.
실시 예에 있어서, 상기 제 2 쓰레드는 쓰레드 플래그 매니저, 쓰레드 메인, 쓰레드 백업, 태스크 스케쥴러 정보를 포함하고, 상기 쓰레드 메인은 쓰레드의 시작 시간을 저장하는 스타트-플래그, 상기 쓰레드의 종료 시간을 저장하는 엔드-플래그, 및 상기 쓰레드 플래그 매니저로부터 맵핑된 러너블 기능을 수행하는 기능 포인터를 포함하고, 상기 쓰레드 백업은 상기 스타트-플래그 및 상기 엔드-플래그를 포함할 수 있다.
실시 예에 있어서, 상기 쓰레드 플래그 매니저는, 상기 쓰레드에 존재하는 상기 스타트-플래그 및 상기 엔드-플래그를 모니터링하고, 상기 태스크 스케쥴러 정보, 상기 스타트-플래그, 및 상기 엔드-플래그가 사전에 결정된 시간 내에 업데이트 되지 않을 때 상기 러너블 포인터를 이용하여 상기 러너블 기능을 수행하는 것을 특징으로 한다.
실시 예에 있어서, 상기 러너블 기능을 쓰레드 함수로 생성할 때, 상기 쓰레드 플래그 매니저는 상기 쓰레드 메인과 상기 쓰레드 백업을 맵핑하는 것을 특징으로 한다.
실시 예에 있어서, 상기 쓰레드 메인에서 쓰레드 주기를 감시하고, 상기 쓰레드 메인의 쓰레드 주기가 예측한 값보다 초과될 때, 상기 쓰레드 백업의 쓰레드가 수행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 쓰레드 백업의 쓰레드 주기가 상기 예측한 값보다 초과될 때, 사용자에게 알람을 발생하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 운영체제는 AUTOSAR 적응형 플랫폼에 따라 구현되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 차량용 제어기는, 외부 장치와 통신을 수행하는 통신 장치; 운영체제를 저장하는 메모리; 및 상기 통신 장치 및 상기 메모리를 제어하고, 상기 운영체제를 구동하는 마이크로콘트롤유닛을 포함하고, 상기 운영체제는, 차량용 어플리케이션에서 요청된 제 1 태스크에 따른 러너블 기능을 판별하고; 상기 제 1 코어에서 제 1 주기 동안에 상기 판별된 러너블 기능에 따라 제 1 쓰레드 및 제 2 쓰레드 중 어느 하나로 동작함으로써 상기 제 1 태스크를 수행하고; 및 상기 제 1 코어에서 상기 제 2 쓰레드로 동작할 때, 상기 제 1 주기 동안에 상기 제 1 코어에 다른 제 2 코어에서 상기 제 1 태스크에 대응하는 제 1 백업 태스크를 수행하는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1 주기 이후에 제 2 주기 동안에, 상기 운영체제는 상기 차량용 어플리케이션에서 요청된 제 2 태스크를 상기 제 2 코어에서 수행하는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 2 태스크는 상기 제 2 쓰레드로 동작하여 수행되고, 상기 운영체제는 상기 제 2 주기 동안에 상기 제 3 코어에서 상기 제 2 태스크의 백업 태스크를 수행하고, 상기 제 3 코어는 상기 제 1 코어 및 상기 제 2 코어와 다른 것을 특징으로 한다.
실시 예에 있어서, 상기 제 2 주기 이후에 제 3 주기 동안에, 상기 운영체제는 상기 차량용 어플리케이션에서 요청된 제 3 태스크를 상기 제 2 코어에서 수행하는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 3 태스크는 상기 제 2 쓰레드로 동작하여 수행되고, 상기 운영체제는 상기 제 3 주기 동안에 상기 제 3 코어에서 상기 제 3 태스크의 백업 태스크를 수행하고, 상기 제 3 코어는 상기 제 1 코어 및 상기 제 2 코어와 다른 것을 특징으로 한다.
본 발명의 실시 예에 따른 차량용 제어기 및 그것의 운영체제 스케쥴링 방법은, 별도로 백업 태스크를 수행함으로써 태스크 수행의 정확도를 높일 수 있다.
또한, 본 발명의 실시 예에 따른 차량용 제어기 및 그것의 운영체제의 스케쥴링 방법은, 안정성을 확보하여 오동작을 줄이고, 신뢰성을 높은 기능을 수행할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 일반적인 AUTOSAR 적응형 플랫폼의 아키텍쳐를 보여주는 도면이다.
도 2는 SOME/IP 통신을 통한 Proxy-Skeleton 서비스 지향 통신을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 AUTOSAR 적응형 플랫폼에서 실시간 운영체제의 스케쥴링을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 AUTOSAR 적응형 플랫폼의 동작을 설명하는 도면이다.
도 5는 본 발명의 실시 예에 따른 실시간 운영체제(100)의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 6은 본 발명의 실시 예에 따른 차량용 제어기(1000)를 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 일반적인 AUTOSAR 적응형 플랫폼의 아키텍쳐를 보여주는 도면이다. 도 1을 참조하면, 적응형 플랫폼은 기능 클러스터들과 기본 서비스를 제공한다.
BSW(Basic Software)에 대한 인터페이스를 통해 형식을 갖추어 정의된 SWC(Software Component)는 AUTOSAR 아키텍처를 구성 요소이다. BSW 모듈은 버스 통신, 메모리 관리, IO 접근, 시스템 및 진단 서비스와 같은 기본적인 표준 서비스를 제공한다. AUTOSAR의 다른 구성요소는 RTE(Runtime Environment)인데, 이는 SWC 간 연결 또는 SWC에서 BSW로의 연결을 제어한다. AUTOSAR가 정의하는 VFB(Virtual Functional Bus)는 SWC 간의 통신과 BSW 서비스의 이용을 위한 개념적인 기초를 제공한다. SWC의 모든 통신은 VFB에 기초해 있으며, 따라서 SWC는 ECU 하드웨어와 독립적이다. 이를 통해 SWC는 프로젝트와 플랫폼에서 재사용될 수 있다. VFB는 각 ECU를 위해 적절하게 설정된 BSW가 연결되어 특수 설정된 RTE를 공급함으로써 실행될 수 있다.
적응형 어플리케이션들(Adaptive Applications; AA)은 ARA(AUTOSAR Runtime for Adaptive Application) 기반으로 동작한다. ARA는 Foundation 또는 Services에 속하는 기능 클러스터가 제공하는 API(Application Programming Interface)로 구성한다. Foundation은 AP(Adaptive Platform) 및 Service의 기본 기능을 서비스한다. 모든 적응형 어플리케이션들은 다른 적응형 어플리케이션들에 서비스를 제공할 수 있다.
적응형 플랫폼은 더 나은 서비스를 제공하기 위해서 기능적 클러스터를 포함한다. 기능 클러스터들은 시간 관리 클러스터, OS 클러스터, 실행 관리 클러스터, 지속성 클러스터, 플랫폼 헬스 관리 클러스터, 로깅 및 트레이싱 클러스터, 하드웨어 가속 클러스터, 통신 관리 클러스터를 포함한다. 기능 클러스터들은 각 API(Application Programming Interface)를 통해 다른 애플리케이션과 통신한다. API 구현에 대한 정의만 되어 있기 때문에, 기존 클래식 플랫폼을 구성하는 BSW(Basic Software) 스택 구현에 비교하여 적응형 플랫폼의 기능 클러스터의 구현 자유도가 훨씬 높다.
기본 서비스는 SW(Software) 구성 관리 서비스, 보안 관리 서비스, 및 진단 서비스를 포함한다. 기본 서비스는 미들웨어(middleware) 성격의 ara::com(AUTOSAR Runtime for Adaptive Applications)을 통해 호출할 수 있다.
적응형 플랫폼은 머신으로 실행되는 하드웨어를 고려한다. 하드웨어가 다양한 기술을 사용하여 가상화되고 있다. 하드웨어는 하나 이상의 머신을 포함한다. AP 인스턴스는 오직 한 개 만 실행된다. 이 하드웨어 상에서 머신들을 호스팅하는 단일 칩/다수의 칩을 갖는다.
도 2는 SOME/IP 통신을 통한 Proxy-Skeleton 서비스 지향 통신을 예시적으로 보여주는 도면이다. AUTOSAR 적응형 플랫폼과 클래식 플랫폼의 가장 큰 차이점은 통신 방식에 있다. 대부분의 기존 클래식 플랫폼은 전통적인 신호 지향(Signal-Oriented) 통신에 기초한다. 반면에 적응형 플랫폼은 서비스 지향 통신(Service-Oriented Communication; SOC)에 기반을 두고 있다. 이는 서비스를 제공하는 서버인 Skeleton과 서비스를 소비하는 클라이언트인 Proxy 사이에 필요한 서비스가 Service Discovery와 SOME/IP(Scalable service-Oriented MiddlewarE over IP)를 통해 다이나믹(dynamic) 하게 연결하는 통신 방법이다. 차량 애플리케이션 서버는 AUTOSAR 적응형 플랫폼이 탑재된 시스템으로써, SOME/IP를 통해 스마트 센서와 스마트 액추에이터를 차량 애플리케이션의 용도에 따라 자유롭게 모니터링하고 제어할 수 있다.
일반적으로 차량용 자율 주행 플랫폼 등 안전에 민감한 제어기에서 실시간 운영체제의 스케줄링 방법이 매우 중요하다. 본 발명의 실시 예에 따른 차량용 실시간 운영체제의 스케줄링 방법은, 우선 순위 기반으로 태스크의 수행을 할 수 있다. 본 발명의 실시 예에 따른 실시간 운용체제의 스케쥴링은 각 태스크들의 수행 되어야 하는 시점이 미리 정해져 있는 스케줄링 테이블을 기반으로 운영될 수 있다.
일반적으로 태스크들의 각각에 할당이 되어있는 SW들의 수행 시간에 충분한 마진을 주어 미리 태스크 수행 주기와 수행 순서가 결정되어 있다. 하지만 각각의 태스크 들에 의도치 않은 Case에서 수행시간이 미리 정해져 있는 시간을 넘게 되는 경우가 발생할 경우 스케줄링 테이블 및 전체 SW에 악영향을 미칠 수 있다. 이에 본 발명의 실시간 운영체제의 스케쥴링은 각각의 태스크들에서 정해진 시간을 넘게 되었을 경우 처리 방법을 개시하고 있다. 예를 들어, 각각의 태스크에 수행이 완료 되면, 설정이 되는 Flag를 삽입함으로써 정상 완료 여부가 확인될 수 있다.
중요한 태스크는 백업 태스크를 두어 별도의 연산 과정을 수행할 수 있다. 그리고 중요하다고 설정된 태스크가 완료가 되지 않는다면, 백업 태스크에서의 결과가 사용될 수 있다. 백업 태스크 역시 제대로 된 수행 시간에 완료가 되지 않는다면, 사용자 알림을 통해 시스템 재가동 혹은 위험을 회피할 수 있는 동작이 진행될 수 있다.
본 발명의 실시 예에 따른 실시간 운영체제의 스케줄링은, 차량용 자율 주행 플랫폼에서 정확도가 높은 스케줄링을 제공할 수 있다. 또한, 본 발명의 실시 예에 따른 실시간 운영체제의 스케줄링은 별도의 백업 태스크를 두어 중요한 태스크의 수행을 백업하는 기능을 추가함으로써, 태스크 수행의 정확도를 높일 수 있다. 본 발명의 실시 예에 따른 실시간 운영체제의 스케줄링은, 차량용 제어기의 안전성을 확보함으로써 오동작 및 신뢰성 높은 수행할 수 있다.
도 3은 본 발명의 실시 예에 따른 AUTOSAR 적응형 플랫폼에서 실시간 운영체제의 스케쥴링을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 태스크들(태스크 1 내지 태스크 6)의 각각은 스케쥴링 테이블에 사전에 결정된 시간 내에 수행을 완료할 수 있다. 만일, 태스크 실행이 사전에 결정된 시간 내에 완료되지 않는다면, Flag를 띄워 수행이 완료되지 못함을 알려줄 수 있다.
도 3에 도시된 바와 같이, 코어2(제 1 코어)에서 제 1 주기 동안에 러너블 기능에 따라 제 2 쓰레드 중 어느 하나로 동작함으로써 제 1 태스크가 수행될 수 있다. 동시에 제 1 주기 동안에 코어3(제 2 코어)에서 제 1 태스크에 대응하는 제 1 백업 태스크가 수행될 수 있다.
제 1 주기 이후에 제 2 주기 동안에, 차량용 어플리케이션에서 요청된 제 2 태스크를 코어3(제 2 코어)에서 수행될 수 있다. 실시 예에 있어서, 제 2 태스크는 제 2 쓰레드로 동작하여 수행되고, 제 2 주기 동안에 코어1(제 3 코어)에서 제 2 태스크의 백업 태스크가 수행될 수 있다. 실시 예에 있어서, 제 2 주기 이후에 제 3 주기 동안에, 차량용 어플리케이션에서 요청된 제 3 태스크를 코어3(제 2 코어)에서 수행될 수 있다. 실시 예에 있어서, 제 3 태스크는 제 2 쓰레드로 동작하여 수행되고, 제 3 주기 동안에 코어1(제 3 코어)에서 제 3 태스크의 백업 태스크가 수행될 수 있다. 한편, 도 3에 도시된 운영체제 스케쥴링은 실시 예에 불과하다고 이해되어야 할 것이다.
실시 예에 있어서, 백업 태스크는 원래 태스크의 단순화된 알고리즘 혹은 정해진 결과를 출력 할 수 있는 결과를 제공할 수 있다.
실시 예에 있어서, 모든 태스크들의 백업 태스크를 제공하는 것이 아니라 개발자가 중요하다고 판단된 태스크에만 백업 태스크가 제공될 수 있다. 예를 들어, 태스크를 제공하며, 원래의 태스크가 수행 시간 안에 수행이 되지 않았을 경우만 결과가 사용될 수 있다.
도 4는 본 발명의 실시 예에 따른 AUTOSAR 적응형 플랫폼의 동작을 설명하는 도면이다. 도 4를 참조하면, 적응형 AUTOSAR 어플리케이션은 제 1 러너블 기능과 제 2 러너블 기능을 운영체제(100)에 요청할 수 있다. 제 1 러너블 기능 및 제 2 러너블 기능은 모두 사전에 결정된 시간(예, 20ms) 안에 처리되어야 한다.
운영체제(100)는 제 1 및 제 2 러너블 기능들에 대응하는 두 종류의 쓰레드 관리 유닛들(110, 120)를 포함할 수 있다.
제 1 쓰레드 관리 유닛(110)은 일반적인 기능을 수행하는 제 1 쓰레드를 관리할 수 있다. 제 1 쓰레드는 스타트-플래그, 엔드-플래그를 포함할 수 있다.
제 2 쓰레드 관리 유닛(120)은 중요한 태스크로 언급되는 제 2 쓰레드를 관리할 수 있다. 예를 들어, 제 2 쓰레드 관리 유닛(120은 제 2 쓰레드(120)에 대한 백업 태스크를 발행할 수 있다. 운영체제(100)는 이러한 제 2 러너블 기능을 매우 중요한 함수로 인지할 수 있다.
제 2 쓰레드 관리 유닛(120)은 쓰레드 플래그 매니저(121), 쓰레드 메인(122), 쓰레드 백업(123), 및 쓰레드 스케쥴러 정보(124)를 포함할 수 있다.
쓰레드 플래그 매니저(121)는 사용자가 중요 함수라고 인식한 쓰레드를 플래그를 이용하여 관리할 수 있다. 실시 예에 있어서, 쓰레드 플래그 매니저(121)는 각 쓰레드에 존재하는 Start-Flag와 End-Flag를 관찰할 수 있다. 예를 들어, 쓰레드 플래그 매니저(121)는 쓰레드 스케쥴러 정보(124)와 Start-Flag와 End-Flag가 제때 업데이트 되지 않으면, 자신이 가지고 있는 Runnable 주소의 기능함수를 실행할 수 있다. 러너블 기능(Runnable Function)을 쓰레드 함수로 생성할 때, 2개의 쓰레드들 (쓰레드 메인(122)과 쓰레드 백업(123))를 맵핑 시킬 수 있다.
쓰레드 플래그 매니저(121)는 쓰레드 메인(122)에서 Start-Flag ~ End-Flag의 데드라인(Deadline) 및 쓰레드의 주기를 감시할 수 있다. 만일, 예측한 정보보다 초과하게 되면, 쓰레드 플래그 매니저(121)는 쓰레드 백업(123)의 쓰레드를 수행시킬 수 있다.
쓰레드 백업(123)에서도 쓰레드 메인(122)와 동일한 문제가 발생하면, 쓰레드 플래그 매니저(121)은 사용자에게 Alarm을 발생시킬 수 있다. 즉, 1회 쓰레드의 동작이 아닌 2회 쓰레드 동작을 확인한 후, 이에 대한 페일(Fail)을 처리하는 것이 주요 기능이다.
쓰레드 메인(122)는 스타트-플래그, 엔드-플래그, 기능 포인터를 포함할 수 있다. 스타트-플래그(Start-Flag)는 쓰레드의 시작 시간을 포함한다. 엔드-플래그(End-Flag)는 쓰레드의 종료된 시점의 시간을 포함한다. 기능 포인터(Function Pointer)는 쓰레드 포인터 매니저(121)로부터 맵핑된 러너블 기능을 수행할 수 있다.
쓰레드 백업은, 스타트-플래그, 엔드-플래그를 포함한다.
스타트-플래그(Start-Flag)는 쓰레드의 시작 시간을 포함하고, 엔드-플래그(End-Flag)는 쓰레드의 종료된 시점의 시간을 포함한다. 러너블 기능은 쓰레드 메인과 정확하게 유사하다. 쓰레드 메인이 정상적으로 동작한 경우에 쓰레드 백업은 아예 실행되지 않는다.
태스크 스케쥴러 정보는 태스크 스케쥴링을 위한 정보를 포함하고, 로컬상에 존재하는 메타 데이터 파일이다. 태스크 스케줄러 정보는 Process와 같은 Daemon 형태의 어플리케이션이 아니다. 태스크 스케쥴러 정보는 쓰레드 플래그 매니저(121)가 참조할 쓰레드와 러너블 기능들에 대한 정보를 포함하고 있다.
또한, 쓰레드의 필수 정보는, Period(Thread의 동작 주기), 및 Deadline (Thread가 동작시 Start-Flag와 End-Flag의 차이값이고, 쓰레드가 이 값을 초과해서는 안되는 값), Function Pointer (수행될 Runnable Function)이다.
도 5는 본 발명의 실시 예에 따른 실시간 운영체제(100)의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 3 내지 도 5를 참조하면, 실시간 운영체제(100)는 다음과 같이 동작할 수 있다.
실시간 운영체제(100)는 적응형 AUTOSAR 어플리케이션으로부터 쓰레드 실행 요청을 수신하고, 러너블 기능을 판별할 수 있다(S110). 운영체제(100)는 제 1 코어에서 판별된 러너블 기능에 따라 제 1 쓰레드 및 제 2 쓰레드 중 어느 하나로 동작하여 제 1 태스크를 수행할 수 있다(S120). 또한, 제 1 코어에서 제 2 쓰레드로 동작할 때, 운영체제(100)는 제 1 코어와 다른 제 2 코어에서 제 1 태스크의 백업 태스크를 수행할 수 있다(S130).
실시 예에 있어서, 제 1 쓰레드는 쓰레드의 시작 시간을 저장하는 스타트-플래그 및 상기 쓰레드의 종료 시간을 저장하는 엔드-플래그를 포함할 수 있다. 실시 예에 있어서, 제 2 쓰레드는 쓰레드 플래그 매니저, 쓰레드 메인, 쓰레드 백업, 태스크 스케쥴러 정보를 포함할 수 있다. 실시 예에 있어서, 쓰레드 메인은 쓰레드의 시작 시간을 저장하는 스타트-플래그, 쓰레드의 종료 시간을 저장하는 엔드-플래그, 및 쓰레드 플래그 매니저로부터 맵핑된 러너블 기능을 수행하는 기능 포인터를 포함할 수 있다.
실시 예에 있어서, 쓰레드 백업은 스타트-플래그 및 엔드-플래그를 포함할 수 있다. 실시 예에 있어서, 쓰레드 플래그 매니저는, 쓰레드에 존재하는 스타트-플래그 및 엔드-플래그를 모니터링하고, 태스크 스케쥴러 정보, 스타트-플래그, 및 엔드-플래그가 사전에 결정된 시간 내에 업데이트 되지 않을 때 러너블 포인터를 이용하여 러너블 기능을 수행할 수 있다. 실시 예에 있어서, 러너블 기능을 쓰레드 함수로 생성할 때, 쓰레드 플래그 매니저는 쓰레드 메인과 쓰레드 백업을 맵핑 할 수 있다.
실시 예에 있어서, 쓰레드 메인에서 쓰레드 주기를 감시하고, 쓰레드 메인의 쓰레드 주기가 예측한 값보다 초과될 때, 쓰레드 백업의 쓰레드가 수행될 수 있다. 실시 예에 있어서, 쓰레드 백업의 쓰레드 주기가 예측한 값보다 초과될 때, 사용자에게 알람이 전달될 수 있다. 실시 예에 있어서, 운영체제는 AUTOSAR 적응형 플랫폼에 따라 구현될 수 있다.
본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다. 실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.
도 6은 본 발명의 실시 예에 따른 차량용 제어기(1000)를 예시적으로 보여주는 도면이다. 도 6을 참조하면, 차량용 제어기(1000, ECU)는 MCU(1100), 메모리(1200), 및 통신 장치(1300)를 포함할 수 있다.
MCU(Micro Control Unit; 1100)는 차량용 제어기(100)의 전반적인 동작을 수행하도록 구현될 수 있다. MCU(1100)는 적어도 하나의 인스트럭션을 실행함으로써 적어도 하나의 프로그램을 구동할 수 있다. 예를 들어, 적어도 하나의 프로그램은 도 3 내지 도 5에서 설명한 적응형 AUTOSAR 어플리케이션을 포함할 수 있다.
MCU(1100)는 복수의 코어들을 포함할 수 있다. 복수의 코어들은 적어도 하나의 메인 코어와 적어도 하나의 서브 코어를 포함할 수 있다.
메모리(1200)는 적어도 하나의 프로그램을 저장하도록 구현될 수 있다. 메모리(1200)는 휘발성 메모리 혹은 비휘발성 메모리를 포함할 수 있다. 예를 들어, 메모리(1200)는 RAM(Random Access Memory), SRAM(Static Random Access Memory), ROM(Read-Only Memory), PROM(Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), NAND Flash memory, NOR Flash memory와 같은 저장매체를 포함할 수 있다.
통신 장치(1300)는 차량용 제어기(1000)의 외부와 통신할 수 있도록 인 터페이스 역할을 수행할 수 있다. 통상적으로 차량용 제어기(1000)와 차량용 제어기(1000) 외부의 장치와 통신을 위해 CAN(Controller Area Network) 통신, LIN(Local Interconnect Network) 통신, Ethernet 통신이 사용될 수 있다.
본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/또는 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/또는 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100: 운영체제
110: 제 1 쓰레드 관리 유닛
120: 제 2 쓰레드 관리 유닛
121: 쓰레드 플래그 매니저
200: 적응형 AUTOSAR 어플리케이션
1000: 제어기
1100: MCU
1200: 메모리
1300: 통신 장치

Claims (13)

  1. 차량 제어기의 운영체제 스케쥴링 방법에 있어서,
    차량용 어플리케이션에서 요청된 제 1 태스크에 따른 러너블 기능을 판별하는 단계;
    상기 제 1 코어에서 제 1 주기 동안에 상기 판별된 러너블 기능에 따라 제 1 쓰레드 및 제 2 쓰레드 중 어느 하나로 동작함으로써 상기 제 1 태스크를 수행하는 단계; 및
    상기 제 1 코어에서 상기 제 2 쓰레드로 동작할 때, 상기 제 1 주기 동안에 상기 제 1 코어에 다른 제 2 코어에서 상기 제 1 태스크에 대응하는 제 1 백업 태스크를 수행하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 쓰레드는 쓰레드의 시작 시간을 저장하는 스타트-플래그 및 상기 쓰레드의 종료 시간을 저장하는 엔드-플래그를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 제 2 쓰레드는 쓰레드 플래그 매니저, 쓰레드 메인, 쓰레드 백업, 태스크 스케쥴러 정보를 포함하고,
    상기 쓰레드 메인은 쓰레드의 시작 시간을 저장하는 스타트-플래그, 상기 쓰레드의 종료 시간을 저장하는 엔드-플래그, 및 상기 쓰레드 플래그 매니저로부터 맵핑된 러너블 기능을 수행하는 기능 포인터를 포함하고,
    상기 쓰레드 백업은 상기 스타트-플래그 및 상기 엔드-플래그를 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 쓰레드 플래그 매니저는, 상기 쓰레드에 존재하는 상기 스타트-플래그 및 상기 엔드-플래그를 모니터링하고, 상기 태스크 스케쥴러 정보, 상기 스타트-플래그, 및 상기 엔드-플래그가 사전에 결정된 시간 내에 업데이트 되지 않을 때 상기 러너블 포인터를 이용하여 상기 러너블 기능을 수행하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 러너블 기능을 쓰레드 함수로 생성할 때, 상기 쓰레드 플래그 매니저는 상기 쓰레드 메인과 상기 쓰레드 백업을 맵핑하는 것을 특징으로 하는 방법.
  6. 제 4 항에 있어서,
    상기 쓰레드 메인에서 쓰레드 주기를 감시하고, 상기 쓰레드 메인의 쓰레드 주기가 예측한 값보다 초과될 때, 상기 쓰레드 백업의 쓰레드가 수행되는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 쓰레드 백업의 쓰레드 주기가 상기 예측한 값보다 초과될 때, 사용자에게 알람을 발생하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 운영체제는 AUTOSAR 적응형 플랫폼에 따라 구현되는 것을 특징으로 하는 방법.
  9. 차량용 제어기에 있어서,
    외부 장치와 통신을 수행하는 통신 장치;
    운영체제를 저장하는 메모리; 및
    상기 통신 장치 및 상기 메모리를 제어하고, 상기 운영체제를 구동하는 마이크로콘트롤유닛을 포함하고,
    상기 운영체제는,
    차량용 어플리케이션에서 요청된 제 1 태스크에 따른 러너블 기능을 판별하고;
    상기 제 1 코어에서 제 1 주기 동안에 상기 판별된 러너블 기능에 따라 제 1 쓰레드 및 제 2 쓰레드 중 어느 하나로 동작함으로써 상기 제 1 태스크를 수행하고; 및
    상기 제 1 코어에서 상기 제 2 쓰레드로 동작할 때, 상기 제 1 주기 동안에 상기 제 1 코어에 다른 제 2 코어에서 상기 제 1 태스크에 대응하는 제 1 백업 태스크를 수행하는 것을 특징으로 하는 차량용 제어기.
  10. 제 9 항에 있어서,
    상기 제 1 주기 이후에 제 2 주기 동안에, 상기 운영체제는 상기 차량용 어플리케이션에서 요청된 제 2 태스크를 상기 제 2 코어에서 수행하는 것을 특징으로 하는 차량용 제어기.
  11. 제 10 항에 있어서,
    상기 제 2 태스크는 상기 제 2 쓰레드로 동작하여 수행되고,
    상기 운영체제는 상기 제 2 주기 동안에 상기 제 3 코어에서 상기 제 2 태스크의 백업 태스크를 수행하고,
    상기 제 3 코어는 상기 제 1 코어 및 상기 제 2 코어와 다른 것을 특징으로 하는 차량용 제어기.
  12. 제 10 항에 있어서,
    상기 제 2 주기 이후에 제 3 주기 동안에, 상기 운영체제는 상기 차량용 어플리케이션에서 요청된 제 3 태스크를 상기 제 2 코어에서 수행하는 것을 특징으로 하는 차량용 제어기.
  13. 제 12 항에 있어서,
    상기 제 3 태스크는 상기 제 2 쓰레드로 동작하여 수행되고,
    상기 운영체제는 상기 제 3 주기 동안에 상기 제 3 코어에서 상기 제 3 태스크의 백업 태스크를 수행하고,
    상기 제 3 코어는 상기 제 1 코어 및 상기 제 2 코어와 다른 것을 특징으로 하는 차량용 제어기.
KR1020200175370A 2020-12-15 2020-12-15 차량용 제어기 및 그것의 운영체제 스케쥴링 방법 KR102485288B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200175370A KR102485288B1 (ko) 2020-12-15 2020-12-15 차량용 제어기 및 그것의 운영체제 스케쥴링 방법
US17/533,995 US20220188159A1 (en) 2020-12-15 2021-11-23 Control unit for a vehicle and an operating system scheduling method thereof
CN202111446948.6A CN114637598A (zh) 2020-12-15 2021-11-30 车辆控制器及其操作系统的调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175370A KR102485288B1 (ko) 2020-12-15 2020-12-15 차량용 제어기 및 그것의 운영체제 스케쥴링 방법

Publications (2)

Publication Number Publication Date
KR20220085366A true KR20220085366A (ko) 2022-06-22
KR102485288B1 KR102485288B1 (ko) 2023-01-04

Family

ID=81942514

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175370A KR102485288B1 (ko) 2020-12-15 2020-12-15 차량용 제어기 및 그것의 운영체제 스케쥴링 방법

Country Status (3)

Country Link
US (1) US20220188159A1 (ko)
KR (1) KR102485288B1 (ko)
CN (1) CN114637598A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102188738B1 (ko) * 2019-12-09 2020-12-08 현대오트론 주식회사 오토사 운영체제의 알람 오프셋 최적화 장치
CN117459190B (zh) * 2023-12-20 2024-04-02 中汽研(天津)汽车工程研究院有限公司 一种异构中央计算架构的ota通信方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219937A (ja) * 2006-02-17 2007-08-30 Toyota Infotechnology Center Co Ltd タスク管理システム、タスク管理方法およびタスク管理プログラム
KR20130066900A (ko) * 2011-12-13 2013-06-21 삼성전자주식회사 연성 실시간 운영체제의 실시간성 확보방법
KR101439355B1 (ko) 2012-11-13 2014-09-11 재단법인대구경북과학기술원 차량용 실시간 운영체제의 스케줄링 방법, 차량용 실시간 운영체제의 스케줄링 방법을 수행하는 프로세서를 포함하는 차량의 전자 제어 장치, 및 차량용 실시간 운영체제의 스케줄링 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체
KR20170109169A (ko) * 2016-03-18 2017-09-28 국민대학교산학협력단 Autosar를 적용한 샤시/안전 통합제어 시스템의 응용 소프트웨어 설계 및 멀티코어 기반 각 러너블의 할당 방법
KR20180095646A (ko) * 2016-01-15 2018-08-27 구글 엘엘씨 클라이언트 측 활동 모니터링

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632822B2 (en) * 2012-09-21 2017-04-25 Htc Corporation Multi-core device and multi-thread scheduling method thereof
EP3671450A1 (en) * 2018-12-18 2020-06-24 Aptiv Technologies Limited Virtual electronic control units in autosar
US11321123B2 (en) * 2019-11-21 2022-05-03 International Business Machines Corporation Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219937A (ja) * 2006-02-17 2007-08-30 Toyota Infotechnology Center Co Ltd タスク管理システム、タスク管理方法およびタスク管理プログラム
KR20130066900A (ko) * 2011-12-13 2013-06-21 삼성전자주식회사 연성 실시간 운영체제의 실시간성 확보방법
KR101439355B1 (ko) 2012-11-13 2014-09-11 재단법인대구경북과학기술원 차량용 실시간 운영체제의 스케줄링 방법, 차량용 실시간 운영체제의 스케줄링 방법을 수행하는 프로세서를 포함하는 차량의 전자 제어 장치, 및 차량용 실시간 운영체제의 스케줄링 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체
KR20180095646A (ko) * 2016-01-15 2018-08-27 구글 엘엘씨 클라이언트 측 활동 모니터링
KR20170109169A (ko) * 2016-03-18 2017-09-28 국민대학교산학협력단 Autosar를 적용한 샤시/안전 통합제어 시스템의 응용 소프트웨어 설계 및 멀티코어 기반 각 러너블의 할당 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kim, J. 외 3명. ‘An AUTOSAR-Compliant Automotive Platform for Meeting Reliability and Timing Constraints’. SAE Technical Paper 2011-01-0448, 2011. (https://doi.org/10.4271/2011-01-0448)* *

Also Published As

Publication number Publication date
US20220188159A1 (en) 2022-06-16
KR102485288B1 (ko) 2023-01-04
CN114637598A (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
JP6903784B2 (ja) 車両システム、車両およびこの種の車両システムの動作方法
AU2008279001B2 (en) Transactional graph-based computation with error handling
US20180039508A1 (en) Safety hypervisor function
Reinhardt et al. Achieving a scalable e/e-architecture using autosar and virtualization
KR102485288B1 (ko) 차량용 제어기 및 그것의 운영체제 스케쥴링 방법
US11294729B2 (en) Resource provisioning for multiple invocations to an electronic design automation application
US20210374319A1 (en) Dynamic allocation of computing resources for electronic design automation operations
CN110291504B (zh) 用于机动车的控制器和相应的机动车
EP4120082A1 (en) Automotive open system architecture, state management method, and device
KR102360725B1 (ko) 차량용 제어기 및 그것의 에러 관리 방법
CN111831406A (zh) 一种基于车载嵌入式系统的多任务调度方法及装置
Brandenburg The case for an opinionated, theory-oriented real-time operating system
Jahnich et al. Towards a middleware approach for a self-configurable automotive embedded system
Martorell et al. Partial Updates of AUTOSAR Embedded Applications--To What Extent?
CN111791886B (zh) 用于车辆的实时控制系统以及经由实时控制系统执行车辆控制的方法
US11429361B2 (en) Agents installation in data centers based on host computing systems load
CN112764822A (zh) 操作系统启动方法、装置、设备及介质
Anthony et al. A middleware approach to dynamically configurable automotive embedded systems
Jahnich et al. Integrating dynamic load balancing strategies into the car-network
EP3336698B1 (en) System comprising a plurality of virtualization systems
JP4730386B2 (ja) 仮想計算機装置、計算資源活用方法、および、プログラム
CN117435303A (zh) 一种容器与虚拟机统一管理的方法
CN113254144A (zh) 用于实例化至少一个执行环境的方法
Wang et al. Disaggregating Applications Using Uniservices
Rettberg et al. Self-Configurable Automotive Embedded Systems

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant