리눅스 커널 소스 해설3 [스케쥴러]

29,000원 33,000원
기본 할인4,000원
• 스케쥴러 전체 개요 • sched_class 구조체 • sched_init() 함수 • 스케쥴 도메인과 그룹 • Stop Scheduler • DeadLine Scheduler • RealTime Scheduler • Fair Scheduler(CFS) • Idle Scheduler • activate/deactive_task() • schedule 실행 정 • 태스크 동작상태(State) • CPU Load Average • PELT(Per Entity Load racking) • PELT, CFS 스케쥴링 테스트 • CPU Load Balancing • CFS Bandwidth • NO_HZ • WorkQueue
수량
품절된 상품입니다.
주문 수량   0개
총 상품 금액 0원
페이스북
트위터
카카오스토리
네이버 블로그
밴드
구글 플러스

"리눅스 커널 소스 해설3 [스케쥴러]"는 전세계적으로 가장 많은 컴퓨터 기기에서 사용되고

있는컴퓨터 운영체제인 리눅스 커널의 스케쥴러 소스를 자세히 설명하는 책입니다. 

리눅스 커널 소스는 오픈소스로 누구나 접근할 수 있지만, 소스의 복잡성과 난해함 때문에

이것을 쉽게 설명하는 기술서가 많이 부족합니다.  커널연구회는 수년간 꾸준히 리눅스 커널

소스를 분석하여 쉽게 설명하는 기술서를 출판해오고 있으며, 관련 업계에 종사하는 엔지니어들에게 도움을 드리고 있습니다.  이번에 리눅스 커널중에서 가장 중요한 역할을 하는 스케쥴러 소스를 분석하여자세히 설명하는 해설서를 다음과 같은 내용으로 출판하게 되었습니다.

 

책 정보:


  • 리눅스 커널 소스 해설3 [스케쥴러]
  • 저자 /발행인: 정재준
  • 발행처: 커널연구회
  • 출판사등록번호: 제2011-75호
  • 출판사등록일: 2011년 09월 27일
  • 전화: 031-592-0478 / 팩스: 031-594-5307
  • 발행일: 2022년 09월 20일
  • ISBN: 978-89-97750-16-0
  • 페이지수: 425
  • 가격: 3만3천원
  • 책크기: 가로 188mm X 세로 257mm (B5) 

 

책내용 요약:


• 스케쥴러 전체 개요   

• sched_class 구조체   

• sched_init() 함수   

• 스케쥴 도메인과 그룹   

• Stop Scheduler   

• DeadLine Scheduler   

• RealTime Scheduler   

• Fair Scheduler(CFS)   

• Idle Scheduler   

• activate/deactive_task()   

• schedule 실행 과정   

• 태스크 동작상태(State)   

• CPU Load Average   

• PELT(Per Entity Load Tracking)   

• PELT, CFS 스케쥴링 테스트   

• CPU Load Balancing   

• CFS Bandwidth   

• NO_HZ   

• WorkQueue

 

목차:


목차Table of Contents   

• 리눅스 커널 소스 해설3 [스케쥴러]    1   

• 저작권                2    

ISBN                3    

저자 소개            4   

• 머리말                7   

• 목차                9   

• 스케쥴러 전체 개요            18    

스케줄러 설정(set scheduler)    25    

스케쥴러 실행(schedule)        27   

• sched_class 구조체        34    

stop_sched_class        37    

dl_sched_class            38    

rt_sched_class            39    

fair_sched_class        40    

idle_sched_class        42    

스케쥴러 중요 함수 실행 흐름    43   

• sched_init() 함수            45    

sched_init() 구조체 할당        48    

sched_init() 구조체 연결        54    

sched_create_group() 함수    57   

• 스케쥴 도메인과 그룹        67    

SMP와 NUMA 시스템        67  

 sched_init_smp() 함수        74    

sched_init_numa() 함수        75    

sched_init_domains() 함수    84   

• Stop Scheduler            93  

sched_set_stop_task() 함수    94    

enqueue_task_stop() 함수    95    

set_next_task_stop() 함수    96  

pick_next_task_stop() 함수    96  

dequeue_task_stop() 함수    97  

put_prev_task_stop() 함수    97    

balance_stop() 함수        98   

• DeadLine Scheduler        99  

sched_setattr() 함수        102  

enqueue_task_dl() 함수        106    

set_next_task_dl() 함수        110  

pick_next_task_dl() 함수    111  

dequeue_task_dl() 함수        112    

put_prev_task_dl() 함수        113  

DeadLine 스케쥴링 요약        114    

select_task_rq_dl() 함수    118  

balance_dl() 함수        119   

• RealTime Scheduler        120    

enqueue_task_rt() 함수        125    

set_next_task_rt() 함수        130    

pick_next_task_rt() 함수    131    

dequeue_task_rt() 함수        134  

put_prev_task_rt() 함수        135  

RealTime 스케쥴링 요약        136    

switched_from_rt() 함수        140    

switched_to_rt() 함수        141    

select_task_rq_rt() 함수    142  

balance_rt() 함수        143   

• Fair Scheduler(CFS)        144  

 enqueue_task_fair() 함수    146  

 set_next_task_fair() 함수    149  

 pick_next_task_fair() 함수    149  

 dequeue_task_fair() 함수    156  

 put_prev_task_fair() 함수    158  

 switched_from_fair() 함수    159  

 switched_to_fair() 함수        160  

 select_task_rq_fair() 함수    161  

 balance_fair() 함수        164 

