WO2023101094A1 - Application method of arinc-based operating system for vehicle platform - Google Patents

Application method of arinc-based operating system for vehicle platform Download PDF

Info

Publication number
WO2023101094A1
WO2023101094A1 PCT/KR2021/019705 KR2021019705W WO2023101094A1 WO 2023101094 A1 WO2023101094 A1 WO 2023101094A1 KR 2021019705 W KR2021019705 W KR 2021019705W WO 2023101094 A1 WO2023101094 A1 WO 2023101094A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution
management schedule
execution management
type
module
Prior art date
Application number
PCT/KR2021/019705
Other languages
French (fr)
Korean (ko)
Inventor
박예슬
Original Assignee
주식회사 알티스트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 알티스트 filed Critical 주식회사 알티스트
Publication of WO2023101094A1 publication Critical patent/WO2023101094A1/en

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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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
    • 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
    • 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
    • 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
    • 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

Definitions

  • Embodiments of the present invention relate to vehicle operating system technology.
  • ARINC Aeronautical Network Controller 653
  • ARINC 653 is a standard for developing application software for aviation, and defines an interface between a real-time operating system and an application program running on top of it.
  • ARINC 653 is a Separation Kernel and is designed with the highest priority in ensuring safety, reliability, and real-time in any environment according to SKPP (Separation Kernel Protection Profile), a security requirement specification for separation kernels.
  • SKPP Separatation Kernel Protection Profile
  • ARINC 653 manages the operation of partitions (execution units) based on process execution information defined in the configuration table.
  • ARINC 653 defines a plurality of static modules in the configuration table, and changes and manages the modules to be executed according to the execution schedule. In the ARINC 653, this feature is called Multiple Module Scheduling.
  • the module may refer to a set of execution information to execute a specific function in an aircraft using ARINC 653 as an operating system.
  • Each module includes one or more partitions, and may include information such as an execution time for each partition, an execution cycle, an offset, and allocated cores.
  • Each module is repeated every preset major time frame (MTF).
  • MTF major time frame
  • module 1 is a diagram showing an example of multiple module scheduling in ARINC 653.
  • each partition is temporally and spatially separated.
  • each partition is temporally separated means that the execution time of each partition is guaranteed, and each partition is independent of other partitions and interference with each other is minimized.
  • partition 1 may have a guaranteed execution time for 20000 time frames
  • partition 3 may mean that an execution time is guaranteed for 10000 time frames after the execution time of partition 1.
  • each partition is spatially separated means that resources allocated to each partition are guaranteed, and resources allocated to one partition may not be allocated to other partitions. Due to the characteristics of such temporal and spatial separation, safety and reliability can be guaranteed in the ARINC 653-based operating system.
  • one or more modules are recorded in the configuration table in advance to ensure safety and reliability, and then the operation of the operating system is performed, and the configuration table It is impossible to change other scheduling other than the schedule recorded in advance.
  • AUTOSAR AUTomotive Open System ARchitecture
  • AUTOSAR provides a set of specifications that describe the underlying software, define application interfaces, and establish a common development methodology based on a standardized exchange format.
  • ARINC 653 is used as a vehicle operating system, safety and reliability, which are the advantages of ARINC 653, can be obtained.
  • execution unit management of ARINC 653 is performed statically, execution unit management is performed dynamically in AUTOSAR. Therefore, in order to apply ARINC 653 as a vehicle operating system, a method for dynamically managing execution unit is required.
  • An object of the present invention is to provide a vehicle operating system system that can apply ARINC 653 as a vehicle operating system and a vehicle having the same.
  • An operating system system for a vehicle includes an operating system based on Avionics Application Standard Software Interface (ARINC) 653 mounted on a vehicle;
  • An AUTOSAR (AUTomotive Open System ARchitecture) platform that is a software architecture mounted on the vehicle and includes an execution manager that generates a first type execution management schedule; and a conversion interface for combining the ARINC 653-based operating system and the AUTOSAR platform and converting the first-type execution management schedule into a second-type execution management schedule usable in the ARINC 653-based operating system.
  • the execution manager when a preset situation event occurs in the vehicle, selects processes to be executed in response to the situation, and designates a start and end order of each process in consideration of dependencies between the selected processes, so that the first process You can create an execution management schedule of the form.
  • the conversion interface may convert an execution management schedule of the first type into an execution management schedule of the second type based on dependencies between processes and an execution time of each process in the execution management schedule of the first type.
  • the conversion interface generates a plurality of modules based on the dependencies between processes and the execution time of each process, the execution management schedule of the second type includes the plurality of modules, and the modules include the first type.
  • An execution order among processes included in the execution management schedule of the , an execution time of each process, and a repetition cycle of the corresponding module may be included.
  • the inter-process dependency includes a running dependency
  • the conversion interface is determined when the first process has the running dependency relationship with the second process in the execution management schedule of the first type.
  • a first module including only the second process is created, and in response to the execution start command of the first process on the execution management schedule of the first type
  • a second module including the second process and the first process is generated, the first module is allocated an execution time of the second process, and the second module includes the second process and the first module.
  • An execution order between one process and an execution time of each of the second process and the first process are allocated.
  • the inter-process dependencies include terminated dependencies, and the conversion interface is determined when the first process has the terminated dependency relationship with the second process in the execution management schedule of the first type.
  • a first module including only the second process is created, and in response to an end wait command of the second process on the execution management schedule of the first type Maintains the first module, and generates a second module including only the first process in response to an execution start command of the first process on the execution management schedule of the first type, wherein the first module: Execution time of two processes may be allocated, and the second module may be allocated execution time of the first process.
  • the vehicle operating system system may further include a verification unit that verifies the execution management schedule of the second type converted by the conversion interface.
  • the verification unit calculates a hash value for each module included in the execution management schedule of the second type, compares the calculated hash value with a pre-stored hash value, and overwrites the verification process of the execution management schedule of the second type. heads can be minimized.
  • the pre-stored hash value is a hash value of a module included in the previously verified execution management schedule of the second type, and the verification unit determines whether there is a hash value identical to the calculated hash value among the pre-stored hash values. Verification can be performed according to
  • a dynamic execution management schedule (execution management schedule for a dependency-based process) generated in the AUTOSAR platform into a module-type execution management schedule executable in an ARINC 653-based operating system
  • the vehicle by applying the ARINC 653-based operating system, it is possible to perform dynamic execution management according to situational events that occur frequently in the vehicle while ensuring safety and reliability accordingly.
  • 1 is a diagram showing an example of multiple module scheduling in ARINC 653;
  • FIG. 2 is a block diagram showing an ARINC 653-based vehicle operating system system according to an embodiment of the present invention
  • FIG. 3 is a diagram showing the state of a function group in one embodiment of the present invention.
  • FIG. 4 is a diagram for explaining dependencies between processes in an execution management schedule generated by an execution manager according to an embodiment of the present invention
  • FIG. 5 is a diagram schematically showing a state in which a first type of execution management schedule is converted into a second type of execution management schedule in an embodiment of the present invention
  • FIGS. 6 and 7 are views illustrating a process of converting a first type of execution management schedule into a second type of execution management schedule according to inter-process dependencies according to an embodiment of the present invention
  • FIG. 8 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in example embodiments.
  • FIG. 2 is a block diagram illustrating an ARINC 653-based vehicle operating system system according to an embodiment of the present invention.
  • the vehicle operating system system 100 includes an AUTOSAR platform 102 , a conversion interface 104 , and an ARINC 653-based operating system 106 .
  • the AUTOSAR platform 102 is a standardized software architecture mounted on vehicles.
  • the AUTOSAR platform 102 may be an adaptive platform, but is not limited thereto and may be a classic platform.
  • the AUTOSAR platform 102 includes an Execution Manager (EM) 102a.
  • EM Execution Manager
  • the execution manager 102a may manage processes to be executed in each preset situation of a vehicle equipped with the vehicle OS system 100 . At this time, the execution manager 102a manages a plurality of function groups.
  • the function group may mean a set of processes (ie, partitions) related to a specific function of the vehicle.
  • a process or partition is an execution unit related to a specific function, and may be used with the same meaning in this specification.
  • an execution unit is referred to as a process
  • ARINC 653 an execution unit is referred to as a partition. In this specification, the two may be used interchangeably (ie, execution unit).
  • functional group A may be a set of processes managing motors
  • functional group B may be a set of processes managing navigation
  • function group C may be managing brakes. It may be a set of processes that
  • each functional group can have several states. As shown in FIG. 3 , a functional group A (FG_A), which is a set of processes managing motors, may have states such as startup and off. In addition, functional group B (FG_B), which is a set of processes managing navigation, may have states such as inactivation, execution, and update. Also, for each function group, processes to be executed in each state are preset.
  • functional group A may be configured to execute processes P2, P3, and P4 in a startup state and process P1 to be executed in an off state.
  • the execution manager 102a selects processes to be executed in response to the situation and designates the start and end order of each process in consideration of dependencies between the selected processes, thereby managing an execution management schedule.
  • the execution manager 102a of the AUTOSAR platform 102 may dynamically create an execution management schedule for each preset situation event of the vehicle.
  • one or more functional groups may be included in the execution management schedule, and each functional group may have a specific state at a specific time.
  • Running dependency may mean that a corresponding process is executed after the process on which the corresponding process depends is executed.
  • Terminated dependencies may mean that a corresponding process is executed after the process on which the corresponding process depends is terminated. Information about dependencies between processes is stored in the Application Manifest file.
  • FIG. 4 is a diagram for explaining dependencies between processes in an execution management schedule generated by an execution manager 102a according to an embodiment of the present invention.
  • process 4 looking at the Startup state of functional group A (FG_A), process 4 (P4) has an execution dependency relationship with process 2 (P2), and process 2 (P2) has a termination dependency relationship with process 3 (P3). there is.
  • process 4 (P4) may be executed after process 2 (P2) is executed.
  • process 2 (P2) may be executed after process 3 (P3) is terminated.
  • the conversion interface 104 may serve as an interface between the AUTOSAR platform 102 and the ARINC 653-based operating system 106.
  • the conversion interface 104 may receive an execution management schedule created by the execution manager 102a from the execution manager 102a, convert it into a module-type execution management schedule, and transmit it to the ARINC 653-based operating system 106. .
  • the execution management schedule created by the execution manager 102a is created in the AUTOSAR platform 102 and is dependency-based process execution management, it is a module-type execution management that can be used in the ARINC 653-based operating system 106. Convert to schedule.
  • the execution management schedule generated by the execution manager 102a may be referred to as a first type execution management schedule.
  • the module type execution management schedule may be referred to as a second type execution management schedule.
  • the conversion interface 104 may convert the execution management schedule of the first type into the execution management schedule of the second type, and then transfer the conversion to the ARINC 653-based operating system 106 . Accordingly, it is possible to dynamically update the execution management schedule even while the vehicle OS system 100 is running.
  • the conversion interface 104 may convert the execution management schedule of the first type into the execution management schedule of the second type based on the dependency between processes and the execution time of each process in the execution management schedule of the first type.
  • FIG. 5 is a diagram schematically illustrating a state in which a first type of execution management schedule is converted into a second type of execution management schedule in an embodiment of the present invention.
  • a module is a set of execution information for executing a specific function in the ARINC 653-based operating system 106, and may include one or more partitions.
  • the module may include an execution order among processes included in the execution management schedule of the first type, an execution time of each process, and a repetition cycle of the corresponding module.
  • 6 and 7 are diagrams illustrating a process of converting a first type of execution management schedule into a second type of execution management schedule according to dependencies between processes according to an embodiment of the present invention.
  • process 3 (P3) of functional group A (FG_A) has an execution dependency relationship with process 1 (P1) in the first type of execution management schedule.
  • the conversion interface 104 may generate the first module M1 in response to the execution start command (start(P1)) of the process 1 (P1) on the execution management schedule of the first form.
  • the first module M1 may include only process 1 (P1) (ie, partition 1) of functional group A (FG_A), and the execution time for process 1 (P1) may be allocated.
  • the conversion interface 104 may generate the second module M2 in response to the execution start command (start(P3)) of the process 3 (P3) on the first type of execution management schedule.
  • the second module M2 includes process 1 (P1) (ie, partition 1) and process 3 (P3) (ie, partition 3) of functional group A (FG_A), and process 1 (P1) and process 3 ( The execution order of P3) and the execution time of each process may be allocated.
  • the conversion interface 104 may divide and allocate the total execution time of the process 1 (P1) to the first module (M1) and the second module (M2).
  • the conversion interface 104 may convert the first type of execution management schedule into a second type of execution management schedule including the first module M1 and the second module M2.
  • the first module M1 is executed and then changed to the second module M2 to be executed.
  • the first module (M1) is executed, only process 1 (P1) of functional group A (FG_A) is executed, and when the module is changed to the second module (M2), process 1 (P1) of functional group A (FG_A) and process 3 (P3) are repeated and executed.
  • process 3 (P3) of functional group B (FG_B) has a termination dependency relationship with process 2 (P2) in the first type of execution management schedule.
  • the conversion interface 104 generates the first module M1 in response to the execution start command (start(P2)) of the process 2 (P2) of the functional group B (FG_B) on the execution management schedule of the first form. can do.
  • the first module (M1) may include only process 2 (P2) of functional group B (FG_B), and execution time for process 2 (P2) may be allocated.
  • the conversion interface 104 maintains the first module M1 in response to the process 2 (P2) end wait command (wait(P2)) of the functional group B (FG_B). That is, the conversion interface 104 may maintain the first module M1 without changing the module until the execution of the process 2 (P2) ends.
  • the conversion interface 104 may generate the second module M2 in response to the execution start command (start(P3)) of the process 3 (P3) of the functional group B (FG_B).
  • the second module M2 may include only the process 3 (P3) of the functional group B (FG_B), and the execution time for the process 3 (P3) may be allocated.
  • the ARINC 653-based operating system 106 can control each hardware installed in a vehicle, provide a base environment for application software, and manage computing resources in the vehicle.
  • the ARINC 653-based operating system 106 may receive the second type of execution management schedule from the conversion interface 104 .
  • the ARINC 653-based operating system 106 may include a verification unit 106a for verifying the execution management schedule of the second type.
  • the second type of execution management schedule received from the conversion interface 104 is a dynamic execution management schedule generated from the execution manager 102a, if it is immediately executed, the safety and stability of the ARINC 653-based operating system 106 Reliability can be difficult to ensure.
  • the execution management schedule of the second type received from the conversion interface 104 may be verified through the verification unit 106a.
  • the verification unit 106a may calculate a hash value for each module included in the execution management schedule of the second form.
  • the verification unit 106a may calculate a hash value by inputting each module included in the execution management schedule of the second type to a hash function.
  • the verification unit 106a may compare the calculated hash value with pre-stored hash values.
  • the pre-stored hash values may be hash values of modules included in the previously verified execution management schedule of the second type.
  • the verification unit 106a may verify the received execution management schedule of the second type through whether there is a hash value identical to the calculated hash value among pre-stored hash values.
  • the verification unit 106a may determine that the received execution management schedule of the second type has not yet been verified. At this time, the verification unit 106a verifies the stability and reliability of the execution management schedule of the second type, and stores the hash value when the verification is completed. Thereafter, in the case of the second type of execution management schedule in which the stored hash value is calculated, verification may be regarded as complete even without additional verification.
  • the verification unit 106a may determine that the received execution management schedule of the second type has already been verified. In this case, the ARINC 653-based operating system 106 can execute the execution management schedule of the second type by adding it to the configuration table.
  • the conversion speed can be improved by reducing the time required for verification.
  • the dynamic execution management schedule (execution management schedule for a dependency-based process) generated in the AUATSAR platform 102 is converted into a module-type execution management schedule executable in the ARINC 653-based operating system 106.
  • converting it is possible to apply the ARINC 653-based operating system 106 to the vehicle to secure safety and reliability and perform dynamic execution management according to situational events that frequently occur in the vehicle.
  • FIG. 8 is a block diagram illustrating and describing a computing environment 10 including a computing device suitable for use in example embodiments.
  • each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.
  • the illustrated computing environment 10 includes a computing device 12 .
  • computing device 12 may be vehicle operating system system 100 .
  • Computing device 12 includes at least one processor 14 , a computer readable storage medium 16 and a communication bus 18 .
  • Processor 14 may cause computing device 12 to operate according to the above-mentioned example embodiments.
  • processor 14 may execute one or more programs stored on computer readable storage medium 16 .
  • the one or more programs may include one or more computer-executable instructions, which when executed by processor 14 are configured to cause computing device 12 to perform operations in accordance with an illustrative embodiment. It can be.
  • Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information.
  • Program 20 stored on computer readable storage medium 16 includes a set of instructions executable by processor 14 .
  • computer readable storage medium 16 includes memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other forms of storage media that can be accessed by computing device 12 and store desired information, or any suitable combination thereof.
  • Communications bus 18 interconnects various other components of computing device 12, including processor 14 and computer-readable storage medium 16.
  • Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 .
  • An input/output interface 22 and a network communication interface 26 are connected to the communication bus 18 .
  • Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 .
  • Exemplary input/output devices 24 include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or a photographing device.
  • input devices, and/or output devices such as display devices, printers, speakers, and/or network cards.
  • the exemplary input/output device 24 may be included inside the computing device 12 as a component constituting the computing device 12, or may be connected to the computing device 12 as a separate device distinct from the computing device 12. may be

