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

image

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관계와 같다!

Tags: ,

Categories:

Updated: