1) OSEK/VDX 개요
- OSEK는 OS가 아닌 표준 스펙이다.
- Real Time 임베디드 시스템을 제작하기 위해 고안해냄
- OSEK는 독일계통 차량 회사에서 만들었고 VDX는 프랑스계통 차량회사가 만들어 내서 둘이 합쳐서 하나의 표준스펙이 되었다.
- 이를 근간으로 해서 OSEK RTOS OS가 만들어 짐.
2) OSEK 목적
- 재사용성과 이식성을 높이기 위함
- 이전에 차량 제조사별로 중구난방식으로 제작해서 표준화된 인터페이스를 만들었어야 함.
- 용이한 확장성
- 디버깅 및 에러체크
- Figure1-1에서 module1, 2, 3을 각각 하나의 task 및 process라고 볼 수 있다.
- OSEK operation system에 ERIKA, EB, Vector와 같은 OSEK OS kernal이 들어간다.
3) OSEK 빌드
- OSEK OS의 설정파일인 .oil파일과 각 모듈의 소스코드(.c .cpp .h)를 하나로 묶어 컴파일하여 실행파일을 만든다.
- OIL file + source code ⇒ compiler ⇒ 실행파일
- 위의 실행파일을 타겟보드(ECU, MCU)로 전송할 수 있으며 이는 어떤 하드웨어든지 상관없이 Flash할 수 있도록 하는 것이 목적이다.
- 이를 통해 하드웨어가 바뀌면 코드 변경이 없으며 이식성이 좋은 장점이 있다.
4) OSEK processing level
- task : 사용자가 정의한 process(GPOS에서의 일반적인 process라고 생각해도 된다.)
- 우선순위 : “인터럽트 레벨 - 스케줄링에 의한 작업 - 일반 task” ⇒ 우선순위 기반 스케줄링
- 인터럽트 레벨에서도 OS의 개입이 없는 하드웨어 인터럽트가 가장 우선순위가 높고 다음으로 OS가 사용되는 인터럽트가 따른다.
- 인터럽트 및 여러개의 task의 우선순위도 개발자가 직접 지정해야 한다.
- 규칙
- 인터럽트의 우선순위가 가장 높다.
- 인터럽트 및 task는 처음 설계할때 고정이 되며 우선순위 또한 바뀌지 않는다.
- 숫자가 높을수록 우선순위가 높다.
- 개발자가 직접 우선순위를 지정한다.
5) OSEK의 객체
- task : 추상화된 프로세싱(연산)의 기본 단위
- Event : Task 동기화를 위한 운영체제 객체
- Interrupt : 예외 및 I/O처리를 위해 하드웨어 수준에서 신호를 처리하기 위한 객체
- Alarm : 시간의 흐름에 따라 interrupt를 발생시키는 객체
- Resource : 여러 task의 공유 자원 접근 시 동기화를 위한 객체(프로세스 동기화)
- Hook : 특정한 상황에서 호출되어 운영체제가 추가적인 작업을 할 수 있도록 지원하는 객체
'OSEK ⁄ VDX' 카테고리의 다른 글
OSEK Real-Time OS : 특징2(Event, Alarm, Hook) 및 실습 (0) | 2023.07.17 |
---|---|
OSEK Real-Time OS : 특징1(Task, 스케줄링, 인터럽트) (0) | 2023.07.16 |
범용운영체제 (0) | 2023.07.16 |