Abstract

An application method of an ARINC-based operating system for a vehicle platform is disclosed. A vehicle operating system according to an embodiment disclosed herein comprises: an avionics application standard software interface (ARINC) 653-based operating system which is loaded in a vehicle; an automotive open system architecture (AUTOSAR) platform which is a software architecture loaded in a vehicle and includes an execution manager for generating a first-type execution management schedule; and a conversion interface which performs coupling between the ARINC 653-based operating system and the AUTOSAR platform and converts the fist-type execution management schedule into a second-type execution management schedule that can be used in the ARINC 653-based operating system.

Description

차량용 플랫폼을 위한 ARINC 기반 운영체제 적용 방법ARINC-based operating system application method for vehicle platform
본 발명의 실시예는 차량용 운영 체제 기술과 관련된다.Embodiments of the present invention relate to vehicle operating system technology.
ARINC(Avionics Application Standard Software Interface) 653은 항공용 애플리케이션 소프트웨어를 개발하기 위한 규격으로, 실시간 운영 체제와 그 위에서 동작하는 응용 프로그램 간의 인터페이스를 규정한다. ARINC 653은 분리 커널(Separation Kernel)로서, 분리 커널에 대한 보안 요구 사항 사양인 SKPP(Separation Kernel Protection Profile)에 따라 어떤 환경에서도 안전성, 신뢰성, 및 실시간성을 보장하는 것을 최우선 목적으로 설계되었다. ARINC (Avionics Application Standard Software Interface) 653 is a standard for developing application software for aviation, and defines an interface between a real-time operating system and an application program running on top of it. ARINC 653 is a Separation Kernel and is designed with the highest priority in ensuring safety, reliability, and real-time in any environment according to SKPP (Separation Kernel Protection Profile), a security requirement specification for separation kernels.
ARINC 653은 구성 테이블에 정의된 프로세스 실행 정보를 바탕으로 파티션(실행 단위)의 동작을 관리한다. ARINC 653은 구성 테이블에 정적인 복수 개의 모듈을 정의해두고, 실행 스케줄에 따라 실행할 모듈을 변경하며 관리하게 된다. ARINC 653에서 이러한 기능을 다중 모듈 스케줄링(Multiple Module Scheduling)이라고 한다. ARINC 653 manages the operation of partitions (execution units) based on process execution information defined in the configuration table. ARINC 653 defines a plurality of static modules in the configuration table, and changes and manages the modules to be executed according to the execution schedule. In the ARINC 653, this feature is called Multiple Module Scheduling.
여기서, 모듈은 ARINC 653을 운영 체제로 하는 항공기에서 특정 기능을 실행하도록 하는 실행 정보들의 집합을 의미할 수 있다. 각 모듈은 하나 이상의 파티션을 포함하며, 파티션 별 실행 시간, 실행 주기, 오프셋(offset), 및 할당 코어 등의 정보를 포함할 수 있다. 각 모듈은 기 설정된 메이저 시간 프레임(Major Time Frame : MTF)마다 반복된다. Here, the module may refer to a set of execution information to execute a specific function in an aircraft using ARINC 653 as an operating system. Each module includes one or more partitions, and may include information such as an execution time for each partition, an execution cycle, an offset, and allocated cores. Each module is repeated every preset major time frame (MTF).
도 1은 ARINC 653에서 다중 모듈 스케줄링(Multiple Module Scheduling)의 일 예를 나타낸 도면이다. 도 1을 참조하면, 모듈 1은 파티션 1과 파티션 3으로 이루어지고, 파티션 1 및 파티션 3의 단위가 메이저 시간 프레임(MTF=300000)마다 반복되도록 설정된 것이다. 모듈 2는 파티션 2와 파티션 3으로 이루어지고, 파티션 2 및 파티션 3의 단위가 메이저 시간 프레임(MTF=400000)마다 반복되도록 설정된 것이다. 모듈 3은 파티션 1, 파티션 2, 및 파티션 3으로 이루어지고, 파티션 1, 파티션 2, 및 파티션 3의 단위가 메이저 시간 프레임(MTF=300000)마다 반복되도록 설정된 것이다.1 is a diagram showing an example of multiple module scheduling in ARINC 653. Referring to FIG. 1, module 1 is composed of partition 1 and partition 3, and units of partition 1 and partition 3 are set to be repeated every major time frame (MTF = 300000). Module 2 is composed of partition 2 and partition 3, and the unit of partition 2 and partition 3 is set to be repeated every major time frame (MTF = 400000). Module 3 is composed of partition 1, partition 2, and partition 3, and the unit of partition 1, partition 2, and partition 3 is set to repeat every major time frame (MTF = 300000).
여기서, 각 모듈의 파티션은 시간 및 공간적으로 분리된다. 여기서, 각 파티션이 시간적으로 분리된다는 것은 각 파티션의 실행 시간이 보장되는 것으로 각 파티션이 다른 파티션과 독립적이고 서로 간의 간섭이 최소화되는 것을 의미할 수 있다. 예를 들어, 모듈 1에서 파티션 1은 20000 시간 프레임 동안 실행 시간이 보장되고, 파티션 3은 파티션 1의 실행 시간 이후에 10000 시간 프레임 동안 실행 시간이 보장되는 것을 의미할 수 있다. Here, the partitions of each module are temporally and spatially separated. Here, that each partition is temporally separated means that the execution time of each partition is guaranteed, and each partition is independent of other partitions and interference with each other is minimized. For example, in module 1, partition 1 may have a guaranteed execution time for 20000 time frames, and partition 3 may mean that an execution time is guaranteed for 10000 time frames after the execution time of partition 1.
각 파티션이 공간적으로 분리된다는 것은 각 파티션에 할당된 리소스가 보장되는 것으로, 어떤 파티션에 할당된 리소스가 다른 파티션에 할당되지 않는 것을 의미할 수 있다. 이러한 시간 및 공간적 분리의 특성으로 인해 ARINC 653 기반의 운영 체제에서 안전성 및 신뢰성 등을 보장할 수 잇게 된다.The fact that each partition is spatially separated means that resources allocated to each partition are guaranteed, and resources allocated to one partition may not be allocated to other partitions. Due to the characteristics of such temporal and spatial separation, safety and reliability can be guaranteed in the ARINC 653-based operating system.
그리고, ARINC 653 기반의 운영 체제에서는, 안전성 및 신뢰성 등을 보장하기 위해 1개 이상의 모듈(예를 들어, 모듈 1 ~ 모듈 3)을 미리 구성 테이블에 기록한 다음 운영 체제의 동작을 수행하며, 구성 테이블에 미리 기록된 스케줄 이외에 다른 스케줄링의 변경은 불가능하다. And, in the ARINC 653-based operating system, one or more modules (eg, module 1 to module 3) are recorded in the configuration table in advance to ensure safety and reliability, and then the operation of the operating system is performed, and the configuration table It is impossible to change other scheduling other than the schedule recorded in advance.
즉, ARINC 653을 운영 체제로 하는 항공기에서는 운행 중 소프트웨어 오류가 발생하면 갑자기 엔진이 멈추거나 항공기 날개를 조절하지 못하는 등 매우 위험한 상황으로 이어질 수 있기 때문에, 각 모듈의 파티션을 시간 및 공간적으로 분리하여 정해진 시간에 정해진 동작의 수행을 보장하고, 정적 스케줄링을 사용하게 된다.In other words, in an aircraft with ARINC 653 as its operating system, if a software error occurs during operation, it can lead to very dangerous situations such as sudden engine stop or inability to control aircraft wings. It guarantees the execution of the specified operation at the specified time and uses static scheduling.
한편, 차량에는 AUTOSAR(AUTomotive Open System ARchitecture)(개방형 자동차 표준 소프트웨어 구조 개발 파트너쉽)에서 설립한 표준화된 플랫폼을 사용한다. AUTOSAR는 기본 소프트웨어를 설명하고 애플리케이션 인터페이스를 정의하며 표준화된 교환 형식을 기반으로 일반적인 개발 방법론을 구축하는 일련의 사양서(Specification)를 제공한다. Meanwhile, the vehicle uses a standardized platform established by AUTOSAR (AUTomotive Open System ARchitecture) (an open automotive standard software architecture development partnership). AUTOSAR provides a set of specifications that describe the underlying software, define application interfaces, and establish a common development methodology based on a standardized exchange format.
여기서, AUTOSAR 사양을 구현하여 사용하는 대부분의 운영 체제는 PC용 운용 체제(예를 들어, Linux)를 기반으로 하는데, 이런 운영 체제의 경우 사용자를 위한 일반적인 보안 체계를 갖추고는 있지만, 성능을 위해 정확성 및 신뢰성에 대해서는 어느 정도 타협을 하게 된다는 점에서 분리 커널과는 그 기반이 다르다.Here, most of the operating systems that implement and use the AUTOSAR specification are based on operating systems for PCs (e.g. Linux), which have general security mechanisms for users, but require accuracy for performance. It is different from the separate kernel in that it compromises to some extent on reliability and stability.
또한, AUTOSAR에서는 실행 관리자(Execution Manager : EM)가 응용 프로그램의 시작 및 종료를 관리하는데, 항공 표준과 자동차 표준의 실행 단위(파티션 또는 프로세스) 관리에는 큰 차이가 있다. ARINC 653에서는 앞에서 살펴본 바와 같이, 정적으로 파티션의 실행 관리가 이루어지는 반면, AUTOSAR의 실행 관리자(EM)는 동적으로 프로세스의 실행 관리를 수행한다. 즉, 차량의 경우 여러 세부 기능을 관리하기 위한 실행 단위의 수가 항공기 보다 훨씬 많고 상황에 따라 동적으로 프로그램 일정이 변경된다는 점에서 항공 표준의 실행 단위 관리와는 차이가 있다. In addition, in AUTOSAR, the execution manager (EM) manages the startup and shutdown of applications, and there is a big difference between the management of execution units (partitions or processes) between the aviation standard and the automotive standard. As discussed above, ARINC 653 statically manages partition execution, whereas AUTOSAR's Execution Manager (EM) dynamically manages process execution. That is, in the case of a vehicle, the number of execution units for managing various detailed functions is much greater than that of an aircraft, and the program schedule is dynamically changed depending on the situation, which is different from the execution unit management of the aviation standard.
여기서, ARINC 653을 차량의 운영 체제로 사용한다면 ARINC 653의 장점인 안전성 및 신뢰성을 얻을 수 있게 된다. 다만, ARINC 653의 실행 단위 관리는 정적으로 이루어지는 반면, AUTOSAR는 실행 단위 관리가 동적으로 이루어지므로, ARINC 653을 차량의 운영 체제로 적용하기 위해서는 실행 단위 관리를 동적으로 할 수 있는 방안이 요구된다.Here, if ARINC 653 is used as a vehicle operating system, safety and reliability, which are the advantages of ARINC 653, can be obtained. However, while execution unit management of ARINC 653 is performed statically, execution unit management is performed dynamically in AUTOSAR. Therefore, in order to apply ARINC 653 as a vehicle operating system, a method for dynamically managing execution unit is required.
본 발명은 ARINC 653을 차량의 운영 체제로 적용할 수 있는 차량용 운영 체제 시스템 및 이를 구비하는 차량을 제공하기 위한 것이다.An object of the present invention is to provide a vehicle operating system system that can apply ARINC 653 as a vehicle operating system and a vehicle having the same.
한편, 본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.On the other hand, the technical problems to be achieved in the present invention are not limited to the above-mentioned technical problems, and other technical problems that are not mentioned will become clear to those skilled in the art from the description below. You will be able to understand.
개시되는 일 실시예에 따른 차량용 운영 체제 시스템은, 차량에 탑재되는 ARINC(Avionics Application Standard Software Interface) 653 기반의 운영 체제; 상기 차량에 탑재되는 소프트웨어 아키텍처이고, 제1 형태의 실행 관리 스케줄을 생성하는 실행 관리자(Execution Manager)를 포함하는 AUTOSAR(AUTomotive Open System ARchitecture) 플랫폼; 및 상기 ARINC 653 기반의 운영 체제와 상기 AUTOSAR 플랫폼 간을 결합하고, 상기 제1 형태의 실행 관리 스케줄을 상기 ARINC 653 기반의 운영 체제에서 사용할 수 있는 제2 형태의 실행 관리 스케줄로 변환하는 변환 인터페이스를 포함한다.An operating system system for a vehicle according to an embodiment disclosed herein includes an operating system based on Avionics Application Standard Software Interface (ARINC) 653 mounted on a vehicle; An AUTOSAR (AUTomotive Open System ARchitecture) platform that is a software architecture mounted on the vehicle and includes an execution manager that generates a first type execution management schedule; and a conversion interface for combining the ARINC 653-based operating system and the AUTOSAR platform and converting the first-type execution management schedule into a second-type execution management schedule usable in the ARINC 653-based operating system. include
상기 실행 관리자는, 상기 차량에서 기 설정된 상황 이벤트가 발생하는 경우, 해당 상황에 대응하여 실행할 프로세스들을 선정하고, 선정된 프로세스들 간 의존성을 고려하여 각 프로세스들의 시작과 종료 순서를 지정함으로써 상기 제1 형태의 실행 관리 스케줄을 생성할 수 있다.The execution manager, when a preset situation event occurs in the vehicle, selects processes to be executed in response to the situation, and designates a start and end order of each process in consideration of dependencies between the selected processes, so that the first process You can create an execution management schedule of the form.
상기 변환 인터페이스는, 상기 제1 형태의 실행 관리 스케줄에서 프로세스 간 의존성 및 각 프로세스의 실행 시간에 기반하여 상기 제1 형태의 실행 관리 스케줄을 상기 제2 형태의 실행 관리 스케줄로 변환할 수 있다.The conversion interface may convert an execution management schedule of the first type into an execution management schedule of the second type based on dependencies between processes and an execution time of each process in the execution management schedule of the first type.
상기 변환 인터페이스는, 상기 프로세스 간 의존성 및 각 프로세스의 실행 시간에 기반하여 복수 개의 모듈을 생성하고, 상기 제2 형태의 실행 관리 스케줄은 상기 복수 개의 모듈을 포함하며, 상기 모듈은, 상기 제1 형태의 실행 관리 스케줄에 포함되는 프로세스들 간 실행 순서, 각 프로세스의 실행 시간, 및 해당 모듈의 반복 주기가 포함될 수 있다.The conversion interface generates a plurality of modules based on the dependencies between processes and the execution time of each process, the execution management schedule of the second type includes the plurality of modules, and the modules include the first type. An execution order among processes included in the execution management schedule of the , an execution time of each process, and a repetition cycle of the corresponding module may be included.
상기 프로세스 간 의존성은, 실행(Running) 의존성을 포함하고, 상기 변환 인터페이스는, 상기 제1 형태의 실행 관리 스케줄에서 제1 프로세스가 제2 프로세스에 대해 상기 실행 의존성 관계에 있는 경우, 상기 제1 형태의 실행 관리 스케줄 상의 상기 제2 프로세스의 실행 시작 명령에 대응하여 상기 제2 프로세스만을 포함하는 제1 모듈을 생성하고, 상기 제1 형태의 실행 관리 스케줄 상의 상기 제1 프로세스의 실행 시작 명령에 대응하여 상기 제2 프로세스 및 상기 제1 프로세스를 포함하는 제2 모듈을 생성하며, 상기 제1 모듈은, 상기 제2 프로세스의 실행 시간이 할당된 것이고, 상기 제2 모듈은, 상기 제2 프로세스와 상기 제1 프로세스 간의 실행 순서 및 상기 제2 프로세스와 상기 제1 프로세스의 각 실행 시간이 할당된 것이다.The inter-process dependency includes a running dependency, and the conversion interface is determined when the first process has the running dependency relationship with the second process in the execution management schedule of the first type. In response to the execution start command of the second process on the execution management schedule of, a first module including only the second process is created, and in response to the execution start command of the first process on the execution management schedule of the first type A second module including the second process and the first process is generated, the first module is allocated an execution time of the second process, and the second module includes the second process and the first module. An execution order between one process and an execution time of each of the second process and the first process are allocated.
상기 프로세스 간 의존성은, 종료(Terminated) 의존성을 포함하고, 상기 변환 인터페이스는, 상기 제1 형태의 실행 관리 스케줄에서 제1 프로세스가 제2 프로세스에 대해 상기 종료 의존성 관계에 있는 경우, 상기 제1 형태의 실행 관리 스케줄 상의 상기 제2 프로세스의 실행 시작 명령에 대응하여 상기 제2 프로세스만을 포함하는 제1 모듈을 생성하고, 상기 제1 형태의 실행 관리 스케줄 상의 상기 제2 프로세스의 종료 대기 명령에 대응하여 상기 제1 모듈을 유지시키며, 상기 제1 형태의 실행 관리 스케줄 상의 상기 제1 프로세스의 실행 시작 명령에 대응하여 상기 제1 프로세스만을 포함하는 제2 모듈을 생성하고, 상기 제1 모듈은, 상기 제2 프로세스의 실행 시간이 할당된 것이고, 상기 제2 모듈은, 상기 제1 프로세스의 실행 시간이 할당된 것일 수 있다.The inter-process dependencies include terminated dependencies, and the conversion interface is determined when the first process has the terminated dependency relationship with the second process in the execution management schedule of the first type. In response to an execution start command of the second process on the execution management schedule of, a first module including only the second process is created, and in response to an end wait command of the second process on the execution management schedule of the first type Maintains the first module, and generates a second module including only the first process in response to an execution start command of the first process on the execution management schedule of the first type, wherein the first module: Execution time of two processes may be allocated, and the second module may be allocated execution time of the first process.
상기 차량용 운영 체제 시스템은, 상기 변환 인터페이스에 의해 변환된 상기 제2 형태의 실행 관리 스케줄을 검증하는 검증 유닛을 더 포함할 수 있다.The vehicle operating system system may further include a verification unit that verifies the execution management schedule of the second type converted by the conversion interface.
상기 검증 유닛은, 상기 제2 형태의 실행 관리 스케줄에 포함된 각 모듈에 대해 해시값을 산출하고, 산출한 해시값과 기 저장된 해시값을 비교하여 상기 제2 형태의 실행 관리 스케줄 검증 과정의 오버헤드를 최소화할 수 있다.The verification unit calculates a hash value for each module included in the execution management schedule of the second type, compares the calculated hash value with a pre-stored hash value, and overwrites the verification process of the execution management schedule of the second type. heads can be minimized.
상기 기 저장된 해시값은, 이미 검증된 제2 형태의 실행 관리 스케줄에 포함된 모듈의 해시값이고, 상기 검증 유닛은, 상기 기 저장된 해시값들 중 상기 산출한 해시값과 동일한 해시값이 있는지 여부에 따라 검증을 수행할 수 있다.The pre-stored hash value is a hash value of a module included in the previously verified execution management schedule of the second type, and the verification unit determines whether there is a hash value identical to the calculated hash value among the pre-stored hash values. Verification can be performed according to
본 발명의 실시예에 따르면, AUTOSAR플랫폼에서 발생하는 동적 실행 관리 스케줄(의존성 기반의 프로세스에 대한 실행 관리 스케줄)을 ARINC 653 기반의 운영 체제에서 실행 가능한 모듈 형태의 실행 관리 스케줄로 변환하여 줌으로써, 차량에서도 ARINC 653 기반의 운영 체제를 적용하여 그에 따른 안전성 및 신뢰성을 확보하면서도 차량에서 수시로 발생하는 상황 이벤트에 따라 동적 실행 관리를 수행할 수 있게 된다.According to an embodiment of the present invention, by converting a dynamic execution management schedule (execution management schedule for a dependency-based process) generated in the AUTOSAR platform into a module-type execution management schedule executable in an ARINC 653-based operating system, the vehicle In addition, by applying the ARINC 653-based operating system, it is possible to perform dynamic execution management according to situational events that occur frequently in the vehicle while ensuring safety and reliability accordingly.
한편, 본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.On the other hand, the effects obtainable in the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.
도 1은 ARINC 653에서 다중 모듈 스케줄링(Multiple Module Scheduling)의 일 예를 나타낸 도면이고, 1 is a diagram showing an example of multiple module scheduling in ARINC 653;
도 2는 본 발명의 일 실시예에 따른 ARINC 653 기반의 차량용 운영 체제 시스템을 나타낸 블록도이며,2 is a block diagram showing an ARINC 653-based vehicle operating system system according to an embodiment of the present invention;
도 3은 본 발명의 일 실시예에서 기능 그룹(Function Group)의 상태를 나타낸 도면이고,3 is a diagram showing the state of a function group in one embodiment of the present invention;
도 4는 본 발명의 일 실시예에 따른 실행 관리자에 의해 생성된 실행 관리 스케줄에서 프로세스 간 의존성을 설명하기 위한 도면이며,4 is a diagram for explaining dependencies between processes in an execution management schedule generated by an execution manager according to an embodiment of the present invention;
도 5는 본 발명의 일 실시예에서 제1 형태의 실행 관리 스케줄을 제2 형태의 실행 관리 스케줄로 변환하는 상태를 개략적으로 나타낸 도면이고,5 is a diagram schematically showing a state in which a first type of execution management schedule is converted into a second type of execution management schedule in an embodiment of the present invention;
도 6 및 도 7은 본 발명의 일 실시예에 따른 제1 형태의 실행 관리 스케줄에서 프로세스 간 의존성에 따라 제2 형태의 실행 관리 스케줄로 변환하는 과정을 나타낸 도면이고,6 and 7 are views illustrating a process of converting a first type of execution management schedule into a second type of execution management schedule according to inter-process dependencies according to an embodiment of the present invention;
도 8은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.8 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in example embodiments.
이하, 본 발명의 실시 예를 첨부된 도면들을 참조하여 더욱 상세하게 설명한다. 본 발명의 실시 예는 여러 가지 형태로 변형할 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것으로 해석되어서는 안 된다. 본 실시 예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이다. 따라서 도면에서의 요소의 형상은 보다 명확한 설명을 강조하기 위해 과장되었다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Embodiments of the present invention may be modified in various forms, and the scope of the present invention should not be construed as being limited to the following examples. This embodiment is provided to more completely explain the present invention to those skilled in the art. Accordingly, the shapes of elements in the figures are exaggerated to emphasize clearer description.
본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시 예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명 시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다.The composition of the present invention for clarifying the solution to the problem to be solved by the present invention will be described in detail with reference to the accompanying drawings based on a preferred embodiment of the present invention, but the same reference numerals are assigned to the components of the drawings. For components, even if they are on other drawings, the same reference numerals have been given, and it is made clear in advance that components of other drawings can be cited if necessary in the description of the drawings.
도 2는 본 발명의 일 실시예에 따른 ARINC 653 기반의 차량용 운영 체제 시스템을 나타낸 블록도이다.2 is a block diagram illustrating an ARINC 653-based vehicle operating system system according to an embodiment of the present invention.
도 2를 참조하면, 차량용 운영 체제 시스템(100)은 AUTOSAR 플랫폼(102), 변환 인터페이스(104), 및 ARINC 653 기반의 운영 체제(106)를 포함한다.Referring to FIG. 2 , the vehicle operating system system 100 includes an AUTOSAR platform 102 , a conversion interface 104 , and an ARINC 653-based operating system 106 .
AUTOSAR 플랫폼(102)은 차량에 탑재되는 표준화된 소프트웨어 아키텍쳐이다. AUTOSAR 플랫폼(102)은 어댑티브 플랫폼(Adaptive Platform)일 수 있으나, 이에 한정되는 것은 아니며 클래식 플랫폼(Classic Platform)일 수도 있다.The AUTOSAR platform 102 is a standardized software architecture mounted on vehicles. The AUTOSAR platform 102 may be an adaptive platform, but is not limited thereto and may be a classic platform.
AUTOSAR 플랫폼(102)은 실행 관리자(Execution Manager : EM)(102a)를 포함한다. 그 이외에 AUTOSAR 플랫폼(102)의 구조는 기 공지된 기술이므로 이에 대한 자세한 설명은 생략하기로 한다. The AUTOSAR platform 102 includes an Execution Manager (EM) 102a. In addition, since the structure of the AUTOSAR platform 102 is a known technology, a detailed description thereof will be omitted.
실행 관리자(102a)는 차량용 운영 체제 시스템(100)이 탑재된 차량의 기 설정된 각 상황에서 실행해야 할 프로세스들을 관리할 수 있다. 이때, 실행 관리자(102a)는 복수 개의 기능 그룹(Function Group)을 관리한다.The execution manager 102a may manage processes to be executed in each preset situation of a vehicle equipped with the vehicle OS system 100 . At this time, the execution manager 102a manages a plurality of function groups.
여기서, 기능 그룹은 차량의 특정 기능에 관련된 프로세스(즉, 파티션)의 집합을 의미할 수 있다.Here, the function group may mean a set of processes (ie, partitions) related to a specific function of the vehicle.
프로세스 또는 파티션은 특정 기능과 관련된 실행 단위로서, 본 명세서에서 동일한 의미로 사용될 수 있다. 부연 설명하면, AUTOSAR에서는 실행 단위를 프로세스라 하고, ARINC 653에서는 실행 단위를 파티션이라고 지칭하는 바, 본 명세서에서 이 둘은 동일한 의미(즉, 실행 단위)로 사용될 수 있다. A process or partition is an execution unit related to a specific function, and may be used with the same meaning in this specification. To elaborate, in AUTOSAR, an execution unit is referred to as a process, and in ARINC 653, an execution unit is referred to as a partition. In this specification, the two may be used interchangeably (ie, execution unit).
예를 들어, 기능 그룹 A(FG_A)는 모터를 관리하는 프로세스들의 집합일 수 있고, 기능 그룹 B(FG_B)는 네비게이션을 관리하는 프로세스들의 집합일 수 있으며, 기능 그룹 C(FG_C)는 브레이크를 관리하는 프로세스들의 집합일 수 있다. For example, functional group A (FG_A) may be a set of processes managing motors, functional group B (FG_B) may be a set of processes managing navigation, and function group C (FG_C) may be managing brakes. It may be a set of processes that
그리고, 각 기능 그룹은 여러 상태를 가질 수 있다. 도 3에 도시된 바와 같이, 모터를 관리하는 프로세스들의 집합인 기능 그룹 A(FG_A)는 동작(Startup) 및 멈춤(Off)과 같은 상태를 가질 수 있다. 그리고, 네비게이션을 관리하는 프로세스들의 집합인 기능 그룹 B(FG_B)는 비활성화, 실행, 및 업데이트와 같은 상태를 가질 수 있다. 또한, 각 기능 그룹은 각 상태에서 실행되어야 하는 프로세스들이 기 설정되어 있다.And, each functional group can have several states. As shown in FIG. 3 , a functional group A (FG_A), which is a set of processes managing motors, may have states such as startup and off. In addition, functional group B (FG_B), which is a set of processes managing navigation, may have states such as inactivation, execution, and update. Also, for each function group, processes to be executed in each state are preset.
도 3을 참조하면, 기능 그룹 A(FG_A)는 동작(Startup) 상태에서 프로세스 P2, P3, P4가 실행되도록 설정되어 있고, 멈춤(Off) 상태에서 프로세스 P1이 실행되도록 설정될 수 있다. Referring to FIG. 3 , functional group A (FG_A) may be configured to execute processes P2, P3, and P4 in a startup state and process P1 to be executed in an off state.
실행 관리자(102a)는 차량에서 기 설정된 상황 이벤트가 발생하는 경우, 해당 상황에 대응하여 실행할 프로세스들을 선정하고, 선정된 프로세스들 간 의존성을 고려하여 각 프로세스들의 시작과 종료 순서를 지정함으로써 실행 관리 스케줄을 생성할 수 있다.When a preset situation event occurs in the vehicle, the execution manager 102a selects processes to be executed in response to the situation and designates the start and end order of each process in consideration of dependencies between the selected processes, thereby managing an execution management schedule. can create
즉, AUTOSAR 플랫폼(102)의 실행 관리자(102a)는 차량의 기 설정된 상황 이벤트마다 동적으로 실행 관리 스케줄을 생성할 수 있다. 이때, 실행 관리 스케줄에는 하나 이상의 기능 그룹이 포함될 수 있으며, 각 기능 그룹은 특정 시간에 특정 상태를 가질 수 있다.That is, the execution manager 102a of the AUTOSAR platform 102 may dynamically create an execution management schedule for each preset situation event of the vehicle. In this case, one or more functional groups may be included in the execution management schedule, and each functional group may have a specific state at a specific time.
이러한 실행 관리 스케줄에서 각 프로세스의 실행 조건은 프로세스 간 의존성에 달려 있다.In this execution management schedule, the execution condition of each process depends on dependencies between processes.
여기서, 프로세스 간 의존성은 실행(Running) 및 종료(Terminated)의 2가지 종류가 있다. 실행(Running) 의존성은 해당 프로세스가 의존하는 프로세스가 실행된 후 해당 프로세스가 실행되는 것을 의미할 수 있다.Here, there are two types of dependencies between processes: Running and Terminated. Running dependency may mean that a corresponding process is executed after the process on which the corresponding process depends is executed.
종료(Terminated) 의존성은 해당 프로세스가 의존하는 프로세스가 종료된 후 해당 프로세스가 실행되는 것을 의미할 수 있다. 프로세스 간 의존성에 대한 정보는 애플리케이션 매니페스트(Application Manifest) 파일에 저장되어 있다. Terminated dependencies may mean that a corresponding process is executed after the process on which the corresponding process depends is terminated. Information about dependencies between processes is stored in the Application Manifest file.
도 4는 본 발명의 일 실시예에 따른 실행 관리자(102a)에 의해 생성된 실행 관리 스케줄에서 프로세스 간 의존성을 설명하기 위한 도면이다.4 is a diagram for explaining dependencies between processes in an execution management schedule generated by an execution manager 102a according to an embodiment of the present invention.
도 4에서, 기능 그룹 A(FG_A)의 Startup 상태를 살펴보면, 프로세스 4(P4)는 프로세스 2(P2)와 실행 의존성 관계에 있고, 프로세스 2(P2)는 프로세스 3(P3)과 종료 의존성 관계에 있다. 이 경우, 프로세스 4(P4)는 프로세스 2(P2)가 실행된 후 실행될 수 있다. 그리고, 프로세스 2(P2)는 프로세스 3(P3)이 종료된 후 실행될 수 있다. 4, looking at the Startup state of functional group A (FG_A), process 4 (P4) has an execution dependency relationship with process 2 (P2), and process 2 (P2) has a termination dependency relationship with process 3 (P3). there is. In this case, process 4 (P4) may be executed after process 2 (P2) is executed. Also, process 2 (P2) may be executed after process 3 (P3) is terminated.
변환 인터페이스(104)는 AUTOSAR 플랫폼(102)과 ARINC 653 기반의 운영 체제(106) 간 인터페이스 역할을 수행할 수 있다.The conversion interface 104 may serve as an interface between the AUTOSAR platform 102 and the ARINC 653-based operating system 106.
변환 인터페이스(104)는 실행 관리자(102a)로부터 실행 관리자(102a)가 생성한 실행 관리 스케줄을 수신하고, 이를 모듈 형태의 실행 관리 스케줄로 변환하여 ARINC 653 기반의 운영 체제(106)로 전달할 수 있다. The conversion interface 104 may receive an execution management schedule created by the execution manager 102a from the execution manager 102a, convert it into a module-type execution management schedule, and transmit it to the ARINC 653-based operating system 106. .
즉, 실행 관리자(102a)가 생성한 실행 관리 스케줄은 AUTOSAR 플랫폼(102)에서 생성된 것으로 의존성 기반의 프로세스 실행 관리이므로, 이를 ARINC 653 기반의 운영 체제(106)에서 사용할 수 있는 모듈 형태의 실행 관리 스케줄로 변환하여야 한다.That is, since the execution management schedule created by the execution manager 102a is created in the AUTOSAR platform 102 and is dependency-based process execution management, it is a module-type execution management that can be used in the ARINC 653-based operating system 106. Convert to schedule.
이하에서, 실행 관리자(102a)에 의해 생성된 실행 관리 스케줄을 제1 형태의 실행 관리 스케줄이라 지칭할 수 있다. 또한, 모듈 형태의 실행 관리 스케줄을 제2 형태의 실행 관리 스케줄이라 지칭할 수 있다.Hereinafter, the execution management schedule generated by the execution manager 102a may be referred to as a first type execution management schedule. In addition, the module type execution management schedule may be referred to as a second type execution management schedule.
이에, 변환 인터페이스(104)는 제1 형태의 실행 관리 스케줄을 제2 형태의 실행 관리 스케줄로 변환한 후 ARINC 653 기반의 운영 체제(106)로 전달할 수 있다. 이에 따라, 차량용 운영 체제 시스템(100)의 실행 중에도 동적으로 실행 관리 스케줄을 업데이트 할 수 있게 된다. Accordingly, the conversion interface 104 may convert the execution management schedule of the first type into the execution management schedule of the second type, and then transfer the conversion to the ARINC 653-based operating system 106 . Accordingly, it is possible to dynamically update the execution management schedule even while the vehicle OS system 100 is running.
변환 인터페이스(104)는 제1 형태의 실행 관리 스케줄에서 프로세스 간 의존성 및 각 프로세스의 실행 시간에 기반하여 제1 형태의 실행 관리 스케줄을 제2 형태의 실행 관리 스케줄로 변환할 수 있다.The conversion interface 104 may convert the execution management schedule of the first type into the execution management schedule of the second type based on the dependency between processes and the execution time of each process in the execution management schedule of the first type.
도 5는 본 발명의 일 실시예에서 제1 형태의 실행 관리 스케줄을 제2 형태의 실행 관리 스케줄로 변환하는 상태를 개략적으로 나타낸 도면이다. 5 is a diagram schematically illustrating a state in which a first type of execution management schedule is converted into a second type of execution management schedule in an embodiment of the present invention.
여기서, 모듈은 ARINC 653 기반의 운영 체제(106)에서 특정 기능을 실행하도록 하는 실행 정보들의 집합으로, 하나 이상의 파티션을 포함할 수 있다.Here, a module is a set of execution information for executing a specific function in the ARINC 653-based operating system 106, and may include one or more partitions.
또한, 모듈에는 제1 형태의 실행 관리 스케줄에 포함되는 프로세스들 간의 실행 순서, 각 프로세스의 실행 시간, 및 해당 모듈의 반복 주기 등이 포함될 수 있다.In addition, the module may include an execution order among processes included in the execution management schedule of the first type, an execution time of each process, and a repetition cycle of the corresponding module.
도 6 및 도 7은 본 발명의 일 실시예에 따른 제1 형태의 실행 관리 스케줄에서 프로세스 간 의존성에 따라 제2 형태의 실행 관리 스케줄로 변환하는 과정을 나타낸 도면이다. 6 and 7 are diagrams illustrating a process of converting a first type of execution management schedule into a second type of execution management schedule according to dependencies between processes according to an embodiment of the present invention.
도 6을 참조하면, 제1 형태의 실행 관리 스케줄에서 기능 그룹 A(FG_A)의 프로세스 3(P3)이 프로세스 1(P1)과 실행 의존성 관계에 있다고 가정한다. 이 경우, 변환 인터페이스(104)는 제1 형태의 실행 관리 스케줄 상의 프로세스 1(P1)의 실행 시작 명령(start(P1))에 대응하여 제1 모듈(M1)을 생성할 수 있다.Referring to FIG. 6 , it is assumed that process 3 (P3) of functional group A (FG_A) has an execution dependency relationship with process 1 (P1) in the first type of execution management schedule. In this case, the conversion interface 104 may generate the first module M1 in response to the execution start command (start(P1)) of the process 1 (P1) on the execution management schedule of the first form.
제1 모듈(M1)은 기능 그룹 A(FG_A)의 프로세스 1(P1)(즉, 파티션 1)만을 포함하며, 프로세스 1(P1)에 대한 실행 시간이 할당된 것일 수 있다. The first module M1 may include only process 1 (P1) (ie, partition 1) of functional group A (FG_A), and the execution time for process 1 (P1) may be allocated.
다음으로, 변환 인터페이스(104)는 제1 형태의 실행 관리 스케줄 상의 프로세스 3(P3)의 실행 시작 명령(start(P3))에 대응하여 제2 모듈(M2)을 생성할 수 있다.Next, the conversion interface 104 may generate the second module M2 in response to the execution start command (start(P3)) of the process 3 (P3) on the first type of execution management schedule.
제2 모듈(M2)은 기능 그룹 A(FG_A)의 프로세스 1(P1)(즉, 파티션 1) 및 프로세스 3(P3)(즉, 파티션 3)을 포함하며, 프로세스 1(P1)과 프로세스 3(P3)의 실행 순서와 각 프로세스의 실행 시간이 할당된 것일 수 있다. 이때, 변환 인터페이스(104)는 프로세스 1(P1)의 총 실행 시간을 제1 모듈(M1)과 제2 모듈(M2)에 분할하여 할당할 수 있다.The second module M2 includes process 1 (P1) (ie, partition 1) and process 3 (P3) (ie, partition 3) of functional group A (FG_A), and process 1 (P1) and process 3 ( The execution order of P3) and the execution time of each process may be allocated. At this time, the conversion interface 104 may divide and allocate the total execution time of the process 1 (P1) to the first module (M1) and the second module (M2).
이와 같이, 변환 인터페이스(104)는 제1 형태의 실행 관리 스케줄을 제1 모듈(M1) 및 제2 모듈(M2)을 포함하는 제2 형태의 실행 관리 스케줄로 변환할 수 있다.In this way, the conversion interface 104 may convert the first type of execution management schedule into a second type of execution management schedule including the first module M1 and the second module M2.
ARINC 653 기반의 운영 체제(106)에서 제2 형태의 실행 관리 스케줄이 실행 될 때는, 제1 모듈(M1)이 실행되다가 제2 모듈(M2)로 변경되어 실행되게 된다. 이때, 제1 모듈(M1)이 실행될 때는 기능 그룹 A(FG_A)의 프로세스 1(P1)만 실행되고, 모듈이 제2 모듈(M2)로 변경되면 기능 그룹 A(FG_A)의 프로세스 1(P1)과 프로세스 3(P3)이 반복되며 실행되게 된다.When the second type of execution management schedule is executed in the ARINC 653-based operating system 106, the first module M1 is executed and then changed to the second module M2 to be executed. At this time, when the first module (M1) is executed, only process 1 (P1) of functional group A (FG_A) is executed, and when the module is changed to the second module (M2), process 1 (P1) of functional group A (FG_A) and process 3 (P3) are repeated and executed.
도 7을 참조하면, 제1 형태의 실행 관리 스케줄에서 기능 그룹 B(FG_B)의 프로세스 3(P3)이 프로세스 2(P2)와 종료 의존성 관계에 있다고 가정한다.Referring to FIG. 7 , it is assumed that process 3 (P3) of functional group B (FG_B) has a termination dependency relationship with process 2 (P2) in the first type of execution management schedule.
이 경우, 변환 인터페이스(104)는 제1 형태의 실행 관리 스케줄 상의 기능 그룹 B(FG_B)의 프로세스 2(P2)의 실행 시작 명령(start(P2))에 대응하여 제1 모듈(M1)을 생성할 수 있다.In this case, the conversion interface 104 generates the first module M1 in response to the execution start command (start(P2)) of the process 2 (P2) of the functional group B (FG_B) on the execution management schedule of the first form. can do.
제1 모듈(M1)은 기능 그룹 B(FG_B)의 프로세스 2(P2)만을 포함하며, 프로세스 2(P2)에 대한 실행 시간이 할당된 것일 수 있다. The first module (M1) may include only process 2 (P2) of functional group B (FG_B), and execution time for process 2 (P2) may be allocated.
다음으로, 변환 인터페이스(104)는 기능 그룹 B(FG_B)의 프로세스 2(P2) 종료 대기 명령(wait(P2))에 대응하여 제1 모듈(M1)을 유지시킨다. 즉, 변환 인터페이스(104)는 프로세스 2(P2)의 실행이 종료될 때까지 모듈의 변경 없이 제1 모듈(M1)을 유지시킬 수 있다. Next, the conversion interface 104 maintains the first module M1 in response to the process 2 (P2) end wait command (wait(P2)) of the functional group B (FG_B). That is, the conversion interface 104 may maintain the first module M1 without changing the module until the execution of the process 2 (P2) ends.
다음으로, 변환 인터페이스(104)는 기능 그룹 B(FG_B)의 프로세스 3(P3)의 실행 시작 명령(start(P3))에 대응하여 제2 모듈(M2)을 생성할 수 있다.Next, the conversion interface 104 may generate the second module M2 in response to the execution start command (start(P3)) of the process 3 (P3) of the functional group B (FG_B).
제2 모듈(M2)은 기능 그룹 B(FG_B)의 프로세스 3(P3)만을 포함하며, 프로세스 3(P3)에 대한 실행 시간이 할당된 것일 수 있다. The second module M2 may include only the process 3 (P3) of the functional group B (FG_B), and the execution time for the process 3 (P3) may be allocated.
한편, ARINC 653 기반의 운영 체제(106)에서 제2 형태의 실행 관리 스케줄이 실행될 때, 제1 모듈(M1)이 실행되다가 기능 그룹 B(FG_B)의 프로세스 2(P2)가 종료되면, 제2 모듈(M2)로 모듈이 변경되어 실행되게 된다.Meanwhile, when the second type of execution management schedule is executed in the ARINC 653-based operating system 106, when the first module (M1) is executed and the process 2 (P2) of the functional group B (FG_B) is terminated, the second The module is changed to module M2 and executed.
다시 도 2를 참조하면, ARINC 653 기반의 운영 체제(106)는 차량에 탑재되는 각 하드웨어를 제어하고 응용 소프트웨어를 위한 기반 환경을 제공하며, 차량 내 컴퓨팅 자원을 관리할 수 있다.Referring back to FIG. 2 , the ARINC 653-based operating system 106 can control each hardware installed in a vehicle, provide a base environment for application software, and manage computing resources in the vehicle.
ARINC 653 기반의 운영 체제(106)는 변환 인터페이스(104)로부터 제2 형태의 실행 관리 스케줄을 수신할 수 있다. ARINC 653 기반의 운영 체제(106)는 제2 형태의 실행 관리 스케줄을 검증하기 위한 검증 유닛(106a)을 포함할 수 있다.The ARINC 653-based operating system 106 may receive the second type of execution management schedule from the conversion interface 104 . The ARINC 653-based operating system 106 may include a verification unit 106a for verifying the execution management schedule of the second type.
즉, 변환 인터페이스(104)로부터 수신한 제2 형태의 실행 관리 스케줄은 실행 관리자(102a)로부터 생성되는 동적 실행 관리 스케줄이기 때문에, 이를 바로 실행하게 되면 ARINC 653 기반의 운영 체제(106)의 안전성 및 신뢰성을 보장하기 어려워질 수 있다. 이에 개시되는 실시예에서는 검증 유닛(106a)을 통해 변환 인터페이스(104)로부터 수신한 제2 형태의 실행 관리 스케줄을 검증할 수 있다.That is, since the second type of execution management schedule received from the conversion interface 104 is a dynamic execution management schedule generated from the execution manager 102a, if it is immediately executed, the safety and stability of the ARINC 653-based operating system 106 Reliability can be difficult to ensure. In the embodiment disclosed herein, the execution management schedule of the second type received from the conversion interface 104 may be verified through the verification unit 106a.
구체적으로, 검증 유닛(106a)은 제2 형태의 실행 관리 스케줄에 포함된 각 모듈에 대해 해시(hash)값을 산출할 수 있다.Specifically, the verification unit 106a may calculate a hash value for each module included in the execution management schedule of the second form.
즉, 검증 유닛(106a)은 제2 형태의 실행 관리 스케줄에 포함된 각 모듈을 해시 함수(hash function)에 입력하여 해시(hash) 값을 산출할 수 있다.That is, the verification unit 106a may calculate a hash value by inputting each module included in the execution management schedule of the second type to a hash function.
검증 유닛(106a)은 산출한 해시값을 기 저장된 해시값들과 비교할 수 있다. 여기서, 기 저장된 해시값들은 이미 검증된 제2 형태의 실행 관리 스케줄에 포함된 모듈의 해시값들일 수 있다.The verification unit 106a may compare the calculated hash value with pre-stored hash values. Here, the pre-stored hash values may be hash values of modules included in the previously verified execution management schedule of the second type.
검증 유닛(106a)은 기 저장된 해시값들 중에서 상기 산출한 해시값과 동일한 해시값이 있는지 여부를 통해 상기 수신한 제2 형태의 실행 관리 스케줄을 검증할 수 있다.The verification unit 106a may verify the received execution management schedule of the second type through whether there is a hash value identical to the calculated hash value among pre-stored hash values.
검증 유닛(106a)은 기 저장된 해시값들 중에서 상기 산출한 해시값과 동일한 해시값이 없는 경우, 상기 수신한 제2 형태의 실행 관리 스케줄이 아직 검증이 완료되지 않은 것으로 판단할 수 있다. 이때, 검증 유닛(106a)은 해당 제2 형태의 실행 관리 스케줄의 안정성 및 신뢰성을 검증하고, 검증이 완료되면 해당 해시값을 저장할 수 있다. 이후, 저장된 해당 해시값이 산출되는 제2 형태의 실행 관리 스케줄의 경우에는 추가적인 검증이 없더라도 검증이 완료된 것으로 볼 수 있다.If there is no hash value identical to the calculated hash value among pre-stored hash values, the verification unit 106a may determine that the received execution management schedule of the second type has not yet been verified. At this time, the verification unit 106a verifies the stability and reliability of the execution management schedule of the second type, and stores the hash value when the verification is completed. Thereafter, in the case of the second type of execution management schedule in which the stored hash value is calculated, verification may be regarded as complete even without additional verification.
즉, 검증 유닛(106a)은 기 저장된 해시값들 중에서 상기 산출한 해시값과 동일한 해시값이 있는 경우, 상기 수신한 제2 형태의 실행 관리 스케줄이 이미 검증이 완료된 것으로 판단할 수 있다. 이 경우, ARINC 653 기반의 운영 체제(106)는 제2 형태의 실행 관리 스케줄을 구성 테이블에 추가하여 실행할 수 있다.That is, if there is a hash value identical to the calculated hash value among pre-stored hash values, the verification unit 106a may determine that the received execution management schedule of the second type has already been verified. In this case, the ARINC 653-based operating system 106 can execute the execution management schedule of the second type by adding it to the configuration table.
이처럼 개시된 실시예에 의하면 이미 검증된 제2 형태의 실행 관리 스케줄에 대해서는 추가적인 검증을 수행하지 않으므로, 제2 형태의 실행 관리 스케줄이 생성될 때마다 본격적인 검증을 거치지 않아도 된다. 결과적으로, 개시된 실시예에 의하면 제1 형태의 실행 관리 스케줄을 제2 형태의 실행 관리 스케줄로 변환하는 과정에서 검증에 소요되는 시간을 줄여서 변환 속도를 향상할 수 있다.According to the disclosed embodiment, since additional verification is not performed on the previously verified execution management schedule of the second type, it is not necessary to undergo full-scale verification each time the execution management schedule of the second type is generated. As a result, according to the disclosed embodiment, in the process of converting the execution management schedule of the first type into the execution management schedule of the second type, the conversion speed can be improved by reducing the time required for verification.
개시되는 실시예에 의하면, AUATSAR 플랫폼(102)에서 발생하는 동적 실행 관리 스케줄(의존성 기반의 프로세스에 대한 실행 관리 스케줄)을 ARINC 653 기반의 운영 체제(106)에서 실행 가능한 모듈 형태의 실행 관리 스케줄로 변환하여 줌으로써, 차량에서도 ARINC 653 기반의 운영 체제(106)를 적용하여 그에 따른 안전성 및 신뢰성을 확보하면서도 차량에서 수시로 발생하는 상황 이벤트에 따라 동적 실행 관리를 수행할 수 있게 된다.According to the disclosed embodiment, the dynamic execution management schedule (execution management schedule for a dependency-based process) generated in the AUATSAR platform 102 is converted into a module-type execution management schedule executable in the ARINC 653-based operating system 106. By converting, it is possible to apply the ARINC 653-based operating system 106 to the vehicle to secure safety and reliability and perform dynamic execution management according to situational events that frequently occur in the vehicle.
도 8은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다.8 is a block diagram illustrating and describing a computing environment 10 including a computing device suitable for use in example embodiments.
도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 차량용 운용 체제 시스템(100)일 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be vehicle operating system system 100 .
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다. Computing device 12 includes at least one processor 14 , a computer readable storage medium 16 and a communication bus 18 . Processor 14 may cause computing device 12 to operate according to the above-mentioned example embodiments. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16 . The one or more programs may include one or more computer-executable instructions, which when executed by processor 14 are configured to cause computing device 12 to perform operations in accordance with an illustrative embodiment. It can be.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. Program 20 stored on computer readable storage medium 16 includes a set of instructions executable by processor 14 . In one embodiment, computer readable storage medium 16 includes memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other forms of storage media that can be accessed by computing device 12 and store desired information, or any suitable combination thereof.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다. Communications bus 18 interconnects various other components of computing device 12, including processor 14 and computer-readable storage medium 16.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다. Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . An input/output interface 22 and a network communication interface 26 are connected to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output devices 24 include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or a photographing device. input devices, and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 24 may be included inside the computing device 12 as a component constituting the computing device 12, or may be connected to the computing device 12 as a separate device distinct from the computing device 12. may be
이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내어 설명하는 것이며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위내에서 변경 또는 수정이 가능하다. 저술한 실시예는 본 발명의 기술적 사상을 구현하기 위한 최선의 상태를 설명하는 것이며, 본 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.The above detailed description is illustrative of the present invention. In addition, the foregoing is intended to illustrate and describe preferred embodiments of the present invention, and the present invention can be used in various other combinations, modifications, and environments. That is, changes or modifications are possible within the scope of the concept of the invention disclosed in this specification, within the scope equivalent to the written disclosure and / or within the scope of skill or knowledge in the art. The written embodiment describes the best state for implementing the technical idea of the present invention, and various changes required in the specific application field and use of the present invention are also possible. Therefore, the above detailed description of the invention is not intended to limit the invention to the disclosed embodiments. Also, the appended claims should be construed to cover other embodiments as well.

