Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

임베디드 운영체제

발표파일
by

현주 김

on 15 November 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 임베디드 운영체제

노영은 김현주 윤미래 12장 임베디드 운영체제 1.개요 임베디드 시스템이란?
일반적으로 사람의 간섭 없이 독자적 기능을 수행할 수 있는 시스템으로 하드웨어와 소프트웨어로 구성되어 있다.
임베디드 시스템의 정의란?
인터페이스로 키보드, 모니터, 시리얼 통신, 큰 저장 매체 등의 장비들을 모두 포함하고 있는 것은 아니며, 이들중 시스템에 필요한 용도의 인터페이스만을 제공 한다. 때때로 실시간 응답이 요구 되기도 한다. 마이프로세서가 내장되어 있고 그 마이크로 시스템을 구동하여 특정한 기능을 수행하도록 프로그램이 내장된 시스템을 가리키는것이다. 임베디드 H/W : 마이크로 프로세서, 컨트롤러,메모리,I/O,네트워크
임베디드 S/W : 커널, 디바이스 드라이버, 시스템 S/W, 응용 S/W ,
네트워크 응용 등 임베디드 시스템의 구성요소 2.임베디드 시스템의 예 기술의 발전에 따라 일반 가전제품에 다양한 기능이 요구됨
다양한 기능의처리를위한 가전제품 전용 임베디드 시스템 적용
가정 내 네트워크 구성에 따른 원격 제어, 정보 수집 등이 가능
홈 오토메이션, 홈 네트워킹과 함께 가정 자동화의 한 부분
인터넷 냉장고, HDTV, 인터넷 전자레인지, DVR, 세탁기 등 (1) 정보가전 (2) 가정 자동화 집 안의 모든 것들을리모컨 하나로 제어하는 것이 목표
현재는 리모컨이 아닌 웹 패드, 음성인식 등을 이용한 제어로 발전 중임
네트워크에 연결되고 각종 자동화 기능 및 기기별 특정 기능을 수행하도록 임베디드 시스템이 탑재되어 있음. (3) 공장 자동화 인간이 아닌 특정 기계나 장비를 통해 생산 과정을자동적으로 관리하는 시스템
센서와 제어 시스템, 로봇 등으로 구성하여 무인 시스템을구축
공장 자동화 및 로봇은 실시간 시스템과 임베디드 시스템 발전의 원동력이 됨
생산성 증대 : 인건비감소, 오류 감소, 품질의균일화, 생산기간 단축 (4) 정보단말기기 단순한 통화기능의이동 전화기에서 각종 정보검색, 오락, 메시징 등의 복합 기능이 수행되는 디지털 정보 단말기기로 발전
단말기기 각각의 기능에 맞는 마이크로프로세서, 메모리, 운영체제, 응용 프로그램 등으로 구성
앞으로는 다양한 단말기기가 하나의기기로 통합될 것으로 예상됨 (5) 항공기, 우주왕복선 항공기 : 보통 수백 개의프로세서 탑재
우주 왕복선
Pathfinder- 실시간 운영체제인 VxWorks가 탑재된 것으로 유명
대표적인 실시간 시스템의 하나
영상처리,통신 등 모든 처리기능을 복합적으로 가짐 자동차, 비행기, 우주왕복서느 군사용 무기 시스템, 사무기기등 모든 영역 전자관련 기기에 임베디드 시스템을 탑재하고 있으며 발전 속도와 적용분야는 더 빨라지고 넓어짐 (6)교통, 지능형 장난감 교통 : 자동차의 엔진및 각종 제어 시스템, 무인자동화 시스템
▶ 지능형 교통 시스템(ITS(intelligent Transport Systems)등
▶ 지능형 장난감 : 단순한 장난감의 형태에서 지능성을 갖는 형태로 변화 (7) 게임기 고성능 프로세스 탑재
마이크로소프트의 Xbox
소니의 playstaion 2
닌텐도 게임보이 어드벤스
▶32-Bit ARM 프로세서
▶2.9인치 TFT 스크린
▶32,768 색상을 지원하는휴대형 게임장치 (8) 물류/금융/사무용 기기 물류/금융
▶물류: POS 단말기
사무용 기기
▶프린터, 스캐너,팩스, 복사기, 이들의기능을하나로 모은 복합기 등 (9) 통신 기기 디지털 교환기, PABX 등의 음성 서비스 통신 기기
라우터, 게이트웨이, 공유기 등의 유무선 데이터 통신 장비
Set-top box 1) 임베디드 시스템 하드웨어 구성 3. 임베디드 시스템 구성 (1) 프로세서 프로세서는 임베디드 시스템의 제일 중요한 부분으로서 반도체 회사에서 각각 많은 종류의 제품들을 시판하고 있다.
프로세서의 속도는 수 MHz에서 수백 MHz의 클럭 속도를 가지며 데이터 버스의 크기와 기본 연산의 단위에 따라서 비트, 16비트, 32비트, 64비트 단위로 선택한다. (2) 메모리 임베디드 시스템의 메모리의 선택은 운영체제와 응용 소프트웨어에 따라 사용하게 될 메모리의 종류 및 크기를 선택하며 주요 역할은 프로그램과 데이터를 저장한다.
-ROM: 비휘발성 메모리로 전원이 차단된 경우에도 메모리의 프로그램 또는 데이터가 없어지면 안 되는 경우에 사용한다.
-RAM: 큰 용량의 프로그램이나 데이터를 저장하는 데 주로 사용한다. (3) 입출력 장치 임베디드 시스템에서 입출력 장치의 동작형태는 외부 입력에 반응하여 정해진 작업을 실행하며 지정된 출력을 발생시킨다. 임베디드 시스템의 사용방법은 폴링과 인터럽트 방식에 의해 구현된다.

