Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Nnnnnnnnn

AUTOSAR OS-1 본문

AUTOSAR

AUTOSAR OS-1

와이제인 2018. 1. 31. 09:59

AUTOSA OS


 Priority based kernel for embbeded applicaitons. e.g. POSIX, OSE, VxWorks, OSEK, QNK

 

 OS의 큰 네가지 특징은 process 관리, memory관리, device관리, file 관리이다. Micro-kernel은 process 관리 영역이고, Task와 Interrupt 관리라고 할 수 있다.



Process, Task, Thread


 

 Process는 예를 들어, windows에서 엑셀과 워드를 실행했을 때 같은 엑셀을 또 실행할 수 있다. 이는 memory에 두 copy가 실행된 것이다. copy에 대해 코드는 서로 같을지라도 data는 별도이다. 즉 메모리는 공유하지 않는다. 그래서 동기화에 문제가 없고 별도의 address space를 갖는다. 그런데 만약 두 프로세스가 서로 정보를 주고받으려는 경우, IPC문제의 가능성(Inter Process Communication)이 있을 수 있다. 프로세스가 만들어지면 pid가 생성된다. 만약, process switch가 일어나면 기존의 레지스터 복원 등을 위한 save가 필요하다. 저장된 영역으로 다시 돌아오기 위해, process control block(PCB)이 필요하다.

 

 각 프로세스 address space에는 heap, stack, static area가 있다. heap은 malloc이나 calloc 같이 pointer에 의해서 잡히는 영역이다. static은 global 변수 영역이다. stack은 함수 하나하나가 실행될때(로컬변수) 잡히고 끝나면 없어지는 영역이다. heap, stack, static 외에도 task control을 위한 커널이 address space에 존재한다. (kernel for thread)


 Main함수에서 micro kernel API를 통해 Activate(task1)를 하면 하나의 thread가 만들어진다. 여러개의 task가 있을때, process switch처럼 각 task에 대한 thread switching을 위한 thread control block이 존재한다.(해당 task save를 위해.) 멀티스레딩시 stack은 save되지만 static은 save되지않는다. 그래서 C에서 local 변수에 대한 동기화는 신경쓰지 않아도 된다.

 

 Thread가 실행되는 순서에 따라 최종값이 바뀔 수 있다. task가 여러 개 만들어지면 멀티스레딩이 일어나고, 이 때문에 문제발생 가능성이 있다. 그래서 global 변수 영역은 동기화 시켜줘야 한다. 즉 일을 마칠때까지 다른 스레드를 실행시키지않는 critical section을 만들어줘야한다. 

 

 Task는 스레드가 만들 수 있는 단위라고 생각하면 된다. 일반함수의 경우 그냥 호출할 수 있으나, Task는 Activate thread로 호출한다. kernel이 있어야만 멀티스레딩 관리가 가능하다.

 

 일반 OS는 위에 상주해서 프로그램이 돌지만, Micro kernel은 내가 프로그램을 만들면 그 속에 kernel OS가 있다. 처음에 main에서 실행하고, task가 만들어지면 스레드들이 돌기 시작해서 그때부터 thread control을 kernel이 관리한다. AUTOSAR는 이 커널에 대한 표준을 만들었는데, 이것이 AUTOSAR OS이다.

 


OSEK은 자동차 ecu전용 OS이다. OSEK의 철학을 간단히 살펴보면 다음과 같다.

 


 System philosophy

 

 Standardised interfaces

 Scalability(확장성) - 같은 OS라도 OS자체의 크기가 달라진다. 이는 OSEK Builder로 configuration 되면(OIL), 

 이에 따라 kernel이 만들어지는 것이다.

 일반 OS와 다른점은 I/O가 OS를 거치지않고 직접 module에 접근 가능하다.

 OS는 모든게 static해야하며, 사전에 모든 것이 예측 가능해야 한다.

 

 

 

'AUTOSAR' 카테고리의 다른 글

AUTOSAR OS-2  (0) 2018.01.31
Communication Specifications  (0) 2018.01.24
RTE & Internal behavior  (0) 2018.01.24
MDE  (0) 2018.01.17
AUTOSAR SW Architecture  (0) 2018.01.17