Top

[RTOS를 이용한]
실시간 임베디드 시스템 디자인

  • 원서명Real-Time Concepts for Embedded Systems (ISBN 1578201241)
  • 지은이Qing Li, Caroline Yao
  • 옮긴이성원호, 전동환
  • ISBN : 8989975425
  • 30,000원
  • 2004년 02월 13일 펴냄
  • 페이퍼백 | 308쪽 | 190*250mm
  • 시리즈 : 임베디드 시스템

책 소개

강력한 임베디드 시스템 입문서

실시간 임베디드 시스템 프로그래밍의 개념을 마스터한 후 효과적인 디자인 방법과 구현 기법을 이용해서 자신만의 임베디드 시스템 프로젝트를 시작해보라! 이 책은 임베디드 시스템 개발에 필요한 내용들을 상위 레벨의 추상적인 모델링 개념부터 하위 레벨의 프로그래밍 기법까지 포괄적으로 설명한다. 독자는 책에서 다루는 상세하고 실질적인 예를 통해 임베디드 시스템을 명확하게 이해할 수 있을 것이다. 또한 여러 핵심개념과 디자인 과정, 개발도구, 개발 방법론에 대한 지식도 얻게 될 것이다.

이 책은 실시간 프로그래밍과 더불어 임베디드 시스템에서 사용되는 각종 디자인 패턴 및 실시간 운영체제(RTOS)의 구조에 대해서도 다루고 있다. 특히 많은 상용 RTOS에서 제공하는 커널 오브젝트 및 서비스의 원리를 설명한 후 RTOS를 이용한 실시간 임베디드 시스템 디자인 방법을 심도 있게 살펴본 것은 이 책만의 특징이다. 또한 개발자의 작업량을 덜어주고 생산성을 높여줄 수 있는 임베디드 시스템용 `빌딩 블록`도 풍부하게 수록하고 있다.

임베디드 시스템을 처음 접하는 개발자나 이 분야에 관련된 공부를 하는 학생들 모두 이 책의 명쾌한 설명을 통해 여러 핵심 개념을 쉽게 이해할 수 있을 것이다. 만약 독자가 중급 이상의 개발자라면 저자가 책에서 제시한 문제에 대한 통찰력을 활용해서 실시간 임베디드 시스템의 어려운 문제들을 좀 더 효과적으로 해결할 수 있게 될 것이다. 개발자뿐 아니라 관련 분야의 관리자에게도 이 책이 제품 디자인과 구현에 있어서 훌륭한 지침서 역할을 할 것이라 확신한다.

저자/역자 소개

<저자소개>

큉 리(Qing Li)
는 윈드 리버 시스템의 수석 연구원으로 회사의 IPv6 관련 제품 개발을 주도했다. 큉은 임베디드 커널과 네트워크 프로토콜 분야에서 4개의 특허를 가지고 있으며 12년 이상 프로토콜 스택을 디자인하고 개발하는 작업과 전화통신망과 네트워크 분야의 응용 프로그램을 작성하는 작업을 해왔다. 또한 그는 실리콘 밸리에서 보안 분야의 임베디드 생체 측정기와 관련된 회사를 창업한 멤버 4명 중 하나였다.

캐롤라인 요(Caroline Yao)는 15년 이상 하이테크 분야에서 개발, 프로젝트와 제품 관리, 제품 마케팅, 비즈니스 개발, 전략적 제휴업무를 해왔다. 그녀는 현재 특허 신청 중인 기술의 공동 개발자이며 얼마 전부터 윈드 리버 시스템의 파트너 솔루션 분야 이사로 일하고 있다.


<역자 소개>

전동환


서울대학교 컴퓨터 공학과를 졸업하고 한국MDS에서 순수 국산 RTOS인 Velos를 개발하고 있다. 임베디드 시스템 및 RTOS 관련 강좌를 다수 진행했으며, <월간 마이크로 소프트웨어>, <월간 임베디드 월드> 등에 RTOS 관련 기사를 기고하기도 했다. 현재 에이콘 출판사의 임베디드 관련 시리즈 에디터로도 활동 중이다.


성원호

임베디드 시스템 프로그래밍 시리즈의 Series Editor인 성원호는 명지대학교 대학원에서 기계공학 석사학위를 받았으며, 대우 고등기술연구원과 (주)제너스 테크놀러지에 재직하면서 다년간 임베디드 시스템 프로그래밍 실무 경험을 쌓았다. 현대는 디오이즈라는 임베디드 시스템 및 기술개발 전문회사를 운영하고 있으며, 에이콘 출판사에서 임베디드 시스템 프로그래밍 Series Editor로 활동하고 있다.