• Idle Scheduler            165    

set_next_task_idle() 함수    166    

pick_next_task_idle() 함수    167    

dequeue_task_idle() 함수    167   

• activate/deactive_task() 함수    169  

activate_task() 함수        169    

deactivate_task() 함수        170    

wake_up_new_task() 함수        172    

wake_up_process() 함수        173    

list_add_leaf_cfs_rq() 함수    174 

  • schedule 실행 과정        176  

PREEMPT 선택            176  

schedule() 함수 호출 흐름    182  

_TIF_NEED_RESCHED 플래그    183  

scheduler_tick() 함수        187    

task_tick_fair() 함수        189  

task_tick_rt() 함수        191  

check_preempt_curr() 함수    193    

pick_next_task() 함수        197   

• 태스크 동작상태(State)        199    

TASK_NEW            201    

EXIT_DEAD            201    

TASK_RUNNING            202  

TASK_INTERRUPTIBLE        203    

TASK_UNINTERRUPTIBLE        206    

기타 상태값            207   

• CPU Load Average            209  

이동평균(Moving Average)    209    

CPU Load Average 산출식        211  

calc_global_load_tick() 함수    214  

calc_global_load() 함수        215    

calc_load() 함수        218   

• PELT(Per Entity Load Tracking)    223  

 decay_load() 함수        224  

 ___update_load_sum() 함수    230  

 accumulate_sum() 함수        231  

 ___update_load_avg() 함수    235  

 __update_load_avg_se() 함수    236  

 __update_load_avg_cfs_rq() 함수    237    

Load 계산 과정 요약        238   

• PELT 계산 전체 흐름        240    

post_init_entity_util_avg() 함수 243    

activate_task() 함수        245   

• PELT 계산 함수들            249  

update_load_avg() 함수        249  

__update_load_avg_*() 함수    251  

propagate_entity_load_avg() 함수 252    

update_load_avg() 함수 전체 요약    256    

attach_entity_cfs_rq() 함수    258    

attach_entity_load_avg() 함수    258  

update_tg_load_avg() 함수    261    

propagate_entity_cfs_rq() 함수    263    

attach_entity_cfs_rq() 전체 요약 265  

enqueue_task_fair() 함수    269  

update_curr() 함수        270    

update_cfs_group() 함수        272    

enqueue_runnable_load_avg() 함수 276    

account_entity_enqueue() 함수    277  

__enqueue_entity() 함수        277    

enqueue_task_fair() 전체 요약    279   

• PELT, CFS 스케쥴링 테스트1        283    

task_group 생성            284    

task 생성            286    

schedule 테스트            291   

• PELT, CFS 스케쥴링 테스트2        300    

첫번째 태스크 attach        301    

첫번째 태스크 enqueue        303    

두번째 태스크 attach        307    

두번째 태스크 enqueue        309    

세번째 태스크 attach        313    

세번째 태스크 enqueue        316    

스케쥴링 테스트            320    

네번째 태스크 attach        322    

네번째 태스크 enqueue        325   

• PELT, CFS 스케쥴링 테스트3        330    

첫번째 태스크 attach        331  

첫번째 태스크 enqueue        336    

두번째 태스크 attach        342    

두번째 태스크 enqueue        345    

세번째 태스크 attach        347  

세번째 태스크 enqueue        350    

네번째 태스크 attach        352  

네번째 태스크 enqueue        356   

• CPU Load Balancing        358  

 rebalance_domains() 함수    360  

 load_balance() 함수        362  

 find_busiest_group() 함수    365  

 find_busiest_queue() 함수    368   

• CFS Bandwidth            370    

cfs_bandwidth 구조체        372    

전체흐름 요약            374    

tg_set_cfs_bandwidth() 함수    377    

init_cfs_bandwidth() 함수    379  

do_sched_cfs_period_timer() 함수 382    

distribute_cfs_runtime() 함수    383  

unthrottle_cfs_rq() 함수    384    

throttle_cfs_rq() 함수        385   

• NO_HZ                387  

NO_HZ_IDLE            388  

NO_HZ_FULL            389  

NO_HZ Kconfig 옵션        389  

NO_HZ 관련 소스            391   

• WorkQueue                394    

queue_work            395    

DECLARE_WORK 예제        395  

workqueue 구조체 정리        400    

queue_work() 실행 과정        402    

workqueue_init            404    

workqueue_init_early() 소스 설명 405  

workqueue_init() 소스 설명    409    

worker_thread            411   

• 부록                415    

2022년 08월 [v5.19] 커널 버전 비교 415    

v5.4와 v5.19 전체 비교        416    

CPU 아키텍쳐 소스 비교        417    

스케쥴러 소스 비교        418    

메모리 소스 비교            420  

CONFIG_SCHED_CORE        421

리눅스 커널 소스 해설3 [스케쥴러]

29,000원 33,000원
추가 금액
수량
품절된 상품입니다.
주문 수량   0개
총 상품 금액 0원
재입고 알림 신청
휴대폰 번호
-
-
재입고 시 알림
페이스북
트위터
카카오스토리
네이버 블로그
밴드
구글 플러스
floating-button-img