장바구니 담기 close

장바구니에 상품을 담았습니다.

리눅스 커널 자료구조 알고리즘 상세분석 2(2판)

리눅스 커널 자료구조 알고리즘 상세분석 2(2판)

  • 정재준
  • |
  • 커널연구회
  • |
  • 2017-12-10 출간
  • |
  • 347페이지
  • |
  • 182 X 259 X 18 mm /669g
  • |
  • ISBN 9788997750115
판매가

28,000원

즉시할인가

25,200

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
25,200

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

리눅스 커널은 전세계 뛰어난 개발자들에 의해서 지속적으로 향상되고 있고
그 속에 있는 소스코드들도 놀랄만큼 최적화되고 있다.
특히 리눅스 커널에 구현되어 있는 Linked List, Red-Black Tree등을 분석해 보면 아주 간결하면서도
효율적으로 만들어진 소스 코드라는 것을 느낄 수 있다.
이책은 리눅스 커널 소스에 구현되어 있는 자료구조 알고리즘을
모두가 이해하기 쉽도록 분석한 내용으로 구성되어 있다.

소프트웨어 코딩은 자료구조 알고리즘부터 출발한다.
자료구조 알고리즘은 코딩의 기본이며,
이것을 가장 잘 이해하기 위한 출발점이 되는 것이 링크드 리스트이다.
링크드 리스트를 사용하여 자료를 효율적으로 연결(포인터)하는 방법을 익힐 수 있다.
더구나 리눅스 커널 소스의 링크드 리스트는 아주 효율적으로 만들어져 있다.
앞쪽과 뒤쪽을 연결하는 2개의 포인터만으로 연결하는 위치에 따라서 Stack도 되고 Queue도 된다.
즉, 별다른 부가적인 데이터를 사용하지 않고 Linked List 연결관계만으로 Stack과 Queue을 모두 구현한다.
여러가지 자료구조 알고리즘 서적들에서 링크드 리스트를 설명하고 있지만,
리눅스 커널 소스에 있는 링크드 리스트가 가장 뛰어나다고 말할 수 있다.
이책은 필자가 커널연구회를 운영하며 수년동안 리눅스 커널 소스를 분석한 내용을 실무적으로 상세히 설명한다.

목차

저작권 2
커널연구회 로드맵 3
저자 소개 4
목차 5
1. 자료구조 알고리즘 개요 8
2. LINKED LIST 13
2.1 주소(포인터)연산 이해 13
2.2 링크드 리스트 전체소스 19
2.3 LIST_ADD (STACK) 32
2.4 LIST_ADD_TAIL (QUEUE) 39
3. QUEUE(KFIFO) 45
3.1 KFIFO 소스 분석 45
3.2 KFIFO 실습 55
4. RED-BLACK TREE 60
4.1 RED-BLACK TREE 개념 60
4.2 RED-BLACK TREE 소스 64
4.2.1 include/linux/rbtree.h 64
4.2.2 lib/rbtree.c 68
4.2.3 rbtree_test.c 79
4.2.4 실행 결과 84
4.3 RED-BLACK TREE 구조체 87
4.4 삽입(INSERT) 소스1 분석 90
4.4.1 노드(key=10) 삽입 92
4.4.2 노드(key=20) 삽입 95
4.4.3 노드(key=30) 삽입 98
4.4.4 노드(key=40) 삽입 104
4.4.5 노드(key=50) 삽입 107
4.4.6 노드(key=60) 삽입 110
4.4.7 노드(key=70) 삽입 112
4.4.8 노드(key=80) 삽입 115
4.5 삽입(INSERT) 소스2 분석 121
4.5.1 노드(key=80) 삽입 122
4.5.2 노드(key=70) 삽입 125
4.5.3 노드(key=60) 삽입 128
4.5.4 노드(key=50) 삽입 133
4.5.5 노드(key=40) 삽입 137
4.5.6 노드(key=30) 삽입 140
4.5.7 노드(key=20) 삽입 142
4.5.8 노드(key=10) 삽입 145
4.6 삽입(INSERT) 소스3 분석 151
4.6.1 노드(key=10) 삽입 151
4.6.2 노드(key=30) 삽입 154
4.6.3 노드(key=20) 삽입 157
4.6.4 노드(key=50) 삽입 164
4.6.5 노드(key=40) 삽입 165
4.6.6 노드(key=25, 22) 삽입 168
4.6.7 노드(key=35) 삽입 170
4.7 탐색(SEARCH) 소스 분석 175
4.8 삭제(ERASE) 소스 분석 182
4.8.1 노드(key=10) 삭제 189
4.8.2 노드(key=20) 삭제 193
4.8.3 노드(key=30) 삭제 196
4.8.4 노드(key=40) 삭제 203
4.8.5 노드(key=50) 삭제 206
4.8.6 노드(key=60) 삭제 212
4.8.7 노드(key=70) 삭제 216
4.8.8 노드(key=80) 삭제 219
5. B+TREE 222
5.1 B+TREE 소스 223
5.2 B+TREE 구조체 249
5.3 B+TREE 삽입 알고리즘 252
5.3.1 노드 분할 255
5.3.2 부모노드 생성 257
5.3.3 부모노드 분할 261
6. 리눅스 커널 자료구조 265
6.1 자료구조 기본 265
6.2 스케쥴러 자료구조 269
6.3 스케쥴러 소스 분석 276
6.3.1 스케쥴러 클래스 정의 278
6.3.2 CFS 스케쥴러 실행 함수 285
6.3.3 RT 스케쥴러 실행 함수 288
6.3.4 DeadLine 스케쥴러 실행 함수 289
부록A. 리눅스 커널 소스 분석 도구 292
A.1 커널소스 다운로드 294
A.2 커널소스 빌드 297
A.2.1 라즈베리파이 보드에서 직접 빌드 297
A.2.2 리눅스 Host PC에서 크로스 컴파일 298
A.3 커널 설치 299
A.4 커널소스 디버깅(KGDB) 302
부록B. 커널연구회 똑똑한왕자 소개 310
부록C. 커널연구회 교육과정 상세안내 322
C.1 커널연구회 교육과정 로드맵 322
C.2 C언어와 자료구조 알고리즘 323
C.3 리눅스 시스템 프로그래밍 327
C.4 ARM 아키텍쳐, STM32 프로그래밍 331
C.5 리눅스 커널 자료구조 알고리즘 실습 334
C.6 리눅스 커널 소스 디버깅 실습 338
C.7 리눅스 커널 DEVICE TREE 실습 342
C.8 교육 내용 테이블 346

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.