입력 장치는 키보드, 마우스, 마이크, 센서를 많이 활용하며 센서는 외부에서 발생한 물리적인 현상, 즉 온도, 빛, 위치 등의 값 (또는 변화량)들을 임베디드 시스템으로 읽어들이는 역할을 수행한다. 2) 임베디드 시스템 소프트웨어 구성 (1) 임베디드 운영체제 Linux, Microsoft, Windows XP 혹은 2000Pro 등의 데스크톱 운영체제는 범용 운영체제로써 다양한 프로그램을 지원하고 다양한 장치와 다양한 작업들을 수행하며 기본적으로 대용량 메모리를 요구하는 반면 임베디드 시스템용 운영체제는 가격 경쟁력을 갖추어야 하며 필요에 따라 실시간 처리가 가능해야 함은 물론이고 빠른 부팅속도와 작은 크기의 메모리에도 원활하게 동작해야 한다. (2) 임베디드 시스템
소프트웨어 시스템 S/W는 컴퓨터 하드웨어를 관리하고 응용 소프트웨어를 실행하는 데 필요한 프로그램들로서 운영체제를 포함하여 메로리 상주 DBMS, 각종 하드웨어 및 주변 장치들을 구동하는 데 필요한 디바이스 드라이버 프로그램과 TCP/IP 프로토콜을 비롯하여 시스템을 네트워크로 연결하는 데 필요한 각종 소프트웨어를 의미한다. (3) 임베디드 응용 소프트웨어 임베디드 응용 소프트웨어는 실제 임베디드 시스템의 용도와 특징을 결정하는 요소를 가지고 있고, 편의성을 위한 사용자 인터페이스를 제공하고 운영체제와 시스템 소프트웨어를 이용하여 사용자에게 유익한 작업을 수행하는 소프트웨어들을 의미한다. <임베디드 소프트웨어 프레임워크>
임베디드 소프트웨어를 개발하기 위해서는 여러 가지 개발 환경이 필요하며, 컴파일러, 디버거, 모바일 환경에 적합한 각종 시뮬레이터, 실시간 모니터, 이동 모니터 등을 포함한 것이다. 4.RTOS 및 임베디드 운영체제 (1) 개요 RTOS(Real Time OS)
임베디드 시스템이 가지는 특성 중 실시간적인 요소를 충족하도록 나온 운영체제, 즉 RTOS는 임베디드 시스템의 근간이 되는 운영체제인 셈이다.
실시간 운영체제라고 하면 일반적으로 말하는 운영체제와는 조금 다를 것이라고 생각이 되겠지만 임베디드 운영체제라고 해서 특별하게 다른 것은 없다. 일반 OS들이 수행하는 태스크 스케줄링, 태스크 간의 통신, 메모리 관리, I/O, 인터럽트 등 이러한 요소들을 RTOS도 같이 지원하기 때문이다.
일반 OS와 차이점은 시간 제약의 차이, 신뢰성, 범용성과 특수성에 있는데, 임베디드 시스템이 가지는 정해진 시간 내에 수행하는 능력과 신뢰성은 일반 OS보다 가혹하게 지켜져야 하는 규약과도 같은 것이다. 임베디드 시스템에서는 유.무선 통신 기능, 경량 TCP/IP 스택 지원, 경량 그래픽 윈도우 시스템 지원, 객체 지향 언어 지원, 멀티미디어 스트림의 효율적인 처리, 웹서비스 지원 기술 등이 필요하며, 모바일 디바이스를 위해서는 저 전력 지원과 소형 LCD에 적합한 그래픽 윈도우 시스템에 대한 기술이 필요하다.
임베디드 운영체제는 스레드 기반 운영체제와 프로세스 기반 운영체제로 나눌 수 있다.
스레드 기반 운영체제란 시스템(커널) 프로세스와 응용(사용자) 프로세스가 구분되지 않고 같은 기준으로 수행되는 것이고, 프로세스 기반 운영체제란 시스템 프로세스와 응용 프로세스가 별도의 기준으로 수행되는 것이다. (2) 임베디드 운영체제 기술 동향 1) 실시간 멀티태스킹 지원 기술 실시간 스케줄링과 함께 실시간 서비스의 보장성과 예측성을 높이려면 실시간 동기화 메커니즘, 실시간 자원 관리 등의 기술이 필요하다. 이러한 멀티 스태킹 조건에서 실시간 스케줄링, 실시간 동기화 기술, 실시간 자원관리 기술 등을 실시간 멀티 태스킹 지원 기술이라 한다. 2) 메모리 관리 기술 메모리는 임베디드 시스템에서 가장 효율적으로 관리되어야 할 자원이다. 임베디드 메모리 관리 기술은 다양한 메모리 관련 요구에 대해 최적의 관리 환경을 지원하는 기술이다. 요소 기술로는 컴포넌트 기반의 경량 가상 메모리 관리(VMM : Virtual Memort Management)기술과 실시간 보장을 위한 메모리 잠금(memory lock) 기술이 있다. 3) 임베디드 시스템용 파일 시스템 고정 또는 동적 착탈 가능한 플래시 메모리를 이용한 파일 시스템 기술은 정보 가전, 휴대통신기기, 셋탑 박스 등의 임베디드 시스템에서 파일 형태의 데이터를 저장하고 관리 하기 위해 필요하며 데이터 크기의 급속한 증가와 함께 매우 중요한 기술로 부각되고 있으며 이 기술의 예로는 멀티미디어용 플래시 파일 시스템, USB에 연결되는 플래시 메모리 드라이브 기술 등이 있다. 4) 부팅 지원 기술 부팅이란 전원이 들어왔을 때부터 원래 기기의 적에 맞는 응용 프로그램이 동작하기까지 일어나는 일련의 과정으로써,
커널을 적재하기 위한 최소한의 작업만을 수행하도록 펌웨어(Firmware)를 하드웨어에 최적화 시키는 펌웨어 최적화 기술, 커널 구조를 모듈화 하여 기능상 필요한 모듈만을 커널 구성에 포함 시키고 다른 기능 모듈들은 필요 때에 따라 로딩 시킴으로써 커널 크기를 최소화하고, 파일 시스템 초기화 시간 및 복구 시간의 최적화 등을 수행하는 커널 최적화 기술, 데스크톱에서 사용하던 기본 명령어들을 공통 라이브러리로 단일화시켜서 크기를 줄이는 등의 기본 시스템 소프트웨어 최적화 기술 나누어 볼 수 있다. 5) XIP 기술 XIP(eXecution-In-Place) 기술은 커널을 메모리에 로드하여 실행하는 대신 플래시에서 직접 수행하는 기술이다.
내장형 시스템의 제한된 메모리 자원을 극복하기 위해 XIP기술이 등장하였는데, CPU가 저장 매체의 명령을 수행하기 위해서는 워드 단위의 명령어를 디스패치 해야 하므로 워드 단위의 액세스가 가능한 플래시 디바이스 상에서만 XIP 적용이 가능하며, XIP 기술을 적용할 때는 프로세스 이미지에 할당될 메모리를 가용 메모리로 활용하므로 큰 절감 효과를 얻을 수 있다. 6) 저 전력 지원 기술 저 전력 기술은 임베디드 시스템, 특히 모바일 시스템에서 시스템의 설계나 운영 때 전력을 최소화 하기 위한 기술이다. 모바일 시스템은 전원을 배터리에 의존하기 때문에 배터리 용량이 제한적이고 또한 사용 시간도 제한적이다.
전력 소모의 최소화는 시스템의 사용 시간을 최대하는 것 외에도 시스템의 발열을 줄임으로써 시스템을 안정화할 수 있고 별도의 팬(fan) 사용을 요구하지 않으므로 시스템의 소음을 줄이는 효과도 볼 수 있다. 7) 자원 관리 기술 임베디드 운영체제에서 자원 관리는 주로 디바이스 관리를 의미하며 PnP(Plug-and-Play)에 의한 디바이스 관리 기술이 주로 논의 되고 있는데, PnP는 디바이스 드라이버들에게 어디에서 모뎀, 네트워크 카드, 사운드 카드 등의 각종 디바이스를 찾아야 하는지를 자동으로 알려주는 기술이다. 8) 임베디드용 그래픽/윈도우 시스템 기술 임베디드 시스템에서 활용될 GUI는 크기가 작아야 하고 프레임 버퍼 사용으로 실행 시간이 빨라야 하며,
윈도 API 등의 표준 환경을 지원해야 한다. 9) 네트워크 및 통신 기술 인터넷의 대중화와 더불어 각종 임베디드 시스템들은 초고속 인터넷 서비스를 이용하여 인터넷망을 접속할 수 있어야 하며, 기기 간에도 IEEE 1394, 블루투스, USB와 같은 다양한 유무선 인터페이스를 지원해야 한다. 10) 멀티미디어 지원 정보 가전기기나 카 서버 등은 오디오 비디오를 포함하는 동영상 응용 및 게임 등과 같은 멀티미디어 서비스 지원을 요구한다. 따라서 운영체제에서 이러한 서비스 지원을 위한 처리 모듈과 응용 프로그램에서 요구하는 최소한의 성능을 보장하여야 한다. (3) 주요 RTOS 종류 RTOS는 많은 종류를 가지고 있기 때문에 그 수를 헤아릴 수는 없다.
이들 RTOS는 선점형 멀티태스킹과 POSIX를 지원한다.
각 태스크들은 우선순위를 가지고 있어 높은 우선순위를 가지는 태스크들이 먼저 실행되는 구조를 가지고 있다.
그리고 RTOS는 보통 커널모드와 사용자 모드가 있어 시스템 콜에 의해 이 모드에 대한 독립성을 보장하고 있다. 1) VxWorks 새로운 VxWorks 6.0에는 더 강력한 기능들을 첨가했으며 개방성, 성능, 신뢰성 그리고 상호 운용성을 제공하며 주요 기능은 메모리 보호 기능, 에러관리 기능, Wind 마이크로커널 기능, 윈드리버 네트워크 스택 기능, 유연한 입출력 및 로컬 파일 시스템 기능, 타켓 개발 기능이 있다. 2) OSE OSE-RTOS Kernel은 Priotrity 스케줄링 방식을 지원하는 완벽한 선점형 커널이다. High-rate 데이터 처리 속도를 지원하고, Compact 용량을 사용하며 Message passing 구조로 OSE시스템 콜만 사용하고, multi-core환경을 지원하는 distribution 및 fault tolerant 기능을 제공한다.
Kernel의 critical한 모듈이 assembly코드로 최적화 되어 있다. 3) VRTX VRTX는 Mentor Graphics Corportation사에서 개발한 RTOS통신장비, 네트워크 장비, 셀룰러, 경주용 자동차의 엔진 제어 시스템 등 다방면에서 사용되고 있다. 선점형 멀티 태스킹 커널을 가지고 있으며 OS는 모듈 형태로 되어 있어 사용자들은 선택적으로 사용하여 운영체제를 구성할 수 있다. 4) Nucleus 실시간 운영체제로서 저작권 없는 정책 때문에 널리 사용되는 실시간 운영체제이다.
인공위성 및 엘리베이터, 휴대전화, 기지국, 네트워크 분야에서 적용되고 있으며 국내 휴대폰 개발 업체들이 로열티 부담을 줄이기 위해 많이 채택하고 있다. 5) pSOS 선점형 멀티태스킹 RTOS로 각 태스크들은 우선순위를 가지고 있어 우선순위가 높은 태스크들의 작업수행이 먼저 이루어진다. 따라서 선점형 스케줄링 방식을 따른다. 태스크 고나리, 세마포어, 메시지 큐, 타임관리 및 타이머, 이벤트 및 비동기 Signal, 에러처리, 동적인 메모리 저장 관리, 다른 태스크들로부터의 코드나 데이터 보호 등의 서비스를 지원한다. 여러 개의 다른 실행 모드를 가지는 CPU를 위해서 사용자 모드와 슈퍼 모드를 제공한다. 6) QNX QNX Newtrino라는 커널을 코어로 내장하였으며, 자원 관리자를 통하여 대형 시스템에서부터 작은 내장형 시스템까지 광범위하게 사용한다. 프로세스 기반 RTOS로서 프로세스 간의 메모리 보호 기능을 제공한다. (4) 임베디드 OS의 종류 1) 윈도우 CE 및 윈도우 XP 임베디드 윈도우 CE는 기본적으로 32개의 프로세서를 가질 수가 있고 하나의 프로세서는 8개의 스레드를 가질 수가 있다. 이 스레드는 스케줄링의 기본이 된다. - WinCE 기능 및 특징 윈도우 및 윈도우 응용프로그램의 사용 친숙도가 높고,
프로그램 개발 환경이 아주 우수하다. 기존의 데스크 톱 PC와 같은 윈도우 환경을 제공하지만 그러나 하드웨어 사용이 높고 가격이 비싸고 많은 양의 메모리를 요구하고 자유로운 개발이 어렵다. - WinCE.NET 기능 및 특징 다양한 CPU와 엔터프라이즈 수준의 보안이 지원되고, 기존의 MS Windows 시스템 및 애플리케이션과 호환성이 우수하다. 2) FSMLabs사의 RT-Linux 기존의 리눅스는 Real-Time기능을 부과하여 RT-Linux가 나오게 되었다. 리눅스는 커널 자체가 Real-Time 기능이 떨어지기 때문에 이를 대신할 리얼 타임 커널을 만들었다. 여기서 기존의 커널을 그대로 두고 새로운 리얼 타임 커널을 추가했다.
RT-Linux는 기존 리눅스에 비해 리얼 타임 기능이 향상된 것은 사실이지만 기존의 리눅스 커널에다 새로이 리얼타임 커널을 추가한 열악한 임베디드용으로 OS의 덩치가 큰 것이 단점이다. 3) 몬타비스타 리눅스(Montavista Linux) 몬타비스타 리눅스는 20여개 이상의 프로세서와 이들 CPU를 사용한 18개의 새로운 보드를 포함하여 60여 개 이상의 보드를 지원하고, 임베디드 시스템에 개발에 필수인 교차개발 성능에도 초첨을 맞추어 14개 주요 호스트 환경에 맞는 개발 툴을 제공한다. 4) TimeSys Linux TimeSys Linux는 경성 실시간 시스템에도 사용될 수 있는 실시간 성능을 보장하는 로열티 없는 리눅스 운영체제이다. 5) TRON 사카무라 겐 교수가 개발하기 시작한 운영체제고, 규격을 무료로 공개하여 이용 기업들이 자유롭게 개량 및 변경이 가능하다. 사이즈가 작아서 처리 속도가 빠르고 휴대폰, 자동차, 산업기계등의 OS에서는 폭 넓게 쓰이고 있다. 6) 임베디드 자바(Embeded Java) 개요

