OSEK/VDX 운영체제 1
RTOS란?
실시간 운영체제(Real Time Operation System)란 실시간성을 가진 운영체제를 뜻하며, 주어진 문제를 해결하기 위해 정해진 시간내에 처리하는 운영체제. 정해진 시간 내에 처리하지 못하면 문제가 발생한다.
Requirements on RTOS (Real-Time Operation System)
- Determinism
- 똑같은 상태에서 똑같은 일이 벌어지면 똑같은 결과가 나온다 (Deterministic 하다)
- Responsiveness
- Fast process/thread switch
- Fast interrupt response
- Support for concurrency and real-time
- Multi-tasking
- Real-time ( 시간을 control 할 수 있어야함, 일반적인 linux/window는 작업이 특정시간안에 끝난다는 보장이 없음 )
- Synchronization
- User control over OS policies
- Mainly scheduling, many priority levels
- Memory support (especially embedded)
- 즉, Application programmer가 control 할 수 있다
- Controlled code size
Existing 4 categories of RTOS
- Priority based kernel for embedded applications
- e.g. POSIX, VxWorks, OSEK, QNX
- Real Time Extensions of existing time-sharing OS
- e.g. Real time Linux
- Research Real Time Kernels
- Run-Time Systems (compiler)
- multi-threading 기능을 언어자체가 제공해 줌
Micro-kernel 이란?
OS의 process (thread 형식만) 만 가져와서 구현한 것
Interrupt, Exception handling, Time services, Scheduling
- thread scheduling이 핵심
Process vs Thread vs Task
Process
- 실행되고 있는 프로그램
-
운영체제가 관리하는 실행 단위
- Process 간에는 서로 Address가 다름, 병렬처리 가능
Thread
- 프로세스에서 실행 제어만 분리한 실행 단위 (Process의 작업단위를 세분화 한 것)
-
프로그램 내에서 실행되는 흐름의 단위
- 같은 process내에서는 memory를 공유함 (stack 영역은 공유하지 않음)
- Global variable은 공유하기 때문에 Synchronization Problem이 발생할 가능성이 있다.
Task
- 각 Thread의 실행 sequence가 만들어지는 시작 포인트를 구성해 줄 수 있는 단위 (thread의 시작 포인트를 규정하는 것)
- Thread 시작 포인트 = Task (thread를 시작시킬 수 있는 단위작업)
- 1개의 Task로 부터 여러개의 thread 생성 가능
Program 과 Process의 관계는 Task와 Thread관계와 같다!