책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9788989975670
· 쪽수 : 384쪽
책 소개
목차
1장 임베디드, 실시간 시스템
1.1 소개
1.2 임베디드 시스템은 무엇인가?
1.3 임베디드 시스템의 특성
1.4 실시간 시스템
1.5 실시간 운영체제와 실시간 커널
1.6 프로세스, 태스크, 스레드
1.7 실시간 시스템의 구조
1.8 임베디드 시스템 개발
2장 RTOS를 사용한 시스템과의 첫 만남
2.1 운영 환경
2.2 스레드X 데모 시스템 설치
2.3 2개의 스레드를 사용하는 예제 시스템
2.4 스레드X 객체 생성
2.5 예제시스템 컴파일과 실행
2.6 시스템과 출력결과 분석
2.7 02_sample_system.c 예제
2.8 생각해볼 문제
3장 RTOS 관련 개념 및 용어 정의
3.1 소개
3.2 우선순위
3.3 준비 스레드와 중지 스레드
3.4 우선순위 기반 선점형 스케줄링
3.5 라운드 로빈 스케줄링
3.6 확정성
3.7 커널
3.8 RTOS
3.9 문맥 전환
3.10 타임 슬라이스
3.11 인터럽트 처리
3.12 스레드 기아현상
3.13 우선순위 역전현상
3.14 우선순위 상속
3.15 선점 한계치
3.16 생각해볼 문제
4장 시스템 개발을 위한 RTOS 구성요소
4.1 소개
4.2 공개 자원의 정의
4.3 스레드X 데이터 타입
4.4 스레드
4.5 메모리 풀
4.6 응용 프로그램 타이머
4.7 뮤텍스
4.8 카운팅 세마포어
4.9 이벤트 플래그 그룹
4.10 메시지 큐
4.11 스레드 동기화와 통신용 구성요소 요약
4.12 생각해볼 문제
5장 ARM 마이크로프로세서 소개
5.1 소개
5.2 역사
5.3 기술적 특징
5.4 ARM 전력 절약 지원
6장 스레드-핵심 구성요소
6.1 소개
6.2 스레드 제어 블록
6.3 스레드 서비스 요약
6.4 스레드 생성
6.5 스레드 제거
6.6 스레드 식별
6.7 스레드 정보 얻기
6.8 선점 한계치 변경
6.9 우선순위 변경
6.10 제어 양도
6.11 스레드 실행 재개
6.12 스레드 수면
6.13 스레드 일시 중지
6.14 응용 프로그램 스레드 종료
6.15 타임 슬라이스 변경
6.16 스레드 일시 중지 중단
6.17 스레드 실행 개요
6.18 스레드 상태
6.19 스레드 설계
6.20 스레드 내부
6.21 요약
6.22 생각해볼 문제
7장 상호 배제 문제와 고려사항
7.1 소개
7.2 크리티컬 섹션 보호
7.3 공유 자원에 대한 독점적 접근 제공
7.4 뮤텍스 제어 블록
7.5 뮤텍스 서비스 요약
7.6 뮤텍스 생성
7.7 뮤텍스 제거
7.8 뮤텍스 소유권 얻기
7.9 뮤텍스 정보 얻기
7.10 뮤텍스 중지 목록에 우선순위 적용하기
7.11 뮤텍스 소유권 놓기
7.12 교착 상태 피하기
7.13 뮤텍스로 크리티컬 섹션을 보호하는 예
7.14 예제 시스템 출력
7.15 07_sample_system.c 예제
7.16 뮤텍스 내부 동작
7.17 요약
7.18 생각해볼 문제
8장 메모리 관리-바이트 풀과 블록 풀
8.1 소개
8.2 메모리 바이트 풀 요약
8.3 메모리 바이트 풀 제어 블록
8.4 메모리 바이트 풀 사용에 따른 함정
8.5 바이트 풀 서비스 요약
8.6 메모리 바이트 풀 생성
8.7 메모리 바이트 풀에서 할당받기
8.8 메모리 바이트 풀 제거
8.9 메모리 바이트 풀 정보 얻기
8.10 메모리 바이트 풀 중지 목록에 우선순위 적용하기
8.11 바이트 풀에 메모리 돌려주기
8.12 메모리 바이트 풀 예제-스레드 스택 할당
8.13 메모리 바이트 풀 내부
8.14 메모리 블록 풀 요약
8.15 메모리 블록 풀 제어 블록
8.16 메모리 블록 풀 서비스 요약
8.17 메모리 블록 풀 생성
8.18 메모리 블록 할당
8.19 메모리 블록 풀 제거
8.20 메모리 블록 풀 정보 얻기
8.21 메모리 블록 풀 중지 목록에 우선순위 적용
8.22 메모리 블록 돌려주기
8.23 메모리 블록 풀 예제-스레드 스택 할당
8.24 메모리 블록 풀 내부
8.25 요약 및 비교
8.27 생각해볼 문제
9장 내부 시스템 클럭과 응용 프로그램 타이머
9.1 소개
9.2 내부 시스템 클럭 서비스
9.3 응용 프로그램 타이머 제어 블록
9.4 응용 프로그램 타이머 서비스 요약
9.5 응용 프로그램 타이머 생성
9.6 응용프로그램 타이머 활성화
9.7 응용프로그램 타이머 변경
9.8 응용프로그램 타이머 비활성화
9.9 응용프로그램 타이머 제거
9.10 응용프로그램 타이머 정보얻기
9.11 타이머로 스레드 성능 측정하는 예제 시스템
9.12 09_sample_system.c 예제
9.13 응용프로그램 타이머 내부
9.14 요약
9.15 생각해볼 문제
10장 이벤트 알림과 카운팅 세마포어를 이용한 동기화
10.1 소개
10.2 카운팅 세마포어 제어 블록
10.3 교착 상태 피하기
10.4 우선순위 역전현상 피하기
10.5 카운팅 세마포어 관련 서비스 요약
10.6 카운팅 세마포어 생성
10.7 카운팅 세마포어 제거
10.8 카운팅 세마포어 인스턴스 얻기
10.9 카운팅 세마포어 정보 얻기
10.10 카운팅 세마포어 중지 목록에 우선순위 적용
10.11 카운팅 세마포어 인스턴스 추가
10.12 카운팅 세마포어와 뮤텍스간 비교
10.13 뮤텍스 대신 바이너리 세마포어를 사용하는 예제 시스템
10.14 10a_sample_system.c 예제
10.15 카운팅 세마포어를 사용하는 생산자-소비자 응용프로그램 예제
10.16 10b_sample_system.c 예제
10.17 카운팅 세마포어 내부
10.18 요약
10.19 생각해볼 문제
11장 이벤트 플래그 그룹으로 스레드 동기화 하기
11.1 소개
11.2 이벤트 플래그 그룹 제어 블록
11.3 이벤트 플래그 그룹 제어 서비스 요약
11.4 이벤트 플래그 그룹 생성
11.5 이벤트 플래그 그룹 제거
11.6 이벤트 플래그 그룹에서 플래그 얻기
11.7 이벤트 플래그 그룹 정보 얻기
11.8 이벤트 플래그 그룹 내 이벤트 플래그 세트하기
11.9 스레드 2개를 동기화하기 위해 이벤트 플래그 그룹을 쓰는 예제 시스템
11.10 11_sample_system.c 예제
11.11 이벤트 플래그 그룹 내부
11.12 요약
11.13 생각해볼 문제
12장 메시지 큐를 통한 스레드간 통신
12.1 소개
12.2 메시지 큐 제어 블록
12.3 메시지 큐 서비스 요약
12.4 메시지 큐 생성
12.5 메시지 큐에 메시지 발신
12.6 메시지 큐에서 메시지 수신
12.7 메시지 큐 제거
12.8 메시지 큐 내용 버리기
12.9 메시지 큐 선두로 메시지 송신
12.10 메시지 큐 정보 얻기
12.11 메시지 큐 중지 목록에 우선순위 적용
12.12 스레드 간 통신에 메시지 큐를 사용하는 예제 시스템
12.13 12_sample_system.c 예제
12.14 메시지 큐 내부
12.15 요약
12.16 생각해볼 문제
13장 ARM 예외 처리
13.1 소개
13.2 스레드X의 ARM 예외 처리 구현
14장 사례 연구: 멀티스레드 시스템 설계
14.1 소개
14.2 문제 정의
14.3 문제 분석
14.4 시스템 설계
14.5 구현
14.6 VAM 시스템 예제
14.7 요약
부록 A 메모리 블록 풀 서비스
A.1 tx_block_allocate
A.2 tx_block_pool_create
A.3 tx_block_pool_delete
A.4 tx_block_pool_info_get
A.5 tx_block_pool_prioritize
A.6 tx_block_release
부록 B 메모리 바이트 풀 서비스
B.1 tx_byte_allocate
B.2 tx_byte_pool_create
B.3 tx_byte_pool_delete
B.4 tx_byte_pool_info_get
B.5 tx_byte_pool_prioritize
B.6 tx_byte_pool_release
부록 C 이벤트 플래그 그룹 서비스
C.1 tx_event_flags_create
C.2 tx_event_flags_delete
C.3 tx_event_flags_get
C.4 tx_event_flags_info_get
C.5 tx_event_flags_set
부록 D 인터럽트 제어 서비스
D.1 tx_interrupt_control
부록 E 뮤텍스 서비스
E.1 tx_mutex_create
E.2 tx_mutex_delete
E.3 tx_mutex_get
E.4 tx_mutex_info_get
E.5 tx_mutex_prioritize
E.6 tx_mutex_put
부록 F 메시지 큐 서비스
F.1 tx_queue_create
F.2 tx_queue_delete
F.3 tx_queue_flush
F.4 tx_queue_front_send
F.5 tx_queue_info_get
F.6 tx_queue_prioritize
F.7 tx_queue_receive
F.8 tx_queue_send
부록 G 카운팅 세마포어 서비스
G.1 tx_semaphore_create
G.2 tx_semaphore_delete
G.3 tx_semaphore_get
G.4 tx_semaphore_info_get
G.5 tx_semaphore_prioritize
G.6 tx_semaphore_put
부록 H 스레드 서비스
H.1 tx_thread_create
H.2 tx_thread_delete
H.3 tx_thread_identify
H.4 tx_thread_info_get
H.5 tx_thread_preemption_change
H.6 tx_thread_priority_change
H.7 tx_thread_relinquish
H.8 tx_thread_resume
H.9 tx_thread_sleep
H.10 tx_thread_suspend
H.11 tx_thread_terminate
H.12 tx_thread_time_slice_change
H.13 tx_thread_wait_abort
부록 I 내부 시스템 클럭 서비스
I.1 tx_time_get
I.2 tx_time_set
부록 J 응용프로그램 타이머 서비스
J.1 tx_timer_activate
J.2 tx_timer_change
J.3 tx_timer_create
J.4 tx_timer_deactivate
J.5 tx_timer_delete
J.6 tx_timer_info_get
부록 K 스레드X API
K.1 스레드X 진입
K.2 바이트 풀 메모리 서비스
K.3 블록 풀 메모리 서비스
K.4 이벤트 플래그 그룹 서비스
K.5 인터럽트 제어 서비스
K.6 메시지 큐 서비스
K.7 카운팅 세마포어 서비스
K.8 뮤텍스 서비스
K.9 스레드 서비스
K.10 시각 서비스
K.11 응용프로그램 타이머 서비스
찾아보기
부록CD 소개