임베디드 시스템에서 자바는 하드웨어 플랫폼에 대해 독립적인 수행환경을 제공한다. 이 같은 플랫폼 독립성은 네트워크 컴퓨팅환경에서 프로그램을 옮겨다니면서 작업을 수행할 수 있도록 하기 위한 것이다.
임베디드 자바의 단점은 자바 버추얼머신(JVM)에 의해 작업이 수행되기 때문에 컴파일된 프로그램에 비해 수행속도가 다소 늦다. 그러나 고성능 임베디드 칩들이 개발되면서 상당 부분 해결되고 있다. 응용환경

임베디드 시스템에 적합한 자바 응용환경은 자바 카드(Java Card), 임베디드 자바(Embe-dded Java), 퍼스널 자바(Personal Java) 등을 들 수있는데 임베디드 자바는 퍼스널 자바와 유사한 JVM와 자바 API로 구성돼 있다. 다만 퍼스널 자바와 달리 네트워크 연결성을 지원하지 않는 임베디드 시스템을 겨냥해 설계되었다. 그래서 임베디드 자바는 무선호출기, 저수준 전화기, 프린터, 팩스 등 일반적으로 접할 수 있는 기기들에 적합하다. 7) J2ME J2ME는 소비자 가전과 임베디드 디바이스를 위한 자바 2 플랫폼, 즉 포스트 PC시대의 컴퓨팅 환경을 위한 자바 기술의 집합이라고 볼 수 있고 주로 퍼스널 자바를 이용하고 있다. 8) 임베디드 리눅스 임베디드 리눅스는 일반 리눅스 일반 데스크톱 환경인 고성능 프로세서와 대용량 메모리 환경에서 동작하는 범용 컴퓨터용 리눅스를 말한다. 적은 메모리와 느린 CPU에서 동작해야 하고, 실시간 요구를 어느 정도 충족시켜야 한다.
임베디드 리눅스만이 갖는 특징인 강력하고 다양한 네트워크 환경의 제공과 다양한 형태의 파일 시스템과 실행파일 포맷 지원, 확장성의 다양함과 쉬움의 제공, Free Software라는 점 등이 있다.
국내 임베디드 리눅스로는 타이눅스(Tynux), 임베닉스(Embenix), 리누엣(Linuette)등이 있고, 국외 임베디드 리눅스는 리니오, 레드햇, 몬타비스타, 리눅스웍스 등이 있다. 9) 임베디드 리눅스의 한계 임베디드 리눅스 장점은 기능성과 확장성이 우수하고, 로열티가 없으므로 가격 경쟁력이 우수하며, 사용자층이 넓어 오류 수정이 빠르고 안정성이 우수하고 개발이 쉽다. 하지만 단점으로는 기존의 RTOS보다 많은 메모리를 요구하고 범용 OS로 설계 되어 real-time을 지원하지 못하며 GUI 환경을 개발하기는 어렵다. 10) 임베디드 S/W 플랫폼 제품 동향 임베디드 플랫폼을 위해 최적화된 웹 서비스 미들웨어의 개발이 필수적이며, 임베디드 소프트웨어 업체들은 각 응용 도메인에 더욱 최적화된 임베디드 운영체제, 임베디드 미들웨어, 임베디드 응용, 그리고 임베디드 개발도구를 통합한 임베디드 소프트웨어 플랫폼 형태로 제품을 개발하고 있다. 플랫폼 제품군에는 윈드리버(WindRiver)사의 제품군과 몬타비스타(MontaVista)의 제품군, 마이크로소프트의 닷넷이 있다. 11) 주요 이슈 및 시사점 주요이슈

자동차, 통신, 인터넷 및 가전 시장에서의 스마트 장비에 대한 무궁한 잠재력이 조만간 전세계 임베디드 S/W산업을 크게 성장 시킬 것으로 전망된다.

시사점

전 세계적인 제조업 기반과 통신 인프라를 확보하고 있는 우리나라의 경우 자체적인 임베디드 S/W기술을 개발하여 내수 시장은 물론 해외 시장으로 진출할 수 있는 가능성이 무궁무진하다.
Full transcript