Top

MicroC/OS-II 실시간 커널 제 2판 (보급판)

  • 원서명MicroC/OS - II 2nd Edition (ISBN 9781578201037)
  • 지은이Jean J. Labrosse
  • 옮긴이성원호
  • ISBN : 8989975603
  • 35,000원
  • 2005년 04월 25일 펴냄
  • 페이퍼백 | 644쪽 | 190*255mm
  • 시리즈 : 임베디드 시스템

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/microcos2-2nd)


이 책은 임베디드 시스템 프로그래머, 컨설턴트, 리얼타임 운영체제에 관심 있는 학생들을 위해 쓰여졌다. μC/OS-II는 고성능이면서 결정성 동작(deterministic)을 하는 리얼타임 커널이며, 이것은 상용 임베디드 제품에 사용될 수도 있으며, 이미 사용되기도 했다. 여러분은 자신의 커널을 직접 만드는 대신 μC/OS-II를 고려해 보기 바란다. 커널을 직접 만드는 것이 처음 생각처럼 쉽지 않다는 것을 알게 될 것이다. 여러분은 이 책을 공부하기 위해서 C와 기본적인 어셈블리 언어를 알고 있어야 한다. 마이크로 프로세서 구조도 어느 정도 이해하고 있어야 한다.

첫 번째 중요한 목표는 리얼타임 커널의 어려운 개념을 여러분이 쉽게 알 수 있도록 돕는데 있다. 이러한 커널의 동작을 이해함으로써 여러분이 개발하고자 하는 제품에 적용할 커널을 정확히 선택할 수 있을 것이다. 여기에 실린 대부분의 예제는 실제로 상용제품에도 사용될 수 있는 것들이다. 다음으로 중요한 목표는 여러분에게 실제 개발 제품에 적용할 수 있는 좋은 커널을 만들 수 있도록 하는데 있다. μC/OS-II는 프리웨어도 오픈 소스코드도 아니므로 μC/OS-II를 상용 제품에 적용하고자 한다면 라이센스를 받아야 한다(부록 B, μC/OS-II 라이센스 정책` 참조).

제1판은 12장으로 구성된 반면 이 책은 18장으로 구성됐다. 제1판의 6장(태스크간 통신과 동기화)을 여섯 장으로 나눴으며 이벤트 컨트롤 블록, 세마포어, 상호배제 세마포어, 이벤트 플래그, 메시지 메일박스, 메시지 큐를 각 장으로 나누어 설명한다. 이전 판에 인텔 80x86 군 프로세서를 위한 포트가 있었지만, 문맥전환 시 정수 레지스터만 지원하는 포트였다. 제2판에서는 한 장(Chapter)을 마련해서 80486과 펜티엄 프로세서에 기본적으로 있는 부동소수 레지스터까지 저장하고 복구할 수 있는 포트를 설명한다. 부록으로 ‘코딩 규약’과 ‘μC/OS-II’ 퀵 레퍼런스가 추가됐다.

부록 CD에는 μC/OS-II의 모든 소스코드와 인텔 80x86 프로세서에서 동작하는 포트(리얼모드, 라지모델)의 소스코드가 들어있다. 이 코드들은 마이크로소프트 Windows 2000이 동작하는 PC 상에서 개발했지만 Windows 95, 98, ME, NT, XP에서도 동작한다. 포함된 예제들은 도스창에서 실행할 수 있고, 컴파일러는 볼랜드 인터내셔널 C/C++ v4.51을 사용했다. μC/OS-II는 PC 상에서 테스트하고 개발했지만, 사실은 임베디드 시스템을 목적으로 하며, 다른 프로세서에서 사용할 수 있도록 쉽게 포팅(porting)할 수 있다.


[ 책 내용 ]

1장, μC/OS-II시작하기 - 즉시 μC/OS-II를 접해볼 수 있도록 구성했다. 여러 분이 μC/OS-II와 멀티태스킹에 대해 어느정도 개념이 있다고 가정했다. 제1판의 내용을 완전히 개편해서 1장을 썼다.

2장, 리얼타임 시스템 개념 - 리얼타임 시스템과 관련된 몇몇 개념을 소개한다. 전경/배경(Foreground/Background) 시스템, 크리티컬 섹션(critical sections), 자원(resources), 멀티태스킹(multitasking), 문맥전환(context switching), 스케줄링(scheduling), 재진입성(reentrancy), 태스크의 우선순위(task priority), 상호배제(mutual exclusion), 세마포어(semaphores), 태스크간 통신(intertask communications), 인터럽트(interrupts) 등의 개념을 다룬다.

3장, 커널 구조 - μC/OS-II의 내부 구조를 소개한다. 태스크와 태스크의 상태, 그리고 태스크 컨트롤 블록(TCB)을 배운다. μC/OS-II에서 어떻게 준비(Ready) 리스트와 태스크 스케줄링, IDLE 태스크를 구현했는지 설명한다. 또 CPU 사용율을 측정하는 방법과 인터럽트를 처리하는 방법, μC/OS-II를 초기화하고 시작하는 방법 등을 설명한다.

4장, 태스크 관리 - 태스크와 관련된 서비스 함수들을 다룬다. 태스크를 생성하고 삭제하는 서비스와 태스크의 스택 크기를 검사하는 기능, 태스크의 우선순위를 바꾸는 기능, 태스크를 중지하고 재개하는 기능, 태스크와 관련된 정보를 알아내는 기능을 설명한다.

5장, 시간 관리 - 사용자가 μC/OS-II에서 어떤 방식으로 지정한 시간만큼 태스크를 지연할 수 있는지 설명한다. 태스크가 깨어나는 방식과 32비트 틱 카운터 값을 가져오고 설정하는 방법을 다룬다.

6장, 이벤트 컨트롤 블록 - 동기화와 태스크간 통신을 수행하는 커널 오브젝트에 바탕이 되는 자료구조를 설명한다. 이 자료구조는 태스크와 ISR 또는 태스크 간의 통신을 가능케 해주고, 공유자원 액세스를 관리한다.

7장, 세마포어 관리 - 세마포어는 태스크가 공유자원을 액세스할 때 배타적으로 얻어야 하는 커널 오브젝트다. μC/OS-II가 세마포어를 어떤 식으로 구현하는지 설명한다.

8장, 상호배제 세마포어 - 상호배제 세마포어(뮤텍스)는 자원에 액세스할 때 배타적으로 얻어야 하는 바이너리 세마포어다. 뮤텍스는 필요한 경우 태스크의 우선순위를 자동으로 변경해서 우선순위 전도 문제를 줄여준다. 8장에서는 μC/OS-II가 뮤텍스를 어떤 식으로 구현하는지 설명한다. 뮤텍스는 이번 판에 추가된 새로운 서비스이다.

9장, 이벤트 플래그 관리 - 이벤트 플래그는 태스크가 기다릴 수 있는 비트이다. 태스크는 하나 또는 그 이상의 비트들이 켜지거나 꺼질 때를 기다릴 수 있다. 9장은 이벤트 플래그를 구현하는 법과 응용프로그램에서 사용할 수 있는 서비스를 설명한다. 이벤트 플래그는 이번 판에 새로 추가한 서비스이다.

10장, 메시지 메일박스 관리 - 태스크는 메시지 메일박스를 통해 메시지를 전달할 수 있다. 10장은 메시지 메일박스를 어떻게 구현하는지 설명한다.

11장, 메시지큐 관리 - 메시지큐는 메시지 메일박스와 비슷하지만. 메시지를 여러 개 보낼 수 있다는 점이 차이점이다. 11장은 메시지큐를 구현하는 법을 설명한다.

12장, 메모리 관리 - 고정크기 메모리 블록을 지원하는 μC/OS-II의 동적 메모리 관리자를 설명한다.

13장, 포팅 - μC/OS-II를 다른 프로세서에서 사용할 수 있도록 포팅할 때 고려해야 할 일반적인 사항들을 설명한다.

14장, 리얼모드, 라지모델, 부동소수 에뮬레이션을 지원하는 80x86 포트 - μC/OS-II를 인텔/AMD의 80x86 프로세서의 리얼모드 라지 모델에서 어떤 식으로 포팅했는지 설명한다.

15장, 리얼모드, 라지모델, 하드웨어 부동소수를 지원하는 80x86 포트 - 15장은 14장에서 설명한 포트를 확장한 것이다. 이 포트는 문맥전환시 80486, 5x86, 펜티엄 프로세서에 있는 부동소수 레지스터를 처리하는 법을 설명한다. 15장은 제2판에 새로 추가한 것이다.

16장, μC/OS-II 참고 매뉴얼 - 레퍼런스 매뉴얼(Reference Manual), μC/OS-II 응용프로그램을 작성하는 사람들이 참조할 수 있도록, μC/OS-II에서 제공하는 모든 시스템 서비스 함수를 설명한다. 각 함수에 대해, 간단한 함수설명과 함수선언, 위치한 소스파일의 이름, 전달인자와 리턴값의 의미, 주의할 사항과 관련 예제를 포함한다. 두 번째 판에서는 많은 서비스(뮤텍스, 이벤트 플래그)가 추가됐다. 이들 서비스를 16장에 추가했다.
17장, μC/OS-II 설정 매뉴얼 - μC/OS-II를 응용프로그램에서 사용할 경우, 각각의 설정을 위해 사용하는 각각의 #define 문의 의미를 설명한다. 이러한 설정을 통해 μC/OS-II의 필요한 부분만을 이미지에 포함해서 컴파일하도록 구성할 수 있다. 이 기능을 통해 μC/OS-II는 상당한 유연성을 가지게 되며 μC/OS-II를 위해 필요한 코드 및 데이터 메모리 영역을 최소화할 수 있다. 이번 판은 μC/OS-II를 더 세밀하게 설정할 수 있도록 하기 위해 세 배 이상의 설정 상수를 추가했다.

18장, PC 서비스 - 1장의 예제는 IBM/PC 호환기종을 사용한다고 가정한다. 18장은 PC에서 사용할 수 있는 서비스를 어떻게 캡슐화할 수 있는지 설명한다.

부록 A, C 코딩 규약 - 일상적으로 사용하는 코딩 규약을 설명한다.
부록 B, μC/OS-II라이센스 정책 - μC/OS-II를 소스코드와 오브젝트 형태로 배포할 때 지켜야할 라이센스 정책을 설명한다.
부록 C, μC/OS-II 퀵레퍼런스 - μC/OS-II 서비스의 퀵레퍼런스를 제공한다.
부록 D, TO 유틸리티 - TO는 도스창에서 경로명을 일일히 입력하지 않고 편리하게 디렉터리를 이동할 수 있는 DOS 유틸리티다.
부록 E, 참고문헌 목록 - 임베디드 리얼타임 시스템에 대해 좀 더 깊이 알고 싶어하는 사람을 위한 참고 문헌의 목록을 제공한다.
부록 F, 부록 CD - μC/OS-II설치 방법과 부록 CD의 내용을 설명한다.

저자/역자 소개

[ 저자 : Jean J.Labrosse ]

현재 Micrium, Inc.라는 회사를 경영하고 있다. 그는 전자공학을 전공했으며 다년간 임베디드 시스템을 디자인해 오고 있다. 저자는 MicroC/OS-II, The Real-Time Kernel의 저자이며, 관련 잡지에 수많은 글을 기고했다.

[ 역자 : 성원호 ]

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


『MicroC/OS-II 실시간커널』 보급판을 펴내며

임베디드 소프트웨어에 대한 관심이 커지면서 RTOS 개념을 아주 훌륭하게 설명하고 있는 “MicroC/OS-II 실시간 커널, 제2판”의 인기가 날로 높아지고 있다.

학교나 업체를 대상으로 여러 차례 MicroC/OS-II 강의를 하면서 늘 주장해 온 것이지만, 내가 아는 한 이 책만큼 RTOS 개념을 잘 설명하는 책은 없다. 그 동안 현장에서 만난 많은 뛰어난 임베디드 소프트웨어 엔지니어들도 모두 동의했다. 결국 여러 분이 RTOS에 관심이 있어 이 책을 보고 있다면 가장 훌륭한 선택을 한 것이다.

나는 임베디드 소프트웨어를 다루는 사람이라면 RTOS를 반드시 알아야 한다고 생각한다. 우리는 급변하는 시대에 살고 있으며 시장은 이에 뒤질세라 아주 빠른 주기로 새로운 제품을 요구한다. 여러 분이 사용하는 휴대폰, PDA, 각종 가전제품을 생각해 보면 얼마나 자주 새로운 제품이 시장에 출시되는지 짐작이 갈 것이다. RTOS 없이 순차실행 방식으로 동작하는 임베디드 소프트웨어로는 이런 시장의 요구에 부응하는데 한계가 있다. RTOS는 이런 시장의 요구를 해결하는데 중심역할을 한다.
많은 대학에서 이 책을 교재로 채택하고 있으며 이제 그 영역은 대학원 과정에서 학부 과정으로 옮겨가고 있다. 이에 발맞추어 더 많은 학생과 엔지니어가 적은 부담으로 책을 접할 수 있도록 보급판 출간을 결정한 에이콘출판사에 성원을 보낸다. 모쪼록 이번에 출간되는 보급판을 통해 폭 넓은 분야의 더 많은 엔지니어와 학생들이 RTOS를 경험해 볼 수 있기를 기대한다.

목차

목차
  • 1장 μC/OS-II 시작하기
  • 2장 리얼타임 시스템의 개념
  • 3장 커널구조
  • 4장 태스크 관리
  • 5장 시간 관리
  • 6장 이벤트 컨트롤 블록
  • 7장 세마포어 관리
  • 8장 상호배제 세마포어
  • 9장 이벤트 플래그 관리
  • 10장 메시지 메일박스 관리
  • 11장 메시지큐 관리
  • 12장 메모리 관리
  • 13장 μC/OS-II 포팅
  • 14장 80x86 포트 - 리얼모드, 라지모델, 부동소수 연산 에뮬레이션
  • 15장 80x86 포트 - 리얼모드, 라지모델, 하드웨어 부동소수 연산
  • 16장 μC/OS-II 레퍼런스 매뉴얼
  • 17장 μC/OS-II 설정 매뉴얼
  • 18장 PC 서비스
  • 부록A C 코딩 규약
  • 부록B μC/OS-II 라이센스 정책
  • 부록C μC/OS-II 퀵 레퍼런스
  • 부록D TO 유틸리티
  • 부록E 참고문헌

도서 오류 신고

도서 오류 신고

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

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

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