• Tidak ada hasil yang ditemukan

Lesson 4. 임베디드 시스템 (Embedded System)

N/A
N/A
Protected

Academic year: 2023

Membagikan "Lesson 4. 임베디드 시스템 (Embedded System)"

Copied!
19
0
0

Teks penuh

(1)

Lesson 4. 임베디드 시스템 (Embedded System)

13 장의 강의 목표

임베디드 시스템의 개념과 특성에 대해서 이해한다

.

임베디드 운영체제의 요구사항과 특성에 대해서 이해한다

.

임베디드 운영체제인

eCOS

TinyOS

에 대해서 살펴보고

,

임베디드 운영체제 설계에 대한 두 가지 다른 접근 방식을

이해한다

.

(2)

목 차

13.1

임베디드 시스템

13.2

임베디드 운영체제의 특성

13.3 eCOS

13.4 TinyOS

임베디드시스템 3

13.1 임베디드 시스템

특정 목적을 위해 설계된 하드웨어 및 소프트웨어

컴퓨터 하드웨어와 소프트웨어, 그리고 추가의 기계적 장치나 다 른 부분들로 이루어진 복합품으로, 특정 기능에 전용으로 사용되 도록 설계됨

시스템이 동작하는 환경과 밀접히 연관됨

임베디드 시스템의 수는 범용 컴퓨터의 수보다 월등하게 많다.

임베디드 시스템의 요구사항 및 제약조건

다양한 비용 제약조건 복합적인 품질 요구 사항 생명 주기의 범위가 넓음

(3)

임베디드 시스템과 그 제품 시장의 예

임베디드시스템 5 13.1 임베디드 시스템

일반적인 임베디드 시스템의 구조

13.1 임베디드 시스템

외부와 상호작용할 수 있는 다양한 인터페이스가 존재 진단 포트를 이용해 개발 컴퓨터와 연결됨

– FPGA / ASIC 등이 성능이나 안전성을 높이기 위해 사용됨 소프트웨어는 보통 고정된 함수이고, 응용에 특화되어 있다.

(4)

13.2 임베디드 운영체제의 특성

실시간

(real-time)

작업

계산 결과의 정확성이 그 결과 산출 시점에 의해서도 결정

실시간 제약조건은 외부 I/O나 제어안정성 요구조건에 의해 도출

반응성(reactive) 작업

임베디드 소프트웨어는 외부 이벤트에 반응하여 동작

임베디드 소프트웨어에서는 최악의 경우에 대한 조건을 고려하여 수행 루틴들의 우선순위를 결정해야 함.

구성 용이성

(configurability)

다양한 임베디드 시스템에서 사용되어야 하는 임베디드 운영체제 는 유연한 구성이 가능해야 함

특별한 응용과 하드웨어에서 필요로 하는 기능만을 제공할 수도 있어야 함.

임베디드시스템 7

임베디드 운영체제의 특성 ( 계속 )

I/O

장치의 유연성

임베디드 시스템 별로 지원해야 할I/O 장치의 범위는 매우 크다.

간결한 보호 기법

테스트되지 않은 프로그램이 추가되는 경우가 거의 없음 임베디드 시스템은 제한된 보호 기법만으로도 OK.

응용에 의한 인터럽트의 직접적 사용

임베디드 시스템은 철저히 테스트된 것으로 간주될 수 있고, 운영 체제나 응용 코드의 수정은 적으며,

보호가 필요 없고,

다양한 장치에 대한 효율적인 제어가 필요하기 때문이다.

13.2 임베디드 운영체제의 특성

(5)

임베디드 운영체제 개발 방법

기존 상용 운영체제의 적용

상용 운영체제에 실시간성 추가, 필요한 기능 추가, 불필요한 기능 삭제 등을 통해 임베디드용 운영체제 버전으로 사용

예: Embedded Linux 장점

익숙한 인터페이스를 기반으로 하기 때문에, 이식이 용이하다 단점

실시간 임베디드 응용에 최적화되어 있지 않다

충분한 성능을 얻기 위해서는 매우 많은 수정이 필요할 수 있다. 예) Android, iOS

임베디드시스템 9 13.2 임베디드 운영체제의 특성

임베디드 운영체제 개발 방법 ( 계속 )

특수 목적 임베디드 운영체제의 개발

특수 목적에 맞는 임베디드 운영체제를 별도로 개발 장점

실시간 임베디드 응용에 최적화되어 있다. 단점

인터페이스가 익숙하지 않고, 이식(porting)이 어렵다.

13.2 임베디드 운영체제의 특성

(6)

13.3 eCos

Embedded Configurable Operating Systems (eCos)

고성능 소형 임베디드 시스템용 운영체제

오픈 소스

저작권료가 없음

실시간 운영체제

다양한 처리기 플랫폼 상에 구현

– Intel IA32, PowerPC, SPARC, ARM, CalmRISC, MIPS, NEC V8xx 등

