[라즈베리파이] 워크큐(Workqueue) - 워크는 누가 언제 호출하나? (2) @process_one_work
By Guillermo Austin Kim | 2018년 9월 12일 |
From...워크는 누가 언제 호출하나? (1) @process_one_work 다음 24~26번 줄 코드를 분석하겠습니다.24 worker->current_work = work;25 worker->current_func = work->func;26 worker->current_pwq = pwq; 24~25번 줄 코드에서 worker->current_work이란 멤버에 work를 등록하고 worker->current_func 함수 포인터에 워크 핸들러 함수를 지정합니다. 26번 줄 코드를 보면 worker->current_pwq에 워커 풀 주소를 저장합니다. process_one_work() 함수에서 워크 핸들러는 worker->current_func 함
[리눅스] 특정 process에서 생성된 thread의 갯수 확인하는 방법
By Guillermo Austin Kim | 2018년 9월 20일 |
mysqld 프로그램의 쓰레드 갯수를 확인하려면 다음 명령어를 입력하면 됩니다.cat /proc/$(pidof mysqld)/status | grep ^ThreadsThreads: 17 다음 명령어를 입력하니 쓰레드 pid를 확인할 수 있습니다.$ ps -eL -o pid,cmd,lwp,nlwp | grep mysqld 1063 /usr/sbin/mysqld 1063 17 1063 /usr/sbin/mysqld 1155 17 1063 /usr/sbin/mysqld 1156 17 1063 /usr/sbin/mysqld 1157 17 1063 /usr/sbin/mysqld 11
[리눅스커널] 인터럽트 후반부 처리: setup_irq_thread() 함수 분석
By Guillermo Austin Kim | 2019년 2월 12일 |
이어서 IRQ 스레드를 생성 역할을 수행하는 setup_irq_thread() 함수를 분석하겠습니다.1 static int2 setup_irq_thread(struct irqaction *new, unsigned int irq, bool secondary)3 {4struct task_struct *t;5struct sched_param param = {6.sched_priority = MAX_USER_RT_PRIO/2,7};89if (!secondary) {10t = kthread_create(irq_thread, new, "irq/%d-%s", irq, 11 new->name);12} else {13t = kthread_create(irq_thread, new, "i
[라즈베리파이] 프로세스 확인하기 - ps
By Guillermo Austin Kim | 2018년 10월 20일 |
리눅스 시스템 개발자(디바이스 드라이버, 데브옵스)로 오래 동안 실력을 인정 받으려면 리눅스 커널을 잘 알면 좋습니다. 하지만 리눅스 커널은 그 내용이 방대하고 깊이가 있어 단기간에 익히기 어려운 기술 영역입니다. "프로세스란 무엇인가"란 질문으로 리눅스 커널을 시작합니다. 성경이나 불경같이 근엄한 단어를 많이 보입니다. 안타깝게도 20페이지 정도 읽다가 포기합니다. 너무 이론으로 프로세스를 설명하기 때문입니다. 프로세스에 익숙해지려면 리눅스 시스템에 익숙해져야 합니다. 이번 장에서는 라즈베리파이에서 명령어를 입력하고 ftrace 로그에서 출력되는 로그로 프로세스 동작을 확인합니다. 먼저 다음 리눅스 명령어로 시스템에서 프로세스 목록을 확인합시다. 이를 위해 라즈베리파이에서 x-terminal 프로그램