<역자서문>

요즘 유비쿼터스 컴퓨팅이다, 퍼베이시브 컴퓨팅이다 하면서 임베디드 시스템이 화두가 되고 있다. 과거에는 임베디드 시스템용 소프트웨어라고 하면 8비트급 또는 16비트급의 저렴한 프로세서상에 OS를 사용하지 않고 펌웨어를 작성하는 것을 의미했다. 하지만 고급 프로세서가 점점 저렴한 가격에 출시되고 시스템의 요구사항이 복잡해지면서 근래에는 임베디드 시스템 소프트웨어 작성이 점점 더 어려워지고 있다. 각종 소프트웨어 관련 지식에 하드웨어 지식, OS 지식, 네트워크 지식, 경우에 따라서는 실시간 시스템 이론까지! 이 시대의 임베디드 소프트웨어 엔지니어는 정말로 많은 것을 알아야만 하는 힘겨운 처지에 놓여있다.

임베디드 소프트웨어 엔지니어를 더 힘들게 하는 것은 마땅한 참고 서적이나 교육 과정이 없다는 것이다. 물론 하드웨어를 자세하게 다룬 서적이나 소프트웨어를 자세하게 다룬 서적은 시중에도 많이 있다. 하지만, 그간 임베디드 소프트웨어 엔지니어 입장에서 알아야 할 것을 체계적으로 정리한 책은 없었다고 해도 과언이 아니다. 이런 점에서 이 책의 의미는 각별하다.

Qing Li와 Caroline Yao는 오랜 현장 경험을 바탕으로 임베디드 소프트웨어 엔지니어라면 반드시 알아야 할 내용들을 이 책 한 권에 담았다. 저자는 임베디드 시스템 개발 환경을 시작으로 RTOS의 주요 개념을 다룬 후, 임베디드 시스템에서 사용할 수 있는 각종 디자인 패턴과 실시간 시스템의 개념에 대해 설명하고 있다. RTOS에 대한 설명은 특정 RTOS에 치우치지 않고 개념 위주로 설명했기 때문에 이후 어떤 RTOS로 작업을 진행하더라도 쉽게 적용할 수 있을 것이다. 또한 난해한 실시간 시스템 이론을 보통의 개발자가 실무에 응용할 수 있도록 쉽게 설명한 점도 돋보인다. 역자가 아는 한도 내에서 학술 논문 이외에 이러한 내용을 다루고 있는 책은 이 책 뿐이다. 이렇게 다양한 내용을 이해하기 쉬우면서도 얕지 않게 다루었기 때문에, 누군가 역자에게 임베디드 소프트웨어 입문서의 추천을 부탁한다면 자신 있게 이 책을 권하겠다.

목차