임베디드시스템 11

구성 용이성

eCos

의 구성 도구

다양한 기능의 제공

필요한 컴포넌트의 선택/해제 가능

13.3 eCos

(7)

eCos 구성 도구

임베디드시스템 13 13.3 eCos

eCos 구성 도구 커널 구성

13.3 eCos

(8)

eCos 응용 바이너리 적재 과정

임베디드시스템 15 13.3 eCos

Cross-Compile

방식으로 이루어짐

eCos 컴포넌트

13.3 eCos

eCos

계층 구조

최소의 노력으로 서로 다른 아키텍처와 플랫폼에 이식이 가능하 도록 하기 위해

(9)

eCos 컴포넌트 - 하드웨어 추상 계층 (HAL)

상위 계층에 일관적인

API

를 제공

각 하드웨어 플랫폼마다 구현이 다름

: HAL_ENABLE_INTERRUPTS

임베디드시스템 17 13.3 eCos

eCos 컴포넌트 - HAL 모듈

아키텍처

처리기 계열의 종류를 정의한다. 이 모듈은 처리기 시동, 인터럽트 전 달, 문맥 교환, 그리고 해당 처리기 계열의 명령 집합 아키텍처의 고 유한 다른 기능에 필요한 코드들을 포함하고 있다.

변형(Variant)

처리기 계열에 속하는 특정 처리기의 특징을 지원한다.

예: 메모리 관리 장치(MMU: Memory Management Unit)

플랫폼

인터럽트 처리기와 타이머 장치와 같은 밀결합(tightly coupled) 주변 장치를 지원하도록HAL을 확장한다.

선택된 처리기 아키텍처와 변형을 포함하는 플랫폼 또는 보드(board) 를 정의한다.

시동, 칩 선택 구성, 인터럽트 제어기, 타이머 장치 등을 위한 코드들 을 포함한다.

13.3 eCos

(10)

eCos 컴포넌트 - eCos 커널

짧은 인터럽트 지연

인터럽트에 반응하여 ISR 수행을 시작하는 데 걸리는 시간.

짧은 태스크 전환 지연

쓰레드가 사용가능 해 진 후 실제 수행이 시작될 때까지의 시간.

작은 메모리 점유

모든 컴포넌트가 필요에 따라 메모리를 구성하게 함으로써 프로 그램과 데이터를 위한 메모리 자원을 최소화.

확정적(deterministic) 동작

수행의 모든 면에 있어 커널의 성능은 실시간 응용의 요구사항을 만족시킬 수 있고, 예측 가능해야 한다.

임베디드시스템 19 13.3 eCos

eCos 커널에 포함되지 않는 기능

메모리 할당

독립된 패키지에 의해 처리된다

장치 드라이버

독립적 패키지

13.3 eCos

(11)

eCos 컴포넌트 - eCos I/O 시스템

디바이스 드라이버를 지원하기 위한 프레임워크

목표

불필요한 소프트웨어 계층이나 관계없는 기능이 없는 효율성

장치 드라이버와 다른 상위 계층 소프트웨어는 그것이 적 절한 경우

HAL

위에 직접 구현될 수도 있다

임베디드시스템 21 13.3 eCos

eCos 인터럽트 처리 모델

인터럽트 서비스 루틴

(ISR: Interrupt Service Routine)

하드웨어 인터럽트에 반응하여 호출된다.

– HAL은 인터럽트가 발생한 하드웨어를 알아내고 연결된 인터럽트

객체의 ISR을 호출한다.

지연 서비스 루틴

(DSR: Deferred Service Routine)

– ISR의 요청에 반응하여 호출된다.

– DSR은 스케줄러를 방해하지 않고 안전하게 수행할 수 있을 경우 에 호출됨

쓰레드

(Thread)

드라이버의 클라이언트이다.

쓰레드는 모든 API 호출이 가능하고 특히 뮤텍스(mutex)와 조건 변수 (conditional variable)에 대하여 대기하는 것이 허용된다.

13.3 eCos

(12)

eCos 컴포넌트 - eCos 스케줄러

두 가지 스케줄러 중 택일

비트맵(bitmap) 스케줄러와 다단계(multilevel) 큐 스케줄러 두 가지 중 하나의 스케줄러를 제공하도록 구성될 수 있다.

스케줄러 선택

비트맵 스케줄러

임의 시점에서 활성화될 수 있는 적은 수의 쓰레드를 가진 시스템에 효율적인 스케줄러

다단계 큐 스케줄러

쓰레드의 수가 동적으로 변화하거나 같은 우선순위 수준에 여러 쓰 레드를 가지는 것이 바람직한 경우에 적당

시분할이 요구되는 경우에도 필요

임베디드시스템 23 13.3 eCos

eCos 컴포넌트 - eCos 스케줄러

13.3 eCos

eCos

비트맵 스케줄러

(13)

임베디드시스템 25

eCos

다단계 큐 스케줄러