Claims (10)

  1. 차량에 탑재되는 ARINC(Avionics Application Standard Software Interface) 653 기반의 운영 체제;ARINC (Avionics Application Standard Software Interface) 653-based operating system mounted on vehicles;
    상기 차량에 탑재되는 소프트웨어 아키텍처이고, 제1 형태의 실행 관리 스케줄을 생성하는 실행 관리자(Execution Manager)를 포함하는 AUTOSAR(AUTomotive Open System ARchitecture) 플랫폼; 및An AUTOSAR (AUTomotive Open System ARchitecture) platform that is a software architecture mounted on the vehicle and includes an execution manager that generates a first type execution management schedule; and
    상기 ARINC 653 기반의 운영 체제와 상기 AUTOSAR 플랫폼 간을 인터페이스하고, 상기 제1 형태의 실행 관리 스케줄을 상기 ARINC 653 기반의 운영 체제에서 사용할 수 있는 제2 형태의 실행 관리 스케줄로 변환하는 변환 인터페이스를 포함하는, 차량용 운영 체제 시스템.Includes a conversion interface that interfaces between the ARINC 653-based operating system and the AUTOSAR platform and converts the first-type execution management schedule into a second-type execution management schedule usable in the ARINC 653-based operating system , an operating system system for vehicles.
  2. 청구항 1에 있어서,The method of claim 1,
    상기 실행 관리자는,The execution manager,
    상기 차량에서 기 설정된 상황 이벤트가 발생하는 경우, 해당 상황에 대응하여 실행할 프로세스들을 선정하고, 선정된 프로세스들 간 의존성을 고려하여 각 프로세스들의 시작과 종료 순서를 지정함으로써 상기 제1 형태의 실행 관리 스케줄을 생성하는, 차량용 운영 체제 시스템.When a predetermined situation event occurs in the vehicle, processes to be executed in response to the situation are selected, and the start and end order of each process is designated in consideration of dependencies between the selected processes, thereby managing the first type of execution management schedule. , operating system system for vehicles.
  3. 청구항 2에 있어서,The method of claim 2,
    상기 변환 인터페이스는,The conversion interface is
    상기 제1 형태의 실행 관리 스케줄에서 프로세스 간 의존성 및 각 프로세스의 실행 시간에 기반하여 상기 제1 형태의 실행 관리 스케줄을 상기 제2 형태의 실행 관리 스케줄로 변환하는, 차량용 운영 체제 시스템.A vehicle operating system system that converts an execution management schedule of the first type into an execution management schedule of the second type based on dependencies between processes and an execution time of each process in the execution management schedule of the first type.
  4. 청구항 3에 있어서,The method of claim 3,
    상기 변환 인터페이스는,The conversion interface is
    상기 프로세스 간 의존성 및 각 프로세스의 실행 시간에 기반하여 복수 개의 모듈을 생성하고, 상기 제2 형태의 실행 관리 스케줄은 상기 복수 개의 모듈을 포함하며,A plurality of modules are generated based on the dependencies between the processes and the execution time of each process, and the execution management schedule of the second type includes the plurality of modules;
    상기 모듈은, 상기 제1 형태의 실행 관리 스케줄에 포함되는 프로세스들 간 실행 순서, 각 프로세스의 실행 시간, 및 해당 모듈의 반복 주기가 포함되는, 차량용 운영 체제 시스템.The module includes an execution order among processes included in the execution management schedule of the first form, an execution time of each process, and a repetition period of the corresponding module.
  5. 청구항 4에 있어서,The method of claim 4,
    상기 프로세스 간 의존성은, 실행(Running) 의존성을 포함하고,The inter-process dependency includes a running dependency,
    상기 변환 인터페이스는,The conversion interface is
    상기 제1 형태의 실행 관리 스케줄에서 제1 프로세스가 제2 프로세스에 대해 상기 실행 의존성 관계에 있는 경우,In the execution management schedule of the first form, when the first process is in the execution dependency relationship with the second process,
    상기 제1 형태의 실행 관리 스케줄 상의 상기 제2 프로세스의 실행 시작 명령에 대응하여 상기 제2 프로세스만을 포함하는 제1 모듈을 생성하고,Creating a first module including only the second process in response to an execution start command of the second process on the first type of execution management schedule;
    상기 제1 형태의 실행 관리 스케줄 상의 상기 제1 프로세스의 실행 시작 명령에 대응하여 상기 제2 프로세스 및 상기 제1 프로세스를 포함하는 제2 모듈을 생성하며,Creating a second module including the second process and the first process in response to an execution start command of the first process on the execution management schedule of the first form;
    상기 제1 모듈은, 상기 제2 프로세스의 실행 시간이 할당된 것이고,The first module is assigned the execution time of the second process,
    상기 제2 모듈은, 상기 제2 프로세스와 상기 제1 프로세스 간의 실행 순서 및 상기 제2 프로세스와 상기 제1 프로세스의 각 실행 시간이 할당된 것이며,In the second module, an execution order between the second process and the first process and an execution time of the second process and the first process are allocated,
    상기 제2 프로세스의 총 실행 시간은 상기 제1 모듈과 상기 제2 모듈에 분할하여 할당하는, 차량용 운영 체제 시스템.The vehicle operating system system of claim 1 , wherein the total execution time of the second process is divided and allocated to the first module and the second module.
  6. 청구항 4에 있어서, The method of claim 4,
    상기 프로세스 간 의존성은, 종료(Terminated) 의존성을 포함하고, The inter-process dependencies include terminated dependencies,
    상기 변환 인터페이스는, The conversion interface is
    상기 제1 형태의 실행 관리 스케줄에서 제1 프로세스가 제2 프로세스에 대해 상기 종료 의존성 관계에 있는 경우, In the execution management schedule of the first form, when the first process is in the termination dependency relationship with the second process,
    상기 제1 형태의 실행 관리 스케줄 상의 상기 제2 프로세스의 실행 시작 명령에 대응하여 상기 제2 프로세스만을 포함하는 제1 모듈을 생성하고, Creating a first module including only the second process in response to an execution start command of the second process on the first type of execution management schedule;
    상기 제1 형태의 실행 관리 스케줄 상의 상기 제2 프로세스의 종료 대기 명령에 대응하여 상기 제1 모듈을 유지시키며, Maintaining the first module in response to an end wait command of the second process on the execution management schedule of the first form;
    상기 제1 형태의 실행 관리 스케줄 상의 상기 제1 프로세스의 실행 시작 명령에 대응하여 상기 제1 프로세스만을 포함하는 제2 모듈을 생성하고, Creating a second module including only the first process in response to an execution start command of the first process on the execution management schedule of the first form;
    상기 제1 모듈은, 상기 제2 프로세스의 실행 시간이 할당된 것이고,The first module is assigned the execution time of the second process,
    상기 제2 모듈은, 상기 제1 프로세스의 실행 시간이 할당된 것인, 차량용 운영 체제 시스템.The second module is one to which the execution time of the first process is allocated.
  7. 청구항 1에 있어서, The method of claim 1,
    상기 차량용 운영 체제 시스템은, The vehicle operating system system,
    상기 변환 인터페이스에 의해 변환된 상기 제2 형태의 실행 관리 스케줄을 검증하는 검증 유닛을 더 포함하는, 차량용 운영 체제 시스템.and a verification unit that verifies the execution management schedule of the second type converted by the conversion interface.
  8. 청구항 7에 있어서, The method of claim 7,
    상기 검증 유닛은, The verification unit,
    상기 제2 형태의 실행 관리 스케줄에 포함된 각 모듈에 대해 해시값을 산출하고, 산출한 해시값과 기 저장된 해시값을 비교하여 상기 제2 형태의 실행 관리 스케줄을 검증하는, 차량용 운영 체제 시스템.A vehicle operating system system that calculates a hash value for each module included in the second type of execution management schedule and compares the calculated hash value with a pre-stored hash value to verify the second type of execution management schedule.
  9. 청구항 8에 있어서, The method of claim 8,
    상기 기 저장된 해시값은, 이미 검증된 제2 형태의 실행 관리 스케줄에 포함된 모듈의 해시값이고, The pre-stored hash value is a hash value of a module included in the previously verified execution management schedule of the second type,
    상기 검증 유닛은, The verification unit,
    상기 기 저장된 해시값들 중 상기 산출한 해시값과 동일한 해시값이 있는지 여부에 따라 검증을 수행하는, 차량용 운영 체제 시스템.The vehicle operating system system that performs verification according to whether there is a hash value identical to the calculated hash value among the pre-stored hash values.
  10. 청구항 1에 기재된 차량용 운영 체제 시스템을 구비하는 차량.A vehicle having the vehicle operating system system according to claim 1 .
PCT/KR2021/019705 2021-12-02 2021-12-23 Application method of arinc-based operating system for vehicle platform WO2023101094A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210170764A KR102630359B1 (en) 2021-12-02 2021-12-02 Method for applying arinc-based operating system on vehicle platform
KR10-2021-0170764 2021-12-02

Publications (1)

Publication Number Publication Date
WO2023101094A1 true WO2023101094A1 (en) 2023-06-08

Family

ID=86612513

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/019705 WO2023101094A1 (en) 2021-12-02 2021-12-23 Application method of arinc-based operating system for vehicle platform

Country Status (2)

Country Link
KR (1) KR102630359B1 (en)
WO (1) WO2023101094A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110045722A (en) * 2009-10-27 2011-05-04 한국전자통신연구원 Apparatus and method of a gateway for connecting an autosar platform system to most platform system
KR20130117049A (en) * 2012-04-17 2013-10-25 한국전자통신연구원 Method and appratus for setting aeronautic system compatible with the arinc 653 standard
KR20190142841A (en) * 2018-06-19 2019-12-30 주식회사 한글과컴퓨터 Apparatus for generating electronic document defined in open document format in consideration of compatibility with electronic document defined in non-open document format and operating method thereof
KR20210065300A (en) * 2019-11-27 2021-06-04 주식회사 알티스트 Method and apparatus for generating automatically setup code of application software baesed autosar

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010001596A1 (en) * 2010-02-04 2011-08-04 Robert Bosch GmbH, 70469 Method for operating a time-controlled bus system
KR101967450B1 (en) 2017-10-30 2019-04-09 현대오트론 주식회사 Autosar platform and method for handling gateway

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110045722A (en) * 2009-10-27 2011-05-04 한국전자통신연구원 Apparatus and method of a gateway for connecting an autosar platform system to most platform system
KR20130117049A (en) * 2012-04-17 2013-10-25 한국전자통신연구원 Method and appratus for setting aeronautic system compatible with the arinc 653 standard
KR20190142841A (en) * 2018-06-19 2019-12-30 주식회사 한글과컴퓨터 Apparatus for generating electronic document defined in open document format in consideration of compatibility with electronic document defined in non-open document format and operating method thereof
KR20210065300A (en) * 2019-11-27 2021-06-04 주식회사 알티스트 Method and apparatus for generating automatically setup code of application software baesed autosar

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SONG, JISEOK ET AL.: "Development of AUTOSAR file converter and ECU Auto-Configuration Tool by exploiting open-source technologies", KSAE 2014 ANNUAL CONFERENCE AND EXHIBITIO, November 2014 (2014-11-01), pages 767 - 773, XP009546789 *