목차
  • 1 서론
    • 1.1 실생활에서의 임베디드 시스템 예
    • 1.2 실시간 임베디드 시스템
    • 1.3 임베디드 시스템의 미래
    • 1.4 기억할 점
  • 2 임베디드 시스템 개발의 기초
    • 2.1 소개
    • 2.2 링커와 링크 과정의 개요
    • 2.3 실행 파일의 형식
    • 2.4 타겟 임베디드 시스템으로 실행 이미지 매핑
    • 2.5 기억할 점
  • 3 임베디드 시스템 초기화
    • 3.1 소개
    • 3.2 타겟 시스템용 툴과 이미지 전송
    • 3.3 타겟 부트 시나리오
    • 3.4 타겟 시스템 소프트웨어 초기화 과정
    • 3.5 온-칩(On-Chip) 디버깅
    • 3.6 기억할 점
  • 4 실시간 운영체제 소개
    • 4.1 소개
    • 4.2 운영체제의 역사
    • 4.3 RTOS의 정의
    • 4.4 스케줄러
    • 4.5 오브젝트
    • 4.6 서비스
    • 4.7 RTOS의 주요 특성
    • 4.8 기억할 점
  • 5 태스크
    • 5.1 소개
    • 5.2 태스크의 정의
    • 5.3 태스크 상태와 스케줄링
    • 5.4 전형적인 태스크 오퍼레이션
    • 5.5 전형적인 태스크 구조
    • 5.6 동기화, 통신, 병행성
    • 5.7 기억할 점
  • 6 세마포어 / SEMAPHORES
    • 6.1 소개
    • 6.2 세마포어 정의
    • 6.3 전형적인 세마포어 오퍼레이션
    • 6.4 전형적인 세마포어의 사용
    • 6.5 기억할 점
  • 7 메시지큐 / MESSAGE QUEUES
    • 7.1 소개
    • 7.2 메시지큐의 정의
    • 7.3 메시지큐의 상태
    • 7.4 메시지큐의 내용
    • 7.5 메시지큐의 저장
    • 7.6 전형적인 메시지큐 오퍼레이션
    • 7.7 전형적인 메시지큐의 사용
    • 7.8 기억할 점
  • 8 그 밖의 커널 오브젝트
    • 8.1 소개
    • 8.2 파이프
    • 8.3 이벤트 레지스터
    • 8.4 시그널
    • 8.5 조건 변수 / Conditional Variable
    • 8.6 기억할 점
  • 9 그 밖의 RTOS 서비스
    • 9.1 소개
    • 9.2 그 밖의 구성 요소
    • 9.3 컴포넌트 환경 설정
    • 9.4 기억할 점
  • 10 예외(Exception)와 인터럽트(Interrupt)
    • 10.1 소개
    • 10.2 예외와 인터럽트란 무엇인가?
    • 10.3 예외와 인터럽트의 활용 용도
    • 10.4 예외와 인터럽트의 심화
    • 10.5 일반 예외의 처리
    • 10.6 가짜 인터럽트(Spurious Linterrupt)의 특징
    • 10.7 기억할 점
  • 11 타이머와 타이머 서비스
    • 11.1 소개
    • 11.2 실시간 클럭과 시스템 클럭 / Real-Time Clock & System Clock
    • 11.3 프로그래밍 가능한 주기 타이머
    • 11.4 타이머 인터럽트 서비스 루틴
    • 11.5 소프트 타이머 기능의 구현 모델
    • 11.6 타이밍 휠 / Timing Wheel
    • 11.7 소프트 타이머와 타이머 관련 동작
    • 11.8 기억할 점
  • 12 I/O 서브 시스템
    • 12.1 소개
    • 12.2 기본 I/O의 개념
    • 12.3 I/O 서브시스템
    • 12.4 기억할 점
  • 13 메모리 관리
    • 13.1 소개
    • 13.2 임베디드 시스템에서의 동적 메모리 할당
    • 13.3 베디드 시스템에서의 고정 크기 메모리 관리
    • 13.4 블록킹 vs 논블록킹 메모리 함수
    • 13.5 드웨어 메모리 관리 유닛 / Hardware Memory Management Units
    • 13.6 기억할 점
  • 14 행성을 고려한 응용프로그램 모듈화
    • 14.1 소개
    • 14.2 응용 프로그램 분화에 대한 아웃사이드-인(Outside-In) 방법론
    • 14.3 병행성 파악을 위한 가이드라인과 권장사항
    • 14.4 스케쥴 가능성 분석 - 주기 단조 분석 / Schedulability Analysis - Rate Monotonic Analysis
    • 14.5 기억할 점
  • 15 동기화와 통신
    • 15.1 소개
    • 15.2 동기화 / Synchronization
    • 15.3 통신 / Communication
    • 15.4 자원 동기화 방법 / Resource Synchronization Methods
    • 15.5 크리티컬 섹션 다시 보기
    • 15.6 일반적으로 사용되는 실전 디자인 패턴
    • 15.6. 자원 동기화
    • 15.7 특정 상황에 대한 디자인 패턴
    • 15.8 기억할 점
  • 16 일반적인 디자인 문제
    • 16.1 소개
    • 16.2 자원의 분류
    • 16.3 데드락 / Deadlock
    • 16.4 우선 순위 역전 / Priority Inversion

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ p81 그림 6.2 ]
반환(세마포어 값 = 0) → 반환(세마포어 값 = 1)

[ p83 11행 ]
기다면서 → 기다리면서

[ p85 6행 ]
우선 순위 회피 → 우선 순위 역전 회피

2015.2.11 수정사항

[p70 : 그림 5.3]
두 번째 단째 -> 두 번째 단계
세 번째 단째 -> 세 번째 단계
네 번째 단째 -> 네 번째 단계
다섯 번째 단째 -> 다섯 번째 단계
태스크 6 -> 태스크 5