eCos 컴포넌트 - eCos 스케줄러

13.3 eCos

eCos 쓰레드 동기화

뮤텍스

(mutex)

세마포어

(semaphore)

조건변수

(conditional variables)

이벤트 플래그

(event flags)

메일 박스

(mail boxes)

스핀락

(spinlock)

– SMP 시스템에서 유용

13.3 eCos

(14)

13.4 TinyOS

TinyOS이다.

코드 크기가400 바이트 내외로 초소형 컴포넌트 기반 운영체제

주변장치에 의존적인 인터럽트 처리

TinyOS이 아니다.

실시간 운영체제가 아님 커널이 아님

TinyOS가 없다.

메모리 보호가 없음 프로세스가 없음 메모리 할당이 없음 블록킹이 없음

ÎTinyOS는 무선 센서 네트워크 노드를 위한 운영체제이다.

임베디드시스템 27

무선 센서 네트워크

13.4 TinyOS

(15)

TinyOS 의 목표

높은 수준의 병행성 허용

수 개의 서로 다른 데이터 흐름이 동시에 움직일 수 있어야 한다.

제한된 자원을 가지고 동작

대개 플랫폼은 저사양 하드웨어일 것임.

가용한 처리기와 메모리 자원을 효율적으로 이용해야만 하며, 저전력 통신이 가능해야 한다.

하드웨어 발전에 적응

하드웨어에 맞추어 커널 코드 업그레이드가 가능해야 한다.

넓은 범위의 응용을 지원

모듈화된 범용 임베디드 운영체제가 바람직

표준화된 접근 방법으로 응용을 개발할 수 있어야 함

여러 종류의 플랫폼을 지원

견고성 (robustness) 이 있어야 함

중복성, 높은 모듈화, 표준 소프트웨어 컴포넌트 사용

임베디드시스템 29 13.4 TinyOS

TinyOS 구성요소

컴포넌트

간단한 태스크 혹은 태스크 집합을 수행

제한되고 잘 정의된 방법으로 컴포넌트 및 하드웨어와 인터페이 스 한다.

– TinyOS의 모든 컴포넌트는 같은 구성을 가짐

13.4 TinyOS

(16)

컴포넌트와 구성의 예

: TimerC

구성

임베디드시스템 31 13.4 TinyOS

컴포넌트 구조

태스크

소프트웨어 컴포넌트는 하나 이상의 태스크를 구현 컴포넌트 내에서 태스크는 원자적

태스크는 이벤트에 의해 선점이 가능

계산을 수행하고 아래 수준 컴포넌트 (명령) 를 호출하고, 위 수준 이벤트 시그널을 보내고, 다른 태스크들을 스케줄할 수 있다.

명령

서비스를 수행하기 위한 아래 수준 컴포넌트에 대한 요청

명령은 호출 컴포넌트로 즉시 복귀하며, 차후에 완료를 알리기 위 한 이벤트가 호출 컴포넌트에 전달된다

이벤트

13.4 TinyOS

(17)

TinyOS 스케줄러

스케줄러는 하나의 분리된 컴포넌트임

모든 컴포넌트를 대상으로 동작

한 순간에는 오직 하나의 태스크만 수행 가능

간단한

FIFO

큐로 구현

임베디드시스템 33 13.4 TinyOS

TinyOS 응용의 예

13.4 TinyOS

(18)

TinyOS 자원 인터페이스

전용 (Dedicated)

하부시스템이 항상 배타적인 접근을 필요로 하는 자원. 이 부류의 자 원들은 자원을 사용을 요구하는 컴포넌트가 오직 하나뿐이므로 공유 정책이 필요 없다.

예: 인터럽트, 카운터

가상 (Virtualized)

가상 자원의 모든 클라이언트는 마치 전용 자원인 것처럼 상호작용하 며, 모든 가상 인스턴스는 단일한 하부 자원 위에서 다중화

(multiplexed)된다. 가상 추상은 하부 자원이 상호배제에 의해 보호될 필요가 없을 때 사용될 수 있다.

예: 클록, 타이머

공유 (Shared)

공유 자원 추상은 중재자(arbiter) 컴포넌트를 통해 전용 자원에 대한 접근을 제공한다. 중재자는 상호배제를 강제하고, 한 순간에 오직 한

사용자(클라이언트라고 불림)만 자원에 접근할 수 있도록 하며 클라

이언트가 자원을 락할 수 있도록 한다.

임베디드시스템 35 13.4 TinyOS

공유 자원 구성

13.4 TinyOS

(19)

요 약

임베디드 시스템

임베디드 시스템의 요구사항, 제약조건, 특성

eCos 임베디드 운영체제

구성도구, 컴포넌트, 스케줄러, 동기화

TinyOS

임베디드 운영체제

– TinyOS의 목표, 구성요소, 스케줄러, 자원 인터페이스

임베디드시스템 37

Referensi

Dokumen terkait