Also Published As

Publication number Publication date
KR20230082876A (en) 2023-06-09
KR102630359B1 (en) 2024-01-29

Similar Documents

Publication Publication Date Title
WO2021107179A1 (en) Method and device for automatic generation of setting code of autosar-based application software
WO2017030252A1 (en) Security check method for container image and device therefor
US4695945A (en) Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor
US6138200A (en) System for allocating bus bandwidth by assigning priority for each bus duration time slot to application using bus frame and bus duration
EP0321723A2 (en) Apparatus for a data processing system having a peer relationship among a plurality of central processing units
US11403148B2 (en) Virtual electronic control units in autosar
WO2011053038A2 (en) Method and system for processing data for preventing deadlock
WO2012005637A1 (en) Method for configuring a distributed avionics control system
US20110289511A1 (en) Symmetric Multi-Processor System
WO2016064158A1 (en) Reconfigurable processor and operation method therefor
Leiner et al. A comparison of partitioning operating systems for integrated systems
WO2021107183A1 (en) Autosar-based software design method and device for performing same
WO2023101094A1 (en) Application method of arinc-based operating system for vehicle platform
WO2015130093A1 (en) Method and apparatus for preventing bank conflict in memory
US7334163B1 (en) Duplicating handles of target processes without having debug privileges
WO2019203573A1 (en) Method and apparatus for managing kernel services in multi-core system
WO2022163983A1 (en) Device control method and apparatus based on vehicle virtualization structure
US6259532B1 (en) Method and apparatus for communicating with a plurality of peripheral devices through a single parallel port
US20060259290A1 (en) Method and system for ASIC simulation
Dutertre et al. A model of noninterference for integrating mixed-criticality software components
WO2021020746A1 (en) Apparatus and method for managing virtual machine
WO2023085514A1 (en) High-performance cloud separation operation method using board type computing nodes, and system therefor
WO2018088588A1 (en) Host-based system and method for analyzing vulnerabilities in cloud computing environment
WO2023127997A1 (en) Device and method for automatically generating health monitoring configuration code in arinc operating system for vehicle platform
WO2023121104A1 (en) Interrupt handling method for linux kernel

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21966520

Country of ref document: EP

Kind code of